diff --git a/src/User/FlatFileUserRepository.php b/src/User/FlatFileUserRepository.php index d898a70..6b85552 100644 --- a/src/User/FlatFileUserRepository.php +++ b/src/User/FlatFileUserRepository.php @@ -26,5 +26,33 @@ class FlatFileUserRepository implements UserRepository public function save(User $user): User { + $data = $this->getUsersData(); + foreach ($data as $jsonUser) { + if ($jsonUser['email'] === $user->getEmail()) { + $jsonUser['password'] = $user->getPassword(); + file_put_contents( + $this->pathToUserFile, + json_encode($data, JSON_PRETTY_PRINT) + ); + return new User( + $jsonUser['email'], + $jsonUser['password'] + ); + } + } + $newUser = [ + 'email' => $user->getEmail(), + 'password' => $user->getPassword(), + ]; + $data[] = $newUser; + file_put_contents( + $this->pathToUserFile, + json_encode($data, JSON_PRETTY_PRINT) + ); + return new User( + $newUser['email'], + $newUser['password'] + ); + } }