Hello!

To see the file structure, click on "tree".

Note that updates take place every 10 minutes, commits may not be seen immediately.
Moved permanently to /plantontology repo (/html/services/)
authorpreecej <preecej@localhost>
Wed, 11 Apr 2012 23:42:19 +0000 (23:42 +0000)
committerpreecej <preecej@localhost>
Wed, 11 Apr 2012 23:42:19 +0000 (23:42 +0000)
svn path=/; revision=323

Personnel/preecej/php_singletons/PO_web_service.php [deleted file]

diff --git a/Personnel/preecej/php_singletons/PO_web_service.php b/Personnel/preecej/php_singletons/PO_web_service.php
deleted file mode 100644 (file)
index 17b4d03..0000000
+++ /dev/null
@@ -1,169 +0,0 @@
-<?php
-/*
-JSON web service for Plant Ontology terms
-
-Required parameters:
-    request_type
-    max
-Optional parameters:
-    app_key (for access to restricted methods)
-    format (JSON only for now)
-
-Public Request Types:
-    term_search(req str search_value, opt bool inc_synonyms, 
-        opt bool inc_accession_synonyms, opt str branch_filter)
-    term_detail(req str accession_id)
-
-TODO: Restricted Request Types (requires user key):
-    wiki_autocomplete(req str search_value)
-    wiki_term_detail(req str accession_id || req str term_name)
-*/
-
-/* read the params and/or set our own */
-$request_type = isset($_GET['request_type'])
-                    ? $_GET['request_type'] 
-                    : die('Please provide a request type.');
-
-$number_of_terms = isset($_GET['max']) ? intval($_GET['max']) : 10; // default
-if ($number_of_terms > 50) { $number_of_terms = 50; } // ceiling
-
-$format = isset($_GET['format']) && strtolower($_GET['format']) != 'json' 
-    ? strtolower($_GET['format']) 
-    : 'json'; //json is the default
-
-// includes synonyms in term search results
-$inc_synonyms = isset($_GET['inc_synonyms']) ? 1 : 0;
-
-// includes accession ids listed as synonyms, in both term_search and
-// term_detail methods
-$inc_accession_synonyms = isset($_GET['inc_accession_synonyms']) ? 1 : 0; 
-
-// filters out results not matching the comma-delimited list of branches
-// specified here:
-$branch_filter = isset($_GET['branch_filter']) && strlen($_GET['branch_filter']) > 0
-                    ? "'" . strtolower($_GET['branch_filter']) . "'"
-                    : "'plant_anatomy','plant_structure_development_stage'";
-
-/* connect to the db */
-$link = mysql_connect($_SERVER['dev_po_host'], $_SERVER['dev_po_user'], 
-    $_SERVER['dev_po_pw']) or die(mysql_error() . 'Cannot connect to the DB');
-mysql_select_db($_SERVER['dev_po_db'],$link) or die('Cannot select the DB');
-
-switch ($request_type) {
-
-    case 'term_search':
-        $search_value = $_GET['search_value'];
-        $search_value = isset($_GET['search_value']) && strlen($_GET['search_value']) > 0 
-            ? strtolower($_GET['search_value'])
-            : die('Please provide the "search_value" parameter.');
-
-        /* grab the terms from the db */
-        $query = "(SELECT t.name, 'term' as match_type, t.acc, null as parent_name"
-            . " FROM term t"
-            . " LEFT JOIN term_definition d ON d.term_id = t.id"
-            . " LEFT JOIN term_synonym s ON s.term_id = t.id"
-            . " WHERE t.name LIKE '%$search_value%'"
-            . " AND t.term_type in (" . $branch_filter . ")"
-            . " AND t.is_obsolete = 0"
-            . " AND UCASE(t.name) NOT LIKE 'OBSOLETE%'"
-            . " AND UCASE(d.term_definition) NOT LIKE 'OBSOLETE%'"
-            . " GROUP BY t.id)";
-        if ($inc_synonyms) {
-            $query .= " UNION"
-                . " (SELECT ts.term_synonym as name, 'synonym' as match_type, t2.acc, t2.name as parent_name"
-                . " FROM term_synonym ts"
-                . " LEFT JOIN term t2 ON ts.term_id = t2.id"
-                . " LEFT JOIN term_definition d2 ON d2.term_id = t2.id"
-                . " WHERE ts.term_synonym LIKE '%$search_value%'";
-            if (!$inc_accession_synonyms) {
-                $query .= " AND ts.acc_synonym IS NULL";
-            }
-            $query .= " AND t2.term_type in (" . $branch_filter . ")"
-                . " AND t2.is_obsolete = 0"
-                . " AND UCASE(t2.name) NOT LIKE 'OBSOLETE%'"
-                . " AND UCASE(d2.term_definition) NOT LIKE 'OBSOLETE%')";
-        }
-        $query .= " ORDER BY name LIMIT $number_of_terms";
-        
-        $result = mysql_query($query,$link) or die('Errant query:  '.$query);
-    
-        /* create one master array of the records */
-        $term_matches = array();
-        if(mysql_num_rows($result)) {
-            while($term = mysql_fetch_assoc($result)) {
-                $ary_match = array(
-                    'match'=>$term['name'],
-                    'match_type'=>$term['match_type'],
-                    'accession_id'=>$term['acc']);
-                if ($term['match_type'] == 'synonym') {
-                    $ary_match['is_synonym_of'] = $term['parent_name'];
-                }
-                $term_matches[] = $ary_match;
-          }
-        }
-
-        /* output in necessary format */
-        if($format == 'json') {
-            header('Content-type: application/json');
-            echo json_encode(array('PO_term_search_response'=>$term_matches));
-        }
-        else {
-            die('Sorry, this request cannot be fulfilled in '.$format.' format.');
-        }
-        break;
-
-    case 'term_detail':
-        $accession_id = $_GET['accession_id'];
-        $accession_id = isset($_GET['accession_id']) && strlen($_GET['accession_id']) > 0 
-            ? $_GET['accession_id']
-            : die('Please provide the "accession_id" parameter.');
-
-        /* grab the ontology data from the db */
-        $query = "SELECT DISTINCT t.name, t.acc as 'acc', t.term_type as 'type'," 
-            . " d.term_definition as 'definition', d.term_comment as 'comment',"
-            . " group_concat(s.term_synonym separator ', ') as synonyms"
-            . " FROM term t"
-            . " LEFT JOIN term_definition d ON d.term_id = t.id"
-            . " LEFT JOIN term_synonym s ON s.term_id = t.id";
-            if (!$inc_accession_synonyms) {
-                $query .= " AND s.acc_synonym IS NULL";
-            }
-            $query .= " WHERE t.acc = '$accession_id'"
-            . " AND t.term_type in (" . $branch_filter . ")"
-            . " AND t.is_obsolete = 0"
-            . " AND UCASE(t.name) NOT LIKE 'OBSOLETE%'"
-            . " AND UCASE(d.term_definition) NOT LIKE 'OBSOLETE%'"
-            . " GROUP BY t.id"
-            . " ORDER BY t.name LIMIT 1";
-        $result = mysql_query($query,$link) or die('Errant query:  '.$query);
-    
-        /* create one master array of the records */
-        $term_details = array();
-        if(mysql_num_rows($result)) {
-            while($term = mysql_fetch_assoc($result)) {
-                $term_details[] = array(
-                    'accession_id'=>$term['acc'],
-                    'name'=>$term['name'],
-                    'aspect'=>$term['type'] == "plant_anatomy" ? "Plant Anatomy" : "Plant Structure Development Stage",
-                    'definition'=>$term['definition'],
-                    'comment'=>$term['comment'],
-                    'synonyms'=>preg_split("/, /",$term['synonyms'])
-                    );
-            }
-        }
-        /* output in necessary format */
-        if($format == 'json') {
-            header('Content-type: application/json');
-            echo json_encode(array('PO_term_detail_response'=>$term_details));
-        }
-        else {
-            die('Sorry, this request cannot be fulfilled in '.$format.' format.');
-        }
-        break;
-    default:
-        die('Sorry, this web service method is not available.');
-}
-/* disconnect from the db */
-@mysql_close($link);
-?>
-