/** * Answer to the ticket satisfaction survey * for an authenticated user * * @param $params array of options (ticket, id2name) * @param $protocol the communication protocol used * * @return array of hashtable as glpi.getTicket **/ static function methodsetTicketSatisfaction($params, $protocol) { global $DB, $CFG_GLPI; if (isset($params['help'])) { return array('ticket' => 'integer,mandatory', 'id2name' => 'bool,optional', 'satisfaction' => 'integer,mandatory', 'comment' => 'text,optional', 'help' => 'bool,optional'); } if (!Session::getLoginUserID()) { return self::Error($protocol, WEBSERVICES_ERROR_NOTAUTHENTICATED); } $ticket = new Ticket(); if (!isset($params['ticket'])) { return self::Error($protocol, WEBSERVICES_ERROR_MISSINGPARAMETER, '', 'ticket'); } if (!isset($params['satisfaction'])) { return self::Error($protocol, WEBSERVICES_ERROR_MISSINGPARAMETER, '', 'satisfaction'); } if (!is_numeric($params['satisfaction']) || $params['satisfaction'] < 0 || $params['satisfaction'] > 5) { return self::Error($protocol, WEBSERVICES_ERROR_BADPARAMETER, '', 'satisfaction=' . $params['satisfaction']); } if (!$ticket->can($params['ticket'], 'r')) { return self::Error($protocol, WEBSERVICES_ERROR_NOTFOUND, '', 'ticket'); } $inquest = new TicketSatisfaction(); if (!$inquest->getFromDB($params['ticket'])) { return self::Error($protocol, WEBSERVICES_ERROR_NOTFOUND, '', 'satisfaction'); } $input = array('id' => $inquest->getField('id'), 'tickets_id' => $inquest->getField('tickets_id'), 'satisfaction' => $params['satisfaction']); if (isset($params['comment'])) { $input['comment'] = addslashes($params['comment']); } if (!$inquest->can($params['ticket'], 'w')) { return self::Error($protocol, WEBSERVICES_ERROR_NOTALLOWED); } if ($inquest->update($input)) { unset($params['satisfaction'], $params['comment']); return self::methodGetTicket($params, $protocol); } return self::Error($protocol, WEBSERVICES_ERROR_FAILED, '', self::getDisplayError()); }