no message

This commit is contained in:
StudioTem committed 2023-02-27 15:32:59 +01:00
1 parent fc02df862f
commit 3128d3657c
7 files changed
+147 -17

No files matched your search

+32 -4
View File
@@ -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;
}