Exemplo n.º 1
0
 /**
  * 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());
 }