mirror of
https://bitbucket.org/studiotem/jandl-taskmanager-app.git
synced 2026-10-22 06:49:35 +00:00
no message
This commit is contained in:
1 parent
fc02df862f
commit
3128d3657c
7 files changed
+147
-17
No files matched your search
@@ -2,6 +2,10 @@
|
||||
|
||||
namespace App\Services\Karat;
|
||||
|
||||
use App\Models\User;
|
||||
use Illuminate\Support\Arr;
|
||||
use Illuminate\Support\Collection;
|
||||
|
||||
class KaratService
|
||||
{
|
||||
private Api $api;
|
||||
@@ -13,11 +17,35 @@ class KaratService
|
||||
|
||||
public function syncUsers()
|
||||
{
|
||||
$users = $this->api->getUsers();
|
||||
|
||||
dd($users);
|
||||
$karatUsers = \App\Services\Karat\User::all();
|
||||
$dbUsers = User::all();
|
||||
|
||||
$this->insertUsersFromKarat($karatUsers, $dbUsers);
|
||||
|
||||
$this->removeUsersThatAreNotInKaratAnymore($karatUsers, $dbUsers);
|
||||
}
|
||||
|
||||
private function insertUsersFromKarat(Collection $karatUsers, Collection $dbUsers)
|
||||
{
|
||||
$emailsToSkip = $dbUsers->pluck('email' )->intersect( $karatUsers->pluck('email'));
|
||||
|
||||
$karatUsersToInsert = $karatUsers->reject(function ($item) use ($emailsToSkip) {
|
||||
return $emailsToSkip->contains($item->email);
|
||||
})->map(function ($item) {
|
||||
$array = $item->toArray();
|
||||
|
||||
return $array;
|
||||
});
|
||||
|
||||
User::insert($karatUsersToInsert->toArray());
|
||||
}
|
||||
|
||||
private function removeUsersThatAreNotInKaratAnymore( Collection $karatUsers, Collection $dbUsers )
|
||||
{
|
||||
$emailsInDbThatAreNotInKaratAnymore = $dbUsers->pluck('email' )->diff( $karatUsers->pluck('email'));
|
||||
|
||||
User::whereIn('email', $emailsInDbThatAreNotInKaratAnymore)->delete();
|
||||
|
||||
return $users;
|
||||
}
|
||||
|
||||
|
||||
|
||||
Reference in new issue
Block a user