Example #1
0
 /**
  * @before _secure
  * @after _cleanUp
  */
 public function categories($id = null)
 {
     $view = $this->getActionView();
     $fields = ['_id', 'name'];
     $type = RequestMethods::type();
     $org = $this->_org;
     $categories = Category::all(['org_id' => $org->_id], $fields);
     switch ($type) {
         case 'GET':
             $data = ['categories' => Category::objectArr($categories, $fields)];
             $view->set('data', $data);
             break;
         case 'POST':
             $updated = Category::addNew($categories, $org);
             $data = ['categories' => Category::objectArr($updated, $fields)];
             $view->set('data', $data);
             break;
         case 'DELETE':
             $cat = Category::first(['_id' => $id, 'org_id' => $org->_id]);
             if (!$id || !$cat) {
                 return $this->failure('30');
             }
             if (!$cat->inUse()) {
                 $cat->delete();
                 $view->set('message', 'Category deleted!!');
             } else {
                 $view->set('message', 'Failed to delete category because it is in use');
             }
             unset($categories[$id]);
             $data = ['categories' => Category::objectArr($categories, $fields)];
             $view->set('data', $data);
             break;
     }
 }