/** * find user by username or create a new user * @param * @return */ public function findByProviderIdOrCreate($userData, $provider) { $user = User::where('provider_id', '=', $userData->id)->first(); if (!$user) { $user = User::create(['fullname' => $userData->getName(), 'username' => $userData->getId(), 'provider_id' => $userData->getId(), 'avatar' => $userData->getAvatar(), 'provider' => $provider]); } $this->checkIfUserNeedsUpdating($userData, $user); return $user; }
/** * findByIDorCreate check if user already exist * * @param $userData * @param $provider */ public function findByIDorCreate($data, $provider) { $columnName = $provider . 'ID'; $user = $this->checkUserExist($userData, $provider); if ($user) { User::where('id', $user->id)->update([$columnName => $userData->getId()]); return $user; } }
public function testFacebookSocialOAuth() { User::create(['id' => 1, 'fullname' => 'florence', 'username' => 'florence', 'provider_id' => 1146673212009898, 'avatar' => 'https://graph.facebook.com/v2.5/1146673212009898/picture?type=normal']); $user = User::where('provider_id', '=', 1146673212009898)->first(); $userData = ['id' => 1146673212009898, 'nickname' => 'florence', 'name' => 'florence', 'email' => '*****@*****.**', 'avatar' => 'https://graph.facebook.com/v2.5/1146673212009898/picture?type=normal']; $provider = 'github'; $mock = Mockery::mock('Techademia\\Repositories\\UserRepository'); $mock->shouldReceive('findByProviderIdOrCreate')->with($userData, $provider)->andReturn($user); $this->assertSame($user, $mock->findByProviderIdOrCreate($userData, $provider)); }