Tripal Plant PopGen Submit
tpps.submission.api.inc
Go to the documentation of this file.
1 <?php
2 
39  $conditions = drupal_get_query_parameters();
40 
41  $submissions = tpps_api_submission_std_query($conditions);
42  if (!empty($conditions)) {
43  foreach ($conditions as $key => $val) {
44  $pids = array();
45  $vals = explode(',', $val);
46  $function_name = "tpps_api_{$key}_pid_query";
47 
48  if (!function_exists($function_name)) {
49  return array();
50  }
51 
52  $query = $function_name($vals);
53  while (($result = $query->fetchObject())) {
54  $pids[] = $result->project_id;
55  }
56 
57  if (empty($pids)) {
58  return array();
59  }
60 
61  foreach ($submissions as $num => $state) {
62  if (array_search($state['ids']['project_id'], $pids) === FALSE) {
63  unset($submissions[$num]);
64  }
65  }
66  }
67  }
68 
69  $results = array();
70  foreach ($submissions as $submission) {
71  $results[] = array(
72  'accession' => $submission['accession'],
73  'data' => $submission['saved_values'],
74  'dbxref_id' => $submission['dbxref_id'],
75  'file_info' => $submission['file_info'] ?? NULL,
76  'file_rank' => $submission['file_rank'] ?? NULL,
77  'ids' => $submission['ids'] ?? NULL,
78  'job_id' => $submission['job_id'] ?? NULL,
79  'stage' => $submission['stage'],
80  'stats' => $submission['stats'] ?? NULL,
81  'status' => $submission['status'],
82  'submitting_uid' => $submission['submitting_uid'] ?? NULL,
83  'tpps_type' => $submission['tpps_type'] ?? NULL,
84  );
85  }
86 
87  return $results;
88 }
89 
114 function tpps_api_submission_std_query(array &$conditions) {
115  $args = array();
116  $valid_args = tpps_table_columns('tpps_submission');
117  foreach ($conditions as $key => $val) {
118  if (array_search($key, $valid_args)) {
119  $args[$key] = explode(',', $val);
120  unset($conditions[$key]);
121  }
122  }
123 
124  $states = tpps_load_submission_multiple($args);
125  $results = array();
126  foreach ($states as $state) {
127  if (!isset($state['ids']['project_id'])) {
128  continue;
129  }
130  $results[$state['ids']['project_id']] = $state;
131  }
132  return $results;
133 }
134 
172  $params = drupal_get_query_parameters();
173  if (empty($params['accessions'])) {
174  return NULL;
175  }
176 
177  if (empty($params['data'])) {
178  return NULL;
179  }
180 
181  $entities = FALSE;
182  if (array_key_exists('entities', $params)) {
183  $entities = $params['entities'];
184  }
185 
186  $accessions = explode(',', $params['accessions']);
187  $states = tpps_load_submission_multiple(array('accession' => $accessions));
188  $pids = array();
189  foreach ($states as $state) {
190  $pids[] = $state['ids']['project_id'];
191  }
192  $data_types = explode(',', $params['data']);
193  $results = array();
194  foreach ($data_types as $type) {
195  $function_name = "tpps_api_project_{$type}_query";
196  if ($type == 'project') {
197  $function_name = "tpps_api_project_query";
198  }
199 
200  if ($type == 'stats') {
201  $results[$type] = $function_name($states);
202  continue;
203  }
204 
205  if (!function_exists($function_name)) {
206  return NULL;
207  }
208 
209  $results[$type] = $function_name($pids, $entities);
210  }
211 
212  return $results;
213 }
tpps_api_submission_query()
tpps_api_submission_info()
tpps_api_submission_std_query(array &$conditions)
tpps_load_submission_multiple(array $conditions=array(), $state=TRUE)
Definition: submissions.inc:85
tpps_table_columns($table)