You are not logged in.

Announcement

 Téléchargez la dernière version stable de GLPI      -     Et vous, que pouvez vous faire pour le projet GLPI ? :  Contribuer
 Download last stable version of GLPI                      -     What can you do for GLPI ? :  Contribute

#1 2014-04-24 11:08:40

olivem
Member
Registered: 2014-04-24
Posts: 7

[WebServices] Ajout d'une tache

Bonjour,

Je voulais savoir s'il était possible d'ajouter une "Tache" via le plugin WebServices ?

Si oui, comment ?

Sinon, serait-il possible aux développeurs de ce plugin, d'ajouter cette fonctionnalité ?

Merci d'avance pour vos réponses

Offline

#2 2014-04-25 15:15:58

olivem
Member
Registered: 2014-04-24
Posts: 7

Re: [WebServices] Ajout d'une tache

j'ai trouvé ça sur le forum anglais.
C'est valide ou pas ? Je peux l'utiliser ?


lien vers le topic : http://www.glpi-project.org/forum/viewt … p?id=26511


--------------------------------------------------------------
--------------------------------------------------------------
--------------------------------------------------------------
--------------------------------------------------------------

// Add this to webservices/inc/methodhelpdesk.class.php, at the end of the file *before* } ?>
  /**
    * Add a (planned) Task to a existing ticket
    * for a authenticated user
    *
    * @param $params array of options (ticket, content)
    * @return array of hashtable
    */
   static function methodAddTicketTask($params, $protocol) {

      if (isset ($params['help'])) {
         return array('ticket'  => 'integer,mandatory',
                      'content' => 'string,mandatory',
              'private' => 'bool,optional',
              'planstart' => 'datestring,optional',
              'planend' => 'datestring,optional',
                      'close'   => 'bool,optional',
                      'reopen'  => 'bool,optional',
                      'help'    => 'bool,optional');
      }
      if (!isset ($_SESSION['glpiID'])) {
         return self::Error($protocol, WEBSERVICES_ERROR_NOTAUTHENTICATED);
      }
      $ticket = new Ticket();

      if (!isset ($params['ticket'])) {
         return self::Error($protocol, WEBSERVICES_ERROR_MISSINGPARAMETER, '', 'ticket');
      } else if (!is_numeric($params['ticket'])) {
         return self::Error($protocol, WEBSERVICES_ERROR_BADPARAMETER, '', 'ticket');
      } else if (!$ticket->can($params['ticket'],'r')) {
         return self::Error($protocol, WEBSERVICES_ERROR_NOTFOUND);
      }

      if (!$ticket->canAddFollowups()) {
         return self::Error($protocol, WEBSERVICES_ERROR_NOTALLOWED);
      }

      if (!isset($params['content'])) {
         return self::Error($protocol, WEBSERVICES_ERROR_MISSINGPARAMETER, '', 'content');
      }

      $task = new TicketTask();
      $data = array('tickets_id' => $params['ticket'],
            'taskcategories_id' => '0',
                    'content'    => addslashes(clean_cross_side_scripting_deep($params["content"])));
      if (!isset($params['private'])){
        $data['is_private'] = 0;    
      }
      if (isset($params['planstart']) && !isset($params['planend'])){
        return self::Error($protocol, WEBSERVICES_ERROR_BADPARAMETER, '', 'planend');
      }
      if (isset($params['planend']) && !isset($params['planstart'])){
        return self::Error($protocol, WEBSERVICES_ERROR_BADPARAMETER, '', 'planstart');
      }
      // date (open) : optional, default set by add method
      if (isset ($params["date"])) {
         if (preg_match(WEBSERVICES_REGEX_DATETIME, $params["date"])) {
            $data['date'] = $params['date'];
         } else {
            return self::Error($protocol, WEBSERVICES_ERROR_BADPARAMETER, '', 'date');
         }
      }
      if (isset($params['close'])) {
         if ($ticket->fields['status'] == 'solved') {
            $data['add_close'] = 1;
         } else {
            return self::Error($protocol, WEBSERVICES_ERROR_BADPARAMETER, '', 'close for not solved ticket');
         }
      }
      if (isset($params['reopen'])) {
         if ($ticket->fields['status'] == 'solved') {
            $data['add_reopen'] = 1;
         } else {
            return self::Error($protocol, WEBSERVICES_ERROR_BADPARAMETER, '', 'reopen for not solved ticket');
         }
      }
     $taskid = false;
     $taskid = $task->add($data);
      if ($taskid) {
          if (isset($params['planstart']) && isset($params['planend'])){
         $planning = new TicketPlanning();
         $data = array(
                'tickets_id'      => $params['ticket'],
                'users_id'      => $_SESSION['glpiID'],
                'tickettasks_id'  => $taskid,
                'begin'          => $params['planstart'],
                'end'          => $params['planend']
            );
         if ($planning->add($data)){
           return self::methodGetTicket(array('ticket' => $params['ticket']),$protocol);
         }  else {
           return self::Error($protocol, WEBSERVICES_ERROR_FAILED, '',self::getDisplayError());
         }
          }
         return self::methodGetTicket(array('ticket' => $params['ticket']),$protocol);
      }
      return self::Error($protocol, WEBSERVICES_ERROR_FAILED, '',self::getDisplayError());
   }
// Add in webservices/hook.php in function plugin_webservices_registerMethods(), at the end of the funtion

   $WEBSERVICES_METHOD['glpi.addTicketTask']     = array('PluginWebservicesMethodHelpdesk','methodAddTicketTask');

Last edited by olivem (2014-04-25 15:18:02)

Offline

#3 2014-04-25 15:33:11

yllen
GLPI-DEV
From: Sillery (51)
Registered: 2008-01-14
Posts: 15,278

Re: [WebServices] Ajout d'une tache

Non ce code n'est pas correct car il ne contrôle pas les bons droits et ne fonctionnera pas avec glpi 0.84.
Ticket ajouté sur la forge du plugin : https://forge.indepnet.net/issues/4892


CentOS 6.5 - CentOS 7.x
PHP 5.6 - PHP 7.x - MySQL 5.6  - MariaDB 10.2 + APC + oOPcache
GLPI from 0.72 to dev version
Certifiée ITIL (ITV2F, ITILF, ITILOSA)

Offline

#4 2014-04-25 15:57:50

olivem
Member
Registered: 2014-04-24
Posts: 7

Re: [WebServices] Ajout d'une tache

Merci beaucoup pour la réponse et j'ai hâte de voir le résultat sur le plugin.

Offline

#5 2017-06-13 15:39:34

yllen
GLPI-DEV
From: Sillery (51)
Registered: 2008-01-14
Posts: 15,278

Re: [WebServices] Ajout d'une tache

Nouvelle version du plugin Webservices: https://forge.glpi-project.org/news/347


CentOS 6.5 - CentOS 7.x
PHP 5.6 - PHP 7.x - MySQL 5.6  - MariaDB 10.2 + APC + oOPcache
GLPI from 0.72 to dev version
Certifiée ITIL (ITV2F, ITILF, ITILOSA)

Offline

Board footer

Powered by FluxBB