Example #1
0
<?php

// There may be a bug in IE(... lol) that would require the next two lines.
//header('Cache-Control: no-cache, must-revalidate');
//header('Expires: Mon, 26 Jul 1997 05:00:00 GMT');
// JSON plz.
header('Content-type: application/json');
//error_reporting(E_ALL);
//ini_set('display_errors', '1');
require_once '../db.php';
$rtn = array();
if (isset($_GET['id'])) {
    $rtn['annotation'] = getAnnotation(mongoIdSanitize($_GET['id']));
    $rtn['contig'] = getContig($rtn['annotation']['contig_id']);
    $rtn['valid'] = $rtn['annotation'] && $rtn['contig'];
} else {
    $rtn['valid'] = false;
}
echo json_encode($rtn);
Example #2
0
File: db.php Project: rverdon/CGAT
function getFullGeneInfo($geneName)
{
    $db = getDB();
    $rtn = array();
    $rtn['annotations'] = array();
    $rtn['expertAannotations'] = array();
    $rtn['contigs'] = array();
    $annotationsToExpand = array();
    $cursor = $db->contigs->find(array('isoform_names.' . $geneName => array('$exists' => true)), array('sequence' => 0));
    foreach ($cursor as $contig) {
        $rtn['contigs'][] = $contig;
        foreach ($contig['isoform_names'][$geneName] as $annotationId) {
            $annotationsToExpand[] = $annotationId->{'$id'};
        }
    }
    foreach ($annotationsToExpand as $annotationId) {
        $annotationInfo = getAnnotation($annotationId);
        if (!$annotationInfo['partial']) {
            if ($annotationInfo['expert']) {
                $rtn['expertAnnotations'][] = $annotationInfo;
            } else {
                $rtn['annotations'][] = $annotationInfo;
            }
        }
    }
    return $rtn;
}
Example #3
0
                     }
                 }
             }
             array_push($params, $param_class);
         }
     } elseif (isset($_REQUEST[$param_key])) {
         array_push($params, $_REQUEST[$param_key]);
     } elseif ($param->isDefaultValueAvailable()) {
         array_push($params, $param->getDefaultValue());
     } else {
         header("status: 403 Forbidden");
         die("Missing {$param_key} parameter.");
     }
 }
 //查找方法标注
 $annotations = getAnnotation($obj_ref);
 //只允许执行标注UserFunction
 if (!array_key_exists('UserFunction', $annotations)) {
     header("status: 404 Not Found");
     die("Not allowed to execute the {$func} ");
 }
 //执行function
 try {
     array_walk($annotations, function ($value) use($params) {
         if ($value instanceof Dependency && method_exists($value, 'excuting')) {
             $value->excuting($params);
         }
     });
     $result = call_user_func_array($func, $params);
     header("Access-Control-Allow-Origin: *");
     if (isset($result)) {
 public function generate_api_doc()
 {
     // 		mt_mark('start');
     // 		$res = getApiInstance('/v1.3.1/redpacket/register');
     // 		dmt_mark('start','end');
     // 		edump($res);
     // 		return View::make('localtest.doc');
     // 		$res = getReturnInLogFile('logs','ReqLogs',9,'');
     // 		$res = getReturnInLogFile('logs','ReqLogs',10);
     // 		$Route = new \Illuminate\Routing\Route();
     // 		$Route->getPrefix()
     $routes = Route::getRoutes();
     // 		$returns =  getReturnInLogFile('logs','Return');
     $showData = [];
     $routes_select = array();
     $all_params = array();
     foreach ($routes as $v) {
         $data = array();
         $method = array();
         $methods = $v->getMethods();
         //	array(1) {[0] => string(4) "POST"}
         $uri = $v->getPath();
         //string(15) "get_create_code"
         $action = $v->getActionName();
         //string(29) "GeneralTestController@getCode"
         //获取filters
         $filter = $v->beforeFilters();
         //分割action
         $action = $this->compileAction($action);
         if (!method_exists($action[0], $action[1])) {
             continue;
         }
         in_array('GET', $methods) and $method[] = 'GET';
         in_array('POST', $methods) and $method[] = 'POST';
         //生成method和uri
         $uri = '/' . ltrim($uri, '/');
         !empty($method) and $data = array('method' => '[' . implode('/', $method) . ']', 'uri' => '/' . ltrim($uri, '/'));
         //获取action指向的方法内的参数
         $data and $action and $data['params'] = $this->getInputParams($action);
         //获取filter内部所需参数
         if ($data && $filter) {
             $params = array();
             foreach ($filter as $key => $value) {
                 $p = $this->getFilterParams($key);
                 $p && ($params += $p);
             }
             $params && $data['params'] && (is_array($params) && ($data['params'] += $params));
         }
         if (isset($data['params']) && !is_array($data['params'])) {
             edump($data['params']);
         }
         isset($data['params']) && is_array($data['params']) && ($all_params += $data['params']);
         $rrr = getAnnotation($action);
         if (isset($rrr['function'])) {
             $function = $rrr['function'][0];
             $dt = getApiInvokingLog($uri);
             $dt && ($showData[$uri] = ['title' => $function, 'data' => current($dt)]);
         }
         // 			if(isset($returns['/'.$uri]) && $rrr ){
         // 				dump($rrr);
         // 				dump($returns['/'.$uri]);
         // 			}
         $data && ($routes_select[] = $data);
     }
     return View::make('localtest.doc')->with('list', $showData);
     edump($showData);
 }