From b9fbc563729c77cf954b8320dc3130e7875f0130 Mon Sep 17 00:00:00 2001
From: jacob <jacob>
Date: Thu, 3 Mar 2011 03:00:35 +0000
Subject: [PATCH] A start on adding the special awards API

---
 api.php          | 32 ++++++++++++++++++++++++++++++++
 projects.inc.php | 27 +++++++++++++++++++++++++++
 2 files changed, 59 insertions(+)

diff --git a/api.php b/api.php
index f4e01c12..58d2f43c 100644
--- a/api.php
+++ b/api.php
@@ -28,6 +28,7 @@ require_once("account.inc.php");
 require_once("user.inc.php");
 require_once("schedule.inc.php");
 require_once("register_participants.inc.php");
+require_once("projects.inc.php");
 if($_SERVER['HTTPS']!="on" && !$API_DONT_REQUIRE_SSL) {
 	$ret['status']="error";
 	$ret['error']="SSL is required for API access, please access the API over https";
@@ -1143,6 +1144,37 @@ switch($request[0]) {
 				$ret['status'] = 'ok';
 			break;
 
+			case 'specialawards':
+				switch($request[2]){
+					/*	APIDOC: project/specialawards/view
+						description(view the special awards available, flagged as whether or not they're selected for this user's project.)
+					*/
+					case 'view':
+						$u = user_load($_SESSION['users_id']);
+						$projectId = getProjectId($u['registrations_id']);
+						if($projectId !== null){
+							$ret['status'] = 'ok';
+							$ret['awards'] = getAwardListing($projectId);
+						}else{
+							$ret['status'] = 'error';
+							$ret['error'] = 'could not load project for registriation id #' . $u['registrations_id'];
+						}
+					break;
+
+
+					/*	APIDOC: project/specialawards/edit
+						description:(update the special awards assigned to this project)
+						post(awards array)
+						description(expects an array in the 
+					*/
+					case 'edit':
+						//$nominations = json_decode($_POST['awards'], true);
+						
+					break;
+
+				}
+			break;
+
 			case 'mentor':
 				switch($request[2]){
 					/*	APIDOC: project/mentor/edit
diff --git a/projects.inc.php b/projects.inc.php
index 14790b5a..ba467900 100644
--- a/projects.inc.php
+++ b/projects.inc.php
@@ -307,4 +307,31 @@ function getProjectCategory($registrations_id){
 	return $projectcategories_id;
 }
 
+function getProjectId($registrations_id){
+	$returnval = null;
+	$q = mysql_query("SELECT id FROM projects WHERE registrations_id = " . intval($registrations_id));
+	$row = mysql_fetch_assoc($q);
+	if($row){
+		$returnval = $row['id'];
+	}
+	return $returnval;
+}
+
+function getAwardListing($project_id){
+	$returnval = array();
+	$eligibleAwards = getSpecialAwardsEligibleForProject($projectId);
+	$nominatedawards = getSpecialAwardsNominatedForProject($projectId);
+	$nominatedawards_list=array();
+	foreach($nominatedawards AS $naward){
+		$nominatedawards_list[] = $naward['id'];
+	}
+	$idx = 0;
+	foreach($eligibleAwards AS $eaward){
+		$returnval[$idx] = $eaward;
+		if(in_array($eaward['id'],$nominatedawards_list)) $returnval[$idx]['selected'] = true;
+		$idx++;
+		
+	}
+	return $returnval;
+}
 ?>