zapier on ticket create

This commit is contained in:
Frédéric FRANCE 2020-10-30 20:37:23 +01:00
parent 2cbbf86a5b
commit 41e8f0085c
No known key found for this signature in database
GPG Key ID: 06809324E4B2ABC1
4 changed files with 72 additions and 25 deletions

View File

@ -1,8 +1,9 @@
/*jshint esversion: 6 */
const triggerThirdparty = require('./triggers/thirdparty');
const triggerUser = require('./triggers/user');
const triggerOrder = require('./triggers/order');
const triggerAction = require('./triggers/action');
const triggerOrder = require('./triggers/order');
const triggerThirdparty = require('./triggers/thirdparty');
const triggerTicket = require('./triggers/ticket');
const triggerUser = require('./triggers/user');
const searchThirdparty = require('./searches/thirdparty');
@ -50,7 +51,6 @@ const App = {
afterResponse: [
...afters
//sessionRefreshIf401
],
// If you want to define optional resources to simplify creation of triggers, searches, creates - do that here!
@ -59,10 +59,11 @@ const App = {
// If you want your trigger to show up, you better include it here!
triggers: {
[triggerThirdparty.key]: triggerThirdparty,
[triggerUser.key]: triggerUser,
[triggerOrder.key]: triggerOrder,
[triggerAction.key]: triggerAction,
[triggerOrder.key]: triggerOrder,
[triggerThirdparty.key]: triggerThirdparty,
[triggerTicket.key]: triggerTicket,
[triggerUser.key]: triggerUser,
},
// If you want your searches to show up, you better include it here!

View File

@ -146,6 +146,12 @@ class InterfaceZapierTriggers extends DolibarrTriggers
//case 'USERGROUP_MODIFY':
//case 'USERGROUP_DELETE':
// Categories
// case 'CATEGORY_CREATE':
// case 'CATEGORY_MODIFY':
// case 'CATEGORY_DELETE':
// case 'CATEGORY_SET_MULTILANGS':
// Companies
case 'COMPANY_CREATE':
$resql = $this->db->query($sql);
@ -327,12 +333,6 @@ class InterfaceZapierTriggers extends DolibarrTriggers
// case 'MEMBER_RESILIATE':
// case 'MEMBER_DELETE':
// Categories
// case 'CATEGORY_CREATE':
// case 'CATEGORY_MODIFY':
// case 'CATEGORY_DELETE':
// case 'CATEGORY_SET_MULTILANGS':
// Projects
// case 'PROJECT_CREATE':
// case 'PROJECT_MODIFY':
@ -347,6 +347,23 @@ class InterfaceZapierTriggers extends DolibarrTriggers
// case 'TASK_TIMESPENT_CREATE':
// case 'TASK_TIMESPENT_MODIFY':
// case 'TASK_TIMESPENT_DELETE':
case 'TICKET_CREATE':
$resql = $this->db->query($sql);
// TODO voir comment regrouper les webhooks en un post
while ($resql && $obj = $this->db->fetch_array($resql)) {
$cleaned = cleanObjectDatas(dol_clone($object));
$cleaned = cleanAgendaEventsDatas($cleaned);
$json = json_encode($cleaned);
// call the zapierPostWebhook() function
zapierPostWebhook($obj['url'], $json);
//setEventMessages($obj['url'], null);
}
$logtriggeraction = true;
break;
// case 'TICKET_MODIFY':
// break;
// case 'TICKET_DELETE':
// break;
// Shipping
// case 'SHIPPING_CREATE':

View File

@ -136,11 +136,14 @@ class Tickets extends DolibarrApi
}
// Check parameters
if (!$id && !$track_id && !$ref) {
if (($id < 0) && !$track_id && !$ref) {
throw new RestException(401, 'Wrong parameters');
}
$result = $this->ticket->fetch($id, $ref, $track_id);
if ($id == 0) {
$result = $this->ticket->initAsSpecimen();
} else {
$result = $this->ticket->fetch($id, $ref, $track_id);
}
if (!$result) {
throw new RestException(404, 'Ticket not found');
}
@ -205,7 +208,6 @@ class Tickets extends DolibarrApi
$this->ticket->history = $history;
}
if (!DolibarrApi::_checkAccessToResource('ticket', $this->ticket->id)) {
throw new RestException(401, 'Access not allowed for login '.DolibarrApiAccess::$user->login);
}

View File

@ -1,7 +1,7 @@
<?php
/* Copyright (C) 2013-2018 Jean-François Ferry <hello@librethic.io>
* Copyright (C) 2016 Christophe Battarel <christophe@altairis.fr>
* Copyright (C) 2019 Frédéric France <frederic.france@netlogic.fr>
* Copyright (C) 2019-2020 Frédéric France <frederic.france@netlogic.fr>
* Copyright (C) 2020 Laurent Destailleur <eldy@users.sourceforge.net>
*
* This program is free software; you can redistribute it and/or modify
@ -108,8 +108,13 @@ class Ticket extends CommonObject
/**
* @var int Ticket statut
* @deprecated
*/
public $fk_statut;
/**
* @var int Ticket status
*/
public $fk_statut; // deprecated
public $status;
/**
@ -188,10 +193,13 @@ class Ticket extends CommonObject
public $cache_category_tickets;
/**
* @var int Notify tiers at create
* @var int Notify thirdparty at create
*/
public $notify_tiers_at_create;
/**
* @var string msgid
*/
public $email_msgid;
public $lines;
@ -279,8 +287,26 @@ class Ticket extends CommonObject
{
$this->db = $db;
$this->statuts_short = array(self::STATUS_NOT_READ => 'Unread', self::STATUS_READ => 'Read', self::STATUS_ASSIGNED => 'Assigned', self::STATUS_IN_PROGRESS => 'InProgress', self::STATUS_NEED_MORE_INFO => 'NeedMoreInformation', self::STATUS_WAITING => 'Suspended', self::STATUS_CLOSED => 'Closed', self::STATUS_CANCELED => 'Canceled');
$this->statuts = array(self::STATUS_NOT_READ => 'Unread', self::STATUS_READ => 'Read', self::STATUS_ASSIGNED => 'Assigned', self::STATUS_IN_PROGRESS => 'InProgress', self::STATUS_NEED_MORE_INFO => 'NeedMoreInformation', self::STATUS_WAITING => 'Suspended', self::STATUS_CLOSED => 'Closed', self::STATUS_CANCELED => 'Canceled');
$this->statuts_short = array(
self::STATUS_NOT_READ => 'Unread',
self::STATUS_READ => 'Read',
self::STATUS_ASSIGNED => 'Assigned',
self::STATUS_IN_PROGRESS => 'InProgress',
self::STATUS_NEED_MORE_INFO => 'NeedMoreInformation',
self::STATUS_WAITING => 'Suspended',
self::STATUS_CLOSED => 'Closed',
self::STATUS_CANCELED => 'Canceled'
);
$this->statuts = array(
self::STATUS_NOT_READ => 'Unread',
self::STATUS_READ => 'Read',
self::STATUS_ASSIGNED => 'Assigned',
self::STATUS_IN_PROGRESS => 'InProgress',
self::STATUS_NEED_MORE_INFO => 'NeedMoreInformation',
self::STATUS_WAITING => 'Suspended',
self::STATUS_CLOSED => 'Closed',
self::STATUS_CANCELED => 'Canceled'
);
}
/**
@ -1053,12 +1079,12 @@ class Ticket extends CommonObject
* Initialise object with example values
* Id must be 0 if object instance is a specimen
*
* @return void
* @return int
*/
public function initAsSpecimen()
{
$this->id = 0;
$this->entity = 1;
$this->ref = 'TI0501-001';
$this->track_id = 'XXXXaaaa';
$this->origin_email = 'email@email.com';
@ -1067,7 +1093,7 @@ class Ticket extends CommonObject
$this->fk_user_assign = 1;
$this->subject = 'Subject of ticket';
$this->message = 'Message of ticket';
$this->fk_statut = 0;
$this->status = 0;
$this->resolution = '1';
$this->progress = '10';
$this->timing = '30';
@ -1078,6 +1104,7 @@ class Ticket extends CommonObject
$this->date_read = '';
$this->date_close = '';
$this->tms = '';
return 1;
}
/**