vendor/bjsmasth/php-salesforce-rest-api/src/CRUD.php line 22

Open in your IDE?
  1. <?php
  2. namespace bjsmasth\Salesforce;
  3. use GuzzleHttp\Client;
  4. class CRUD
  5. {
  6.     protected $instance_url;
  7.     protected $access_token;
  8.     public function __construct()
  9.     {
  10.         if (!isset($_SESSION) and !isset($_SESSION['salesforce'])) {
  11.             throw new \Exception('Access Denied'403);
  12.         }
  13.         $this->instance_url $_SESSION['salesforce']['instance_url'];
  14.         $this->access_token $_SESSION['salesforce']['access_token'];
  15.     }
  16.     public function query($query)
  17.     {
  18.         $url "$this->instance_url/services/data/v39.0/query";
  19.         $client = new Client();
  20.         $request $client->request('GET'$url, [
  21.             'headers' => [
  22.                 'Authorization' => "OAuth $this->access_token"
  23.             ],
  24.             'query' => [
  25.                 'q' => $query
  26.             ]
  27.         ]);
  28.         return json_decode($request->getBody(), true);
  29.     }
  30.     public function create($object, array $data)
  31.     {
  32.         $url "$this->instance_url/services/data/v39.0/sobjects/$object/";
  33.         $client = new Client();
  34.         $request $client->request('POST'$url, [
  35.             'headers' => [
  36.                 'Authorization' => "OAuth $this->access_token",
  37.                 'Content-type' => 'application/json'
  38.             ],
  39.             'json' => $data
  40.         ]);
  41.         $status $request->getStatusCode();
  42.         if ($status != 201) {
  43.             die("Error: call to URL $url failed with status $status, response: " $request->getReasonPhrase());
  44.         }
  45.         $response json_decode($request->getBody(), true);
  46.         $id $response["id"];
  47.         return $id;
  48.     }
  49.     public function update($object$id, array $data)
  50.     {
  51.         $url "$this->instance_url/services/data/v39.0/sobjects/$object/$id";
  52.         $client = new Client();
  53.         $request $client->request('PATCH'$url, [
  54.             'headers' => [
  55.                 'Authorization' => "OAuth $this->access_token",
  56.                 'Content-type' => 'application/json'
  57.             ],
  58.             'json' => $data
  59.         ]);
  60.         $status $request->getStatusCode();
  61.         if ($status != 204) {
  62.             die("Error: call to URL $url failed with status $status, response: " $request->getReasonPhrase());
  63.         }
  64.         return $status;
  65.     }
  66.     public function delete($object$id)
  67.     {
  68.         $url "$this->instance_url/services/data/v39.0/sobjects/$object/$id";
  69.         $client = new Client();
  70.         $request $client->request('DELETE'$url, [
  71.             'headers' => [
  72.                 'Authorization' => "OAuth $this->access_token",
  73.             ]
  74.         ]);
  75.         $status $request->getStatusCode();
  76.         if ($status != 204) {
  77.             die("Error: call to URL $url failed with status $status, response: " $request->getReasonPhrase());
  78.         }
  79.         return true;
  80.     }
  81. }