| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263 |
- <?php
- namespace App\Repositories;
- use App\Models\User;
- use Illuminate\Database\Eloquent\Collection;
- use App\DataTransferObjects\UserDto;
- use App\DataTransferObjects\UserLanguageDto;
- use App\Enums\UserTypeSource;
- class UserRepository implements UserRepositoryInterface
- {
- public function all(): ?Collection
- {
- return User::all();
- }
- public function store(UserDto $userDto): User
- {
- return User::create([
- 'name' => $userDto->name,
- 'email' => $userDto->email,
- 'password' => bcrypt($userDto->password),
- 'type' => $userDto->type ?? UserTypeSource::RegularUser,
- ]);
- }
- public function update(UserDto $userDto, int $id): ?User
- {
- $user = User::findOrFail($id);
- $user->update([
- 'name' => $userDto->name,
- 'email' => $userDto->email,
- 'password' => bcrypt($userDto->password),
- 'type' => $userDto->type ?? UserTypeSource::RegularUser,
- ]);
- return $user;
- }
- public function delete(int $id): bool
- {
- return User::destroy($id) > 0;
- }
- public function find(int $id): ?User
- {
- return User::findOrFail($id);
- }
- public function findByEmail(string $email): ?User
- {
- return User::where('email', $email)->first();
- }
- public function updateLanguage(UserLanguageDto $languageDto, int $id): ?User
- {
- $user = User::findOrFail($id);
- $user->update([
- 'language' => $languageDto->language,
- ]);
- return $user;
- }
- }
|