Changeset 96723 in spip-zone


Ignore:
Timestamp:
Apr 20, 2016, 4:58:57 PM (3 years ago)
Author:
cedric@…
Message:

permettre DELETE ou PUT sur les appels de l'API sparkpost, ne pas creer de webhooks doublons

Location:
_plugins_/mailshot/trunk
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/mailshot/trunk/bulkmailer/sparkpost.php

    r96722 r96723  
    187187        );
    188188
    189 /*
    190         if (isset($res['Count'])
    191           AND $res['Count']>0
    192                 AND isset($res['Data'])
    193                 AND $res['Data']){
    194 
    195                 foreach($res['Data'] as $eventCallback){
    196                         if (in_array($eventCallback['EventType'],$events)){
    197                                 if ($eventCallback['Url']===$url){
    198                                         // OK pour cet event, rien a faire
    199                                         $events = array_diff($events,array($eventCallback['EventType']));
     189        // verifier si le webhook existe deja
     190        $found = false;
     191        if (isset($res['results'])){
     192                foreach($res['results'] as $webhook){
     193                        if ($webhook['target']==$url){
     194
     195                                if (!$found
     196                                  AND count(array_intersect($webhook['events'],$data['events']))==count($data['events'])
     197                                  AND $webhook['auth_type']==$data['auth_type']){
     198                                        $found = true;
    200199                                }
    201200                                else {
    202                                         // il faut supprimer cette callback qui n'est pas sur la bonne URL
    203                                         // et on la rajoutera ensuite avec la bonne URL (en dessous)
    204                                         $params = array(
    205                                                 'path' => $eventCallback['ID'],
    206                                                 'method' => 'DELETE',
    207                                         );
    208                                         $mj->eventcallbackurl($params);
     201                                        // sinon il faut supprimer ce webhook
     202                                        sparkpost_api_call('webhooks/'.$webhook['id'],null,'DELETE');
    209203                                }
    210204                        }
    211205                }
    212         }*/
    213 
     206        }
     207
     208        if ($found) return true;
    214209
    215210        // si le webhook n'existe pas on l'ajoute
     
    265260 * @param string $method
    266261 * @param array $data
     262 * @param string $http_req
    267263 * @return array
    268264 */
    269 function sparkpost_api_call($method,$data=null) {
     265function sparkpost_api_call($method,$data=null,$http_req=null) {
    270266        static $api_key = null;
    271267        if (is_null($api_key)){
     
    291287
    292288        if (function_exists('recuperer_url')){
    293                 $result = recuperer_url($url, array('datas'=>$post_data));
     289                $options = array(
     290                        'datas'=>$post_data
     291                );
     292                if (in_array($http_req,array("DELETE","PUT"))) {
     293                        $options['methode'] = $http_req;
     294                }
     295                $result = recuperer_url($url, $options);
    294296                $response = $result['page'];
    295                 if ($result['status']>200){
    296                         //var_dump($response);
    297                 }
    298297        }
    299298        elseif(function_exists('curl_init')){
     
    304303                curl_setopt($ch, CURLOPT_HEADER, FALSE);
    305304                curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
     305                if (in_array($http_req,array("DELETE","PUT"))){
     306                        curl_setopt($ch, CURLOPT_CUSTOMREQUEST, $http_req);
     307                }
    306308                if ($data){
    307309                        curl_setopt($ch, CURLOPT_POST, TRUE);
  • _plugins_/mailshot/trunk/paquet.xml

    r96722 r96723  
    22        prefix="mailshot"
    33        categorie="communication"
    4         version="1.15.1"
     4        version="1.15.2"
    55        etat="stable"
    66        compatibilite="[3.0.5;3.1.*]"
Note: See TracChangeset for help on using the changeset viewer.