mirror of
https://github.com/Dolibarr/dolibarr.git
synced 2025-02-20 13:46:52 +01:00
zapier on ticket create
This commit is contained in:
parent
2cbbf86a5b
commit
41e8f0085c
|
|
@ -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!
|
||||
|
|
|
|||
|
|
@ -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':
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user