Advertisement
benshepherd

Voucherify - Create event

Apr 7th, 2020
271
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 1.62 KB | None | 0 0
  1.     public function event(Ticket $ticket, $event)
  2.     {
  3.         $uri = VoucherifyAPI::$eventsUrl;
  4.         $metadata = request()->input('metadata', []);
  5.  
  6.         $formData = [
  7.             'customer' => $this->getCustomerFormData($ticket->getCustomer()),
  8.             'event' => $event,
  9.             'metadata' => (object)$metadata,
  10.         ];
  11.  
  12.         // Form data should look like this
  13.         // {"customer":{"source_id":"W2wGu5VvYK","id":"cust_w73PbtpPldrNSFUHb7iDEeU7","name":"Mr. Benjamin Shepherd","email":"ben.shepherd@gmx.com","metadata":{"Phone":"01634220892"}},"event":"cart_abandoned","metadata":{}}
  14.  
  15.         try {
  16.             $client = new \GuzzleHttp\Client();
  17.             $response = $client->request('POST', $uri, [
  18.                 'headers' => $this->headers,
  19.                 'json' => $formData
  20.             ]);
  21.  
  22.             // Track voucherify events
  23.             if (!isset($ticket['voucherify_events'])) {
  24.                 $voucherify_events = [];
  25.             } else {
  26.                 $voucherify_events = $ticket['voucherify_events'];
  27.             }
  28.  
  29.             $voucherify_events[] = [
  30.                 'datetime' => Carbon::now()->format('d/m/Y H:i:s'),
  31.                 'event' => $event,
  32.                 'metadata' => $metadata,
  33.             ];
  34.  
  35.             $ticket->voucherify_events = $voucherify_events;
  36.             $ticket->save();
  37.  
  38.             return response()->json([
  39.                 'status' => 1,
  40.             ]);
  41.         }
  42.         catch (\Exception $e) {
  43.             return response()->json([
  44.                 'status' => 0,
  45.                 'message' => $e->getMessage()
  46.             ], 422);
  47.         }
  48.     }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement