|
@@ -457,17 +457,17 @@ class REST_CRUD_API {
|
457
|
457
|
$callback = $this->parseGetParameter($get, 'callback', 'a-zA-Z0-9\-_', false);
|
458
|
458
|
$page = $this->parseGetParameter($get, 'page', '0-9,', false);
|
459
|
459
|
$filters = $this->parseGetParameterArray($get, 'filter', false, false);
|
|
460
|
+ $columns = $this->parseGetParameter($get, 'columns', 'a-zA-Z0-9\-_,', false);
|
460
|
461
|
$order = $this->parseGetParameter($get, 'order', 'a-zA-Z0-9\-_*,', false);
|
461
|
462
|
$transform = $this->parseGetParameter($get, 'transform', '1', false);
|
462
|
|
-
|
|
463
|
+
|
463
|
464
|
$table = $this->processTableParameter($database,$table,$db);
|
464
|
465
|
$key = $this->processKeyParameter($key,$table,$database,$db);
|
465
|
|
- foreach ($filters as &$filter) {
|
466
|
|
- $filter = $this->processFilterParameter($filter,$db);
|
467
|
|
- }
|
|
466
|
+ foreach ($filters as &$filter) $filter = $this->processFilterParameter($filter,$db);
|
|
467
|
+ if ($columns) $columns = explode(',',$columns);
|
468
|
468
|
$page = $this->processPageParameter($page);
|
469
|
469
|
$order = $this->processOrderParameter($order,$table,$database,$db);
|
470
|
|
-
|
|
470
|
+
|
471
|
471
|
$table = $this->applyPermissions($database,$table,$action,$permissions,$multidb);
|
472
|
472
|
if (empty($table)) $this->exitWith404('entity');
|
473
|
473
|
|
|
@@ -476,7 +476,7 @@ class REST_CRUD_API {
|
476
|
476
|
|
477
|
477
|
list($collect,$select) = $this->findRelations($table,$database,$db);
|
478
|
478
|
|
479
|
|
- return compact('action','database','table','key','callback','page','filters','order','transform','db','object','input','collect','select');
|
|
479
|
+ return compact('action','database','table','key','callback','page','filters','columns','order','transform','db','object','input','collect','select');
|
480
|
480
|
}
|
481
|
481
|
|
482
|
482
|
protected function listCommand($parameters) {
|
|
@@ -508,7 +508,13 @@ class REST_CRUD_API {
|
508
|
508
|
}
|
509
|
509
|
}
|
510
|
510
|
$params = array();
|
511
|
|
- $sql = 'SELECT * FROM "!"';
|
|
511
|
+ $sql = 'SELECT ';
|
|
512
|
+ if (is_array($columns)) {
|
|
513
|
+ $sql .= '"'.implode('","',$columns).'"';
|
|
514
|
+ } else {
|
|
515
|
+ $sql .= '*';
|
|
516
|
+ }
|
|
517
|
+ $sql .= ' FROM "!"';
|
512
|
518
|
$params[] = $table;
|
513
|
519
|
foreach ($filters as $i=>$filter) {
|
514
|
520
|
if (is_array($filter)) {
|