/** * Create a new question * * @apiMethod POST * @apiUri /answers/questions * @apiParameter { * "name": "email", * "description": "Notify user of responses", * "type": "integer", * "required": false, * "default": 0 * } * @apiParameter { * "name": "anonymous", * "description": "List author as anonymous or not", * "type": "integer", * "required": false, * "default": 0 * } * @apiParameter { * "name": "subject", * "description": "Short, one-line question", * "type": "string", * "required": true, * "default": null * } * @apiParameter { * "name": "question", * "description": "Longer, detailed question", * "type": "string", * "required": false, * "default": null * } * @apiParameter { * "name": "created", * "description": "Created timestamp (YYYY-MM-DD HH:mm:ss)", * "type": "string", * "required": false, * "default": "now" * } * @apiParameter { * "name": "crated_by", * "description": "User ID of entry creator", * "type": "integer", * "required": false, * "default": 0 * } * @apiParameter { * "name": "state", * "description": "Published state (0 = unpublished, 1 = published)", * "type": "integer", * "required": false, * "default": 0 * } * @apiParameter { * "name": "reward", * "description": "Reward points", * "type": "integer", * "required": false, * "default": 0 * } * @apiParameter { * "name": "tags", * "description": "Comma-separated list of tags", * "type": "string", * "required": true, * "default": null * } * @return void */ public function createTask() { $this->requiresAuthentication(); $fields = array('email' => Request::getInt('email', 0, 'post'), 'anonymous' => Request::getInt('anonymous', 0, 'post'), 'subject' => Request::getVar('subject', null, 'post', 'none', 2), 'question' => Request::getVar('question', null, 'post', 'none', 2), 'created' => Request::getVar('created', new Date('now'), 'post'), 'created_by' => Request::getInt('created_by', 0, 'post'), 'state' => Request::getInt('state', 0, 'post'), 'reward' => Request::getInt('reward', 0, 'post'), 'tags' => Request::getVar('tags', null, 'post')); $row = new Question(); if (!$row->set($fields)) { throw new Exception(Lang::txt('COM_ANSWERS_ERROR_BINDING_DATA'), 500); } $row->set('email', isset($fields['email']) ? 1 : 0); $row->set('anonymous', isset($fields['anonymous']) ? 1 : 0); if (!$row->save()) { throw new Exception(Lang::txt('COM_ANSWERS_ERROR_SAVING_DATA'), 500); } if (isset($fields['tags'])) { if (!$row->tag($fields['tags'], User::get('id'))) { throw new Exception(Lang::txt('COM_ANSWERS_ERROR_SAVING_TAGS'), 500); } } $this->send($row->toObject()); }