Esempio n. 1
0
 /**
  * Get all users from Kandy and import/update to kandy_user
  *
  * @return array A json status and message
  */
 public function syncUsers()
 {
     $kandyUsers = $this->listUser(self::KANDY_USER_ALL, true);
     $getDomainNameResponse = $this->getDomain();
     if ($getDomainNameResponse['success']) {
         $domainName = $getDomainNameResponse['data'];
         \DB::transaction(function () use($domainName, $kandyUsers) {
             $receivedUsers = array();
             foreach ($kandyUsers as $kandyUser) {
                 array_push($receivedUsers, $kandyUser->user_id);
                 $model = KandyUsers::whereuser_id($kandyUser->user_id)->wheredomain_name($domainName)->first();
                 $now = date("Y-m-d H:i:s");
                 if (empty($model)) {
                     // Create a new record
                     $model = new KandyUsers();
                     $model->user_id = $kandyUser->user_id;
                     $model->created_at = $now;
                 }
                 $model->first_name = $kandyUser->user_first_name;
                 $model->last_name = $kandyUser->user_last_name;
                 $model->email = $kandyUser->user_email;
                 $model->domain_name = $kandyUser->domain_name;
                 $model->api_key = $kandyUser->user_api_key;
                 $model->api_secret = $kandyUser->user_api_secret;
                 if (!empty($kandyUser->user_password)) {
                     $model->password = $kandyUser->user_password;
                 }
                 $model->updated_at = $now;
                 $model->save();
             }
             // Delete records which no longer exist on server
             KandyUsers::wheredomain_name($domainName)->whereNotIn('user_id', $receivedUsers)->delete();
         });
         $result = array('success' => true, 'message' => "Synchronization successfully");
     } else {
         $result = array('success' => false, 'message' => "Cannot get domain name.");
     }
     return $result;
 }