'datetime', 'ok_cgv' => 'datetime', ]; public function saveOriginalOnly() { $dirty = $this->getDirty(); foreach ($this->getAttributes() as $key => $value) { if(!in_array($key, array_keys($this->getOriginal()))) unset($this->$key); } $isSaved = $this->save(); foreach($dirty as $key => $value) { $this->setAttribute($key, $value); } return $isSaved; } /** * Mutator method to set apiData's value */ public function setApiDataAttribute($value) { $this->apiData = $value; } /** * Get the crm Data of a customer * Accessor method for apiData * * @throws CrmException * @return object crm user * @author Olivier Legat */ public function getApiDataAttribute() { if(isset($this->apiData)) { return $this->apiData; } else { if($this->attributes['role'] == 3 && !is_null($this->attributes['crm_id'])) { /** @var \LDCCRM\ApiV1 */ $crm = app('crmApi'); $response = (object)$crm->getCustomer($this->crm_id); switch ($response->status) { case 'KO': throw new CrmException(sprintf('Api call error %s', $response->message)); case 'OK': $this->apiData = $response->user; return $response->user; default: throw new CrmException('Unknown status'); } } } } /** * Set the crm Data of a customer * * @throws CrmException * @return object crm user * @author Jérémy Munsch */ public function updateApiData(UserCrmResource $resource) { /** @var \LDCCRM\ApiV1 */ $crm = app('crmApi'); $response = (object) \call_user_func_array([$crm, 'updateCustomer'], $resource->toArray(null)); switch ($response->status) { case 'KO': throw new CrmException(sprintf('Api call error %s', $response->message)); case 'OK': return $response->user; default: throw new CrmException('Unknown status'); } } /** * prend trop de temps pour afficher la liste des users */ // public function getFirstnameAttribute() // { // if ($this->attributes['role'] == 3 && !is_null($this->attributes['crm_id'])) { // $crm = app('crmApi'); // $crm_result = $crm->getCustomer($this->attributes['crm_id']); // $crm_user = $crm_result->user; // return $crm_user->firstname; // } else { // return $this->attributes['firstname']; // } // } // public function getLastnameAttribute() // { // if ($this->attributes['role'] == 3 && !is_null($this->attributes['crm_id'])) { // $crm = app('crmApi'); // $crm_result = $crm->getCustomer($this->attributes['crm_id']); // $crm_user = $crm_result->user; // return $crm_user->lastname; // } else { // return $this->attributes['lastname']; // } // } }