From eba54419497f737839027831b97f26fdee5f5185 Mon Sep 17 00:00:00 2001 From: fokosun Date: Mon, 21 Aug 2023 13:09:31 -0400 Subject: [PATCH 01/17] set up cron monitor to invalidate expired otps --- app/Console/Kernel.php | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/app/Console/Kernel.php b/app/Console/Kernel.php index 9462c10f..bf1496d2 100755 --- a/app/Console/Kernel.php +++ b/app/Console/Kernel.php @@ -26,7 +26,9 @@ class Kernel extends ConsoleKernel */ protected function schedule(Schedule $schedule) { - // $schedule->command('inspire')->hourly(); + $schedule->command('otp:clean') + ->daily() + ->sentryMonitor('invalidate-otps'); } /** From 49f5d2a46cb751471ba3da835a0ad9c5436479ff Mon Sep 17 00:00:00 2001 From: fokosun Date: Mon, 21 Aug 2023 13:29:51 -0400 Subject: [PATCH 02/17] Improving tiktok videos listing event log context --- app/Listeners/GetTikTokUserVideos.php | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/app/Listeners/GetTikTokUserVideos.php b/app/Listeners/GetTikTokUserVideos.php index f991ae0c..f2006eef 100644 --- a/app/Listeners/GetTikTokUserVideos.php +++ b/app/Listeners/GetTikTokUserVideos.php @@ -16,7 +16,7 @@ public function handle(object $event): void { $client = new Client(); $tikTokUser = $event->tikTokUserDto; - $context = []; + $claims = [ 'cover_image_url', 'id', @@ -29,6 +29,7 @@ public function handle(object $event): void 'embed_html', 'embed_link' ]; + $endpoint = 'https://open.tiktokapis.com/v2/video/list/?fields='; try { @@ -59,9 +60,15 @@ public function handle(object $event): void } else { $db->update($data); } - } catch(\Exception $exception) { - Log::debug('Error listing TikTok videos', ['e' => $exception]); + Log::debug( + 'Error listing TikTok Videos', + [ + 'errorMsg' => $exception->getMessage(), + 'claims' => $claims, + 'endpoint' => $endpoint + ] + ); } } } From 94e0501ef8bf740a397a774c4c0745a9979fdbbb Mon Sep 17 00:00:00 2001 From: fokosun Date: Mon, 21 Aug 2023 14:58:52 -0400 Subject: [PATCH 03/17] improve test coverage --- app/Http/Controllers/UserController.php | 2 +- tests/Feature/OtpTest.php | 113 ++++++++++++++++++++++++ tests/TestCase.php | 2 + 3 files changed, 116 insertions(+), 1 deletion(-) create mode 100644 tests/Feature/OtpTest.php diff --git a/app/Http/Controllers/UserController.php b/app/Http/Controllers/UserController.php index 20ff0a71..40f1b2b6 100755 --- a/app/Http/Controllers/UserController.php +++ b/app/Http/Controllers/UserController.php @@ -292,7 +292,7 @@ public function generateOtp(Request $request, Otp $otp) { $identifier = (string) $request->get('identifier'); - $token = $otp->generate( + $token = $otp->generate( $identifier, config('services.otp.digits'), config('services.otp.validity') diff --git a/tests/Feature/OtpTest.php b/tests/Feature/OtpTest.php new file mode 100644 index 00000000..87780fff --- /dev/null +++ b/tests/Feature/OtpTest.php @@ -0,0 +1,113 @@ +json('POST', '/api/v1/otp/generate', [ + 'identifier' => $faker->email + ])->assertStatus(Response::HTTP_OK); + + Mail::assertSent(OtpWasGenerated::class); + } + + /** + * @test + */ + public function it_can_generate_otp_fails() + { + $randStr = Str::random(10); + + $this + ->json('POST', '/api/v1/otp/generate', [ + 'identifier' => $randStr + ]) + ->assertExactJson([ + "message" => "There was an error processing this request. Please try again." + ]); + + Log::shouldReceive('debug') + ->with( + 'Error sending OTP email', + [ + 'identifier' => $randStr, + 'errorMsg' => 'zazu' + ] + ); + } + + /** + * @dataProvider OtpValidationDataProvider + * @test + */ + public function it_can_validate_a_token(?string $identifier, ?string $token, array $response) + { + $this + ->json('POST', '/api/v1/otp/validate', [ + 'identifier' => $identifier, + 'token' => $token + ]) + ->assertStatus(Response::HTTP_OK) + ->assertExactJson($response); + } + + public static function OtpValidationDataProvider(): array + { + $faker = Factory::create(); + + return [ + 'With null identifier and token' => [ + null, + null, + [ + 'status' => false, + 'message' => 'OTP does not exist' + ] + ], + 'With null token only' => [ + $faker->email, + null, + [ + 'status' => false, + 'message' => 'OTP does not exist' + ] + ], + 'With null identifier only' => [ + null, + (string)$faker->randomNumber(6), + [ + 'status' => false, + 'message' => 'OTP does not exist' + ] + ], + 'Identifier and token not matching db' => [ + $faker->email, + (string)$faker->randomNumber(6), + [ + 'status' => false, + 'message' => 'OTP does not exist' + ] + ], + ]; + } +} diff --git a/tests/TestCase.php b/tests/TestCase.php index dc77c3de..fc616d16 100755 --- a/tests/TestCase.php +++ b/tests/TestCase.php @@ -3,10 +3,12 @@ use Illuminate\Foundation\Testing\RefreshDatabase; use Illuminate\Contracts\Console\Kernel; use Illuminate\Foundation\Testing\TestCase as BaseTestCase; +use Illuminate\Foundation\Testing\WithFaker; abstract class TestCase extends BaseTestCase { use RefreshDatabase; + use WithFaker; public function createApplication() { From 36b7dccca3f47e68552c41997327776758202d57 Mon Sep 17 00:00:00 2001 From: fokosun Date: Mon, 21 Aug 2023 15:12:46 -0400 Subject: [PATCH 04/17] improve test coverage --- tests/Feature/OtpTest.php | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/tests/Feature/OtpTest.php b/tests/Feature/OtpTest.php index 87780fff..56b59ee8 100644 --- a/tests/Feature/OtpTest.php +++ b/tests/Feature/OtpTest.php @@ -38,22 +38,23 @@ public function it_can_generate_otp_fails() { $randStr = Str::random(10); - $this - ->json('POST', '/api/v1/otp/generate', [ - 'identifier' => $randStr - ]) - ->assertExactJson([ - "message" => "There was an error processing this request. Please try again." - ]); - Log::shouldReceive('debug') + ->once() ->with( 'Error sending OTP email', [ 'identifier' => $randStr, - 'errorMsg' => 'zazu' + 'errorMsg' => 'Email "' . $randStr . '" does not comply with addr-spec of RFC 2822.' ] ); + + $this->withoutExceptionHandling() + ->json('POST', '/api/v1/otp/generate', [ + 'identifier' => $randStr + ]) + ->assertExactJson([ + "message" => "There was an error processing this request. Please try again." + ]); } /** From b79de2e74a9ef14a72c64aae5950510cd0960ac8 Mon Sep 17 00:00:00 2001 From: fokosun Date: Mon, 21 Aug 2023 18:38:17 -0400 Subject: [PATCH 05/17] bump up coverage --- app/Adapters/Search/AlgoliaAdapter.php | 19 -- .../Search/FulltextSearchAdapterInterface.php | 10 - app/Adapters/Search/MySqlAdapter.php | 145 ----------- app/Exceptions/Handler.php | 8 +- .../UnauthorizedClientException.php | 21 -- .../UnprocessibleEntityException.php | 0 app/Http/Controllers/AuthController.php | 24 +- app/Http/Controllers/CommentController.php | 39 +-- app/Models/Comment.php | 3 + app/Models/User.php | 5 + app/Services/AuthService.php | 14 +- database/factories/CommentFactory.php | 27 ++ database/factories/RecipeFactory.php | 15 +- database/factories/UserFactory.php | 8 +- tests/Feature/AuthTest.php | 117 +++++++++ tests/Feature/CommentTest.php | 246 ++++++++++++++++++ tests/Feature/OtpTest.php | 4 +- tests/Feature/RecipeTest.php | 10 +- 18 files changed, 474 insertions(+), 241 deletions(-) delete mode 100755 app/Adapters/Search/AlgoliaAdapter.php delete mode 100755 app/Adapters/Search/FulltextSearchAdapterInterface.php delete mode 100755 app/Adapters/Search/MySqlAdapter.php delete mode 100755 app/Exceptions/UnauthorizedClientException.php mode change 100755 => 100644 app/Exceptions/UnprocessibleEntityException.php create mode 100644 database/factories/CommentFactory.php create mode 100644 tests/Feature/CommentTest.php diff --git a/app/Adapters/Search/AlgoliaAdapter.php b/app/Adapters/Search/AlgoliaAdapter.php deleted file mode 100755 index 7ea2be0d..00000000 --- a/app/Adapters/Search/AlgoliaAdapter.php +++ /dev/null @@ -1,19 +0,0 @@ -userService = new UserService(); - } - - /** - * @param string $q - * @return \Illuminate\Support\Collection - * @throws \App\Exceptions\CookbookModelNotFoundException - */ - public function fetch(string $q): \Illuminate\Support\Collection - { - $by_cookbook = 'cookbooks by'; - $by_recipe = 'recipes by'; - - if (str_contains($q, $by_cookbook)) { - $q = trim(str_replace($by_cookbook, '', $q)); - - return $this->fetchCookbooks($q); - } - - if (str_contains($q, $by_recipe)) { - $q = trim(str_replace($by_recipe, '', $q)); - - return $this->fetchRecipes($q); - } - - return $this->fetchCookbooks($q)->merge($this->fetchRecipes($q)); - } - - /** - * @param $q - * @return \Illuminate\Support\Collection - * @throws \App\Exceptions\CookbookModelNotFoundException - */ - private function fetchCookbooks($q): \Illuminate\Support\Collection - { - $author = $this->userService->findWhere($q)->first(); - - $query = DB::table('cookbooks') - ->select([ - 'cookbooks.id AS cookbook_id', - 'cookbooks.name AS cookbook_name', - 'cookbooks.slug AS cookbook_slug', - 'cookbooks.bookCoverImg', - 'cookbooks.resource_type', - 'cookbooks.is_locked', - 'cookbooks.description', - 'cookbooks.created_at', - 'users.name AS author_name', - 'users.name_slug AS username', - 'users.id AS author_id', - ]) - ->leftJoin('users', 'users.id', '=', 'cookbooks.user_id') - ->whereFullText('cookbooks.name', $q) - ->orWhereFullText('cookbooks.description', $q) - ->orWhereFullText('cookbooks.slug', $q); - - if (!is_null($author)) { - return $query->orWhere('cookbooks.user_id', '=', $author->getKey())->get(); - } - - return $query->get(); - } - - /** - * @param $q - * @return \Illuminate\Support\Collection - * @throws \App\Exceptions\CookbookModelNotFoundException - */ - private function fetchRecipes($q): \Illuminate\Support\Collection - { - $author = $this->userService->findWhere($q)->first(); - - $query = DB::table('recipes') - ->select([ - 'recipes.id as recipe_id', - 'recipes.name AS recipe_name', - 'recipes.slug AS recipe_slug', - 'recipes.description', - 'recipes.summary', - 'recipes.ingredients', - 'recipes.resource_type', - 'recipes.nutritional_detail', - 'recipes.imgUrl', - 'recipes.cookbook_id AS cookbook_id', - 'recipes.created_at', - 'users.name AS author_name', - 'users.name_slug AS username', - 'users.id AS author_id', - ]) - ->leftJoin('users', 'users.id', '=', 'recipes.user_id') - ->whereFullText('recipes.name', $q) - ->orWhereFullText('recipes.description', $q) - ->orWhereFullText('recipes.ingredients', $q) - ->orWhereFullText('recipes.nutritional_detail', $q); - - if (!is_null($author)) { - return $query->orWhere('recipes.user_id', '=', $author->getKey())->get(); - } - - return $query->get(); - } - - /** - * Get the user meta data and write to a csv file for ML purposes - * - * @param Request $request - */ - public function writeToCsv(Request $request) - { - $csv = $request->only([ - 'city', - 'country', - 'ip', - 'keyword', - 'loc', - 'timezone', - ]); - - $csv['server_time'] = \Carbon\Carbon::now()->toDateTimeString(); - - $file_open = fopen('keywords.csv', 'a+'); - - fputcsv($file_open, $csv); - } -} diff --git a/app/Exceptions/Handler.php b/app/Exceptions/Handler.php index ab59a4ef..2d261233 100755 --- a/app/Exceptions/Handler.php +++ b/app/Exceptions/Handler.php @@ -9,6 +9,8 @@ use Illuminate\Validation\UnauthorizedException; use Illuminate\Validation\ValidationException; use Throwable; +use Tymon\JWTAuth\Exceptions\JWTException; +use Tymon\JWTAuth\Exceptions\TokenInvalidException; class Handler extends ExceptionHandler { @@ -46,7 +48,7 @@ public function render($request, Throwable $throwable) ], Response::HTTP_UNAUTHORIZED); } - if ($throwable instanceof \Tymon\JWTAuth\Exceptions\JWTException) { + if ($throwable instanceof JWTException || $throwable instanceof TokenInvalidException) { return response()->json([ 'error' => $throwable->getMessage() ], Response::HTTP_UNAUTHORIZED); @@ -62,6 +64,10 @@ public function render($request, Throwable $throwable) return response()->json(['error' => $throwable->getMessage()]); } + if ($throwable instanceof ApiException) { + return response()->json(['error' => $throwable->getMessage()], Response::HTTP_UNAUTHORIZED); + } + return parent::render($request, $throwable); } } diff --git a/app/Exceptions/UnauthorizedClientException.php b/app/Exceptions/UnauthorizedClientException.php deleted file mode 100755 index 371d1c49..00000000 --- a/app/Exceptions/UnauthorizedClientException.php +++ /dev/null @@ -1,21 +0,0 @@ -json([ - 'error' => 'Unauthorized', - ], Response::HTTP_UNAUTHORIZED); - } -} diff --git a/app/Exceptions/UnprocessibleEntityException.php b/app/Exceptions/UnprocessibleEntityException.php old mode 100755 new mode 100644 diff --git a/app/Http/Controllers/AuthController.php b/app/Http/Controllers/AuthController.php index f8ca3473..a39f1395 100755 --- a/app/Http/Controllers/AuthController.php +++ b/app/Http/Controllers/AuthController.php @@ -60,19 +60,19 @@ public function logout() */ public function loginViaMagicLink(Request $request, LocationService $locationService) { - try { - $location = $locationService->getLocation($request); - $userEmailFromRequest = $request->get("email"); - - if (!$location && !$userEmailFromRequest) { - return response()->json([ - 'action_required' => true, - 'required' => [ - 'email' => 'Looks like this is your first time signing in with magiclink! Kindly provide your registered email for verification.', - ] - ], Response::HTTP_UNPROCESSABLE_ENTITY); - } + $location = $locationService->getLocation($request); + $userEmailFromRequest = $request->get("email"); + if (!$location && !$userEmailFromRequest) { + return response()->json([ + 'action_required' => true, + 'required' => [ + 'email' => 'Looks like this is your first time signing in with magiclink! Kindly provide your registered email for verification.', + ] + ], Response::HTTP_UNPROCESSABLE_ENTITY); + } + + try { if (!$location && $userEmailFromRequest) { $location = LocationService::getLocationByUserEmail($userEmailFromRequest); diff --git a/app/Http/Controllers/CommentController.php b/app/Http/Controllers/CommentController.php index 6808bc2e..25312291 100755 --- a/app/Http/Controllers/CommentController.php +++ b/app/Http/Controllers/CommentController.php @@ -6,14 +6,16 @@ use App\Exceptions\ApiException; use App\Models\Comment; +use App\Models\Recipe; use Illuminate\Http\Request; use Illuminate\Support\Arr; use Illuminate\Support\Facades\Log; use Tymon\JWTAuth\Facades\JWTAuth; +use Tymon\JWTAuth\JWT; class CommentController extends Controller { - public function addComment(Request $request) + public function addComment(Request $request, JWT $jwtAuth) { /** @phpstan-ignore-next-line */ if ($user = JWTAuth::parseToken()->user()) { @@ -26,7 +28,7 @@ public function addComment(Request $request) try { $comment = new Comment([ 'user_id' => $user->getKey(), - 'recipe_id' => Arr::get($payload, 'resource-id'), + 'recipe_id' => Recipe::findOrFail(Arr::get($payload, 'resource-id')), 'comment' => Arr::get($payload, 'comment') ]); @@ -34,11 +36,11 @@ public function addComment(Request $request) } catch (\Exception $exception) { Log::debug( 'comment creation failed.', - ['error' => $exception, 'payload' => $payload] + ['error' => $exception->getMessage(), 'payload' => $payload] ); return response()->json([ - 'error', 'There was an error processing this request. Please try again later.' + 'error' => 'There was an error processing this request. Please try again later.' ], 400); } } @@ -50,22 +52,25 @@ public function addComment(Request $request) public function destroyComment(Request $request) { /** @phpstan-ignore-next-line */ - if (JWTAuth::parseToken()->user()) { - + if ($user = JWTAuth::parseToken()->user()) { $payload = $request->only(['comment-id']); + $comment = Comment::findOrFail($request->only(['comment-id']))->first(); - try { - $comment = Comment::findOrFail($request->only(['comment-id']))->first(); - return response()->json(['deleted' => $comment->delete()]); - } catch (\Exception $exception) { - Log::debug( - 'comment deletion failed.', - ['error' => $exception, 'payload' => $payload] - ); + if ($user->isSuper() || $user->ownsComment($payload['comment-id'])) { + try { + return response()->json(['deleted' => $comment->delete()]); + } catch (\Exception $exception) { + Log::debug( + 'comment deletion failed.', + ['error' => $exception, 'payload' => $payload] + ); - return response()->json([ - 'error' => 'There was an error processing this request. Please try again later.' - ], 400); + return response()->json([ + 'error' => 'There was an error processing this request. Please try again later.' + ], 400); + } + } else { + throw new ApiException('You are not suthorized to perfrom this action.'); } } diff --git a/app/Models/Comment.php b/app/Models/Comment.php index 22946959..20675e35 100755 --- a/app/Models/Comment.php +++ b/app/Models/Comment.php @@ -5,10 +5,13 @@ namespace App\Models; use Carbon\Carbon; +use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Database\Eloquent\Model; class Comment extends Model { + use HasFactory; + /** * @var array */ diff --git a/app/Models/User.php b/app/Models/User.php index 37638d95..47e437e9 100755 --- a/app/Models/User.php +++ b/app/Models/User.php @@ -308,4 +308,9 @@ public function getTiktokVideosAttribute(): Collection return collect(json_decode($tikTokUser->videos, true)); } + + public function ownsComment(int $commentId) + { + return Comment::findOrFail($commentId)->user_id == $this->getKey(); + } } diff --git a/app/Services/AuthService.php b/app/Services/AuthService.php index 581fde27..0607de90 100755 --- a/app/Services/AuthService.php +++ b/app/Services/AuthService.php @@ -7,6 +7,7 @@ use Illuminate\Http\Request; use Illuminate\Http\Response; use Illuminate\Support\Facades\Auth; +use Illuminate\Support\Facades\Log; class AuthService { @@ -29,16 +30,19 @@ public function login(Request $request): \Illuminate\Http\JsonResponse return response()->json(['token' => $token], Response::HTTP_OK); } - /** - * @return \Illuminate\Http\JsonResponse|Response - */ - public function logout() + public function logout(): \Illuminate\Http\JsonResponse|Response { try { Auth::logout(); - return response()->noContent(); } catch (\Exception $exception) { + Log::info( + 'Not found or Invalid Credentials.', + [ + 'errorMsg' => $exception->getMessage() + ] + ); + return response()->json( [ 'Not found or Invalid Credentials.' diff --git a/database/factories/CommentFactory.php b/database/factories/CommentFactory.php new file mode 100644 index 00000000..f8a36c91 --- /dev/null +++ b/database/factories/CommentFactory.php @@ -0,0 +1,27 @@ + + */ +class CommentFactory extends Factory +{ + /** + * Define the model's default state. + * + * @return array + */ + public function definition(): array + { + return [ + 'user_id' => 1, + 'recipe_id' => 1, + 'comment' => fake()->sentence + ]; + } +} diff --git a/database/factories/RecipeFactory.php b/database/factories/RecipeFactory.php index 0d726eff..e31dc5f5 100755 --- a/database/factories/RecipeFactory.php +++ b/database/factories/RecipeFactory.php @@ -7,7 +7,9 @@ use App\Models\Cookbook; use App\Models\Recipe; use App\Models\User; +use Carbon\Carbon; use Illuminate\Database\Eloquent\Factories\Factory; +use Illuminate\Support\Str; class RecipeFactory extends Factory { @@ -22,8 +24,9 @@ class RecipeFactory extends Factory public function definition() { return [ - 'name' => fake()->streetName, - 'ingredients' => [fake()->name, fake()->name, fake()->name], + 'name' => $name = fake()->streetName, + 'slug' => Str::slug($name), + 'ingredients' => json_encode([]), 'description' => fake()->sentence(300), 'imgUrl' => fake()->imageUrl, 'user_id' => User::factory()->make()->id, @@ -31,7 +34,13 @@ public function definition() 'summary' => fake()->sentence(180), 'nutritional_detail' => 'low carbs', 'calorie_count' => 1300, - 'nationality' => 1 + 'nationality' => 1, + 'cuisine' => '', + 'course' => '', + 'claps' => 0, + 'tags' => json_encode([]), + 'prep_time' => Carbon::now(), + 'cook_time' => Carbon::now() ]; } } diff --git a/database/factories/UserFactory.php b/database/factories/UserFactory.php index 4a113dd0..067127a1 100755 --- a/database/factories/UserFactory.php +++ b/database/factories/UserFactory.php @@ -18,15 +18,15 @@ class UserFactory extends Factory * @return array * @throws \Illuminate\Contracts\Container\BindingResolutionException */ - public function definition() + public function definition($attributes = []) { return [ - 'name' => fake()->name, - 'email' => fake()->email, + 'name' => $name = fake()->name, + 'email' => fake()->unique()->safeEmail(), 'password' => (new BcryptHasher)->make('saltyL@k3'), 'following' => rand(1, 100), 'followers' => rand(1, 100), - 'name_slug' => str_replace(" ", "-", strtolower(fake()->name)), + 'name_slug' => str_replace(" ", "-", strtolower($name)), ]; } } diff --git a/tests/Feature/AuthTest.php b/tests/Feature/AuthTest.php index 9c0db23a..b2d73ca2 100755 --- a/tests/Feature/AuthTest.php +++ b/tests/Feature/AuthTest.php @@ -7,6 +7,7 @@ use App\Models\User; use Carbon\Carbon; use Illuminate\Http\Response; +use Illuminate\Support\Facades\Log; /** * Class UserTest @@ -202,4 +203,120 @@ public function it_can_successfully_authenticate_an_existing_user_and_responds_w $this->assertArrayHasKey("token", $decoded); $this->assertNotEmpty($decoded["token"]); } + + /** + * @test + */ + public function it_can_logout_an_existing_user() + { + $email = 'sally@example.com'; + $password = 'saltyL@k3'; + + $this->json( + 'POST', '/api/v1/auth/register', [ + 'name' => 'Sally Lee', + 'email' => $email, + 'password' => $password, + ] + ); + + $respose = $this->json( + 'POST', '/api/v1/auth/login', [ + 'email' => $email, + 'password' => $password, + ] + ); + + $decoded = json_decode($respose->getContent(), true); + + $this->json( + 'GET', '/api/v1/auth/logout', [], [ + 'headers' => [ + 'Authorization' => 'Bearer ' . $decoded['token'] + ] + ] + )->assertNoContent(); + } + + /** + * @test + */ + public function logout_responds_with_an_error_if_token_is_invalid() + { + Log::shouldReceive('info') + ->once() + ->with( + 'Not found or Invalid Credentials.', + [ + 'errorMsg' => 'Token could not be parsed from the request.' + ] + ); + + $this->withoutExceptionHandling() + ->json( + 'GET', '/api/v1/auth/logout', [], [ + 'headers' => [ + 'Authorization' => 'Bearer invalid-token' + ] + ] + ) + ->assertStatus(Response::HTTP_BAD_REQUEST) + ->assertExactJson([ + 'Not found or Invalid Credentials.' + ]); + } + + /** + * @test + */ + public function it_can_validate_access_token_success() + { + $email = 'sally@example.com'; + $password = 'saltyL@k3'; + + $this->json( + 'POST', '/api/v1/auth/register', [ + 'name' => 'Sally Lee', + 'email' => $email, + 'password' => $password, + ] + ); + + $respose = $this->json( + 'POST', '/api/v1/auth/login', [ + 'email' => $email, + 'password' => $password, + ] + ); + + $decoded = json_decode($respose->getContent(), true); + + $this + ->json( + 'POST', '/api/v1/auth/validate', [], [ + 'Authorization' => 'Bearer ' . $decoded['token'] + ] + ) + ->assertStatus(Response::HTTP_OK) + ->assertExactJson([ + 'validated' => true + ]); + } + + /** + * @test + */ + public function it_can_validate_access_token_fails() + { + $this + ->json( + 'POST', '/api/v1/auth/validate', [], [ + 'Authorization' => 'Bearer invalid-token' + ] + ) + ->assertStatus(Response::HTTP_UNAUTHORIZED) + ->assertExactJson([ + 'error' => 'Expired or Tnvalid token.' + ]); + } } diff --git a/tests/Feature/CommentTest.php b/tests/Feature/CommentTest.php new file mode 100644 index 00000000..18af6598 --- /dev/null +++ b/tests/Feature/CommentTest.php @@ -0,0 +1,246 @@ +make([ + 'email' => 'test@123.com', + 'password' => (new BcryptHasher)->make('pass123'), + ]); + $user->save(); + + $this->user = $user->refresh(); + } + + /** + * @test + */ + public function it_can_add_a_comment_if_valid_access_token(): void + { + $faker = Factory::create(); + + $token = Auth::attempt([ + 'email' => $this->user->email, + 'password' => 'pass123' + ]); + + $cookbook = Cookbook::factory()->make([ + 'user_id' => $this->user->getKey() + ]); + + $cookbook->save(); + + $recipe = Recipe::factory()->make([ + 'cookbook_id' => $cookbook->refresh()->getKey(), + 'user_id' => $this->user->getKey() + ]); + + $recipe->save(); + + $this->json( + 'POST', + '/api/v1/comments', + [ + 'resource-type' => 'recipe', + 'resource-id' => $recipe->refresh()->getKey(), + 'comment' => $faker->sentence + ], + [ + 'Authorization' => 'Bearer ' . $token + ] + ) + ->assertStatus(Response::HTTP_OK) + ->assertExactJson([ + 'created' => true + ]); + } + + /** + * @test + */ + public function it_responds_with_an_error_if_token_is_malformed_or_invalid() + { + $this->json( + 'POST', + '/api/v1/comments', + [ + 'resource-type' => 'recipe', + 'resource-id' => 1, + 'comment' => 'fake sentence' + ], + [ + 'Authorization' => 'Bearer malformed-or-invalid-token' + ] + )->assertStatus(Response::HTTP_UNAUTHORIZED); + } + + /** + * @test + */ + public function it_handles_error_when_saving_comment() + { + $faker = Factory::create(); + $payload = [ + 'resource-type' => 'recipe', + 'resource-id' => 'invalid', + 'comment' => $faker->sentence + ]; + + $token = Auth::attempt([ + 'email' => $this->user->email, + 'password' => 'pass123' + ]); + + Log::shouldReceive('debug') + ->once() + ->with( + 'comment creation failed.', + [ + 'error' => 'No query results for model [App\Models\Recipe] invalid', + 'payload' => $payload + ] + ); + + $this->withoutExceptionHandling()->json( + 'POST', + '/api/v1/comments', + $payload, + [ + 'Authorization' => 'Bearer ' . $token + ] + ) + ->assertStatus(Response::HTTP_BAD_REQUEST) + ->assertExactJson([ + 'error' => 'There was an error processing this request. Please try again later.' + ]); + } + + /** + * @test + */ + public function it_can_destroy_user_owned_comment() + { + $token = Auth::attempt([ + 'email' => $this->user->email, + 'password' => 'pass123' + ]); + + $cookbook = Cookbook::factory()->make([ + 'user_id' => $this->user->getKey() + ]); + + $cookbook->save(); + + $recipe = Recipe::factory()->make([ + 'cookbook_id' => $cookbook->refresh()->getKey(), + 'user_id' => $this->user->getKey() + ]); + + $recipe->save(); + + $comment = Comment::factory()->make([ + 'user_id' => $this->user->getKey(), + 'recipe_id' => $recipe->refresh()->getKey() + ]); + + $comment->save(); + + $this->json( + 'POST', + '/api/v1/comments/destroy', + [ + 'comment-id' => $comment->refresh()->getKey() + ], + [ + 'Authorization' => 'Bearer ' . $token + ] + ) + ->assertStatus(Response::HTTP_OK) + ->assertExactJson([ + 'deleted' => true + ]); + } + + /** + * @test + */ + public function it_cannot_destroy_user_not_owned_comment() + { + $theOtherUser = User::factory()->make(); + $theOtherUser->save(); + + $token = Auth::attempt([ + 'email' => $this->user->email, + 'password' => 'pass123' + ]); + + $cookbook = Cookbook::factory()->make([ + 'user_id' => $this->user->getKey() + ]); + + $cookbook->save(); + + $recipe = Recipe::factory()->make([ + 'cookbook_id' => $cookbook->refresh()->getKey(), + 'user_id' => $this->user->getKey() + ]); + + $recipe->save(); + + $comment = Comment::factory()->make([ + 'user_id' => $theOtherUser->refresh()->getKey(), + 'recipe_id' => $recipe->refresh()->getKey() + ]); + + $comment->save(); + + $this->json( + 'POST', + '/api/v1/comments/destroy', + [ + 'comment-id' => $comment->refresh()->getKey() + ], + [ + 'Authorization' => 'Bearer ' . $token + ] + )->assertExactJson([ + 'error' => 'You are not suthorized to perfrom this action.' + ])->assertStatus(Response::HTTP_UNAUTHORIZED); + } + + /** + * @test + */ + public function it_cannot_destroy_comment_if_access_token_is_malformed_or_invalid() + { + $this->json( + 'POST', + '/api/v1/comments/destroy', + [ + 'comment-id' => 1 + ], + [ + 'Authorization' => 'Bearer malformed-or-invalid-token' + ] + )->assertStatus(Response::HTTP_UNAUTHORIZED); + } +} diff --git a/tests/Feature/OtpTest.php b/tests/Feature/OtpTest.php index 56b59ee8..38794a8f 100644 --- a/tests/Feature/OtpTest.php +++ b/tests/Feature/OtpTest.php @@ -49,9 +49,7 @@ public function it_can_generate_otp_fails() ); $this->withoutExceptionHandling() - ->json('POST', '/api/v1/otp/generate', [ - 'identifier' => $randStr - ]) + ->json('POST', '/api/v1/otp/generate', ['identifier' => $randStr]) ->assertExactJson([ "message" => "There was an error processing this request. Please try again." ]); diff --git a/tests/Feature/RecipeTest.php b/tests/Feature/RecipeTest.php index 292ccabd..0c78c022 100755 --- a/tests/Feature/RecipeTest.php +++ b/tests/Feature/RecipeTest.php @@ -13,6 +13,7 @@ class RecipeTest extends \TestCase { /** * @test + * todo: service->validatePayload */ public function it_can_retrieve_all_recipes_and_respond_with_a_200_status_code() { @@ -76,9 +77,16 @@ public function it_responds_with_a_200_when_retrieving_a_recipe_by_slug() "user_id" => $user->id, "cookbook_id" => $cookbook->id ]); + $recipe->save(); - $this->json('GET', '/api/v1/recipes/' . $recipe->slug) + $this->json('GET', '/api/v1/recipes/' . $recipe->refresh()->slug) ->assertStatus(Response::HTTP_OK); + + $this->assertDatabaseHas('recipes', [ + "user_id" => $user->id, + "cookbook_id" => $cookbook->id + ] + ); } /** From 2b06c11341a4d1d67b8a9988071ade1aa2e16575 Mon Sep 17 00:00:00 2001 From: fokosun Date: Mon, 21 Aug 2023 19:15:19 -0400 Subject: [PATCH 06/17] more coverage --- app/Http/Controllers/RecipeController.php | 6 -- app/Services/RecipeService.php | 2 +- routes/api.php | 2 +- tests/Feature/RecipeTest.php | 97 +++++++++++++++++++++++ 4 files changed, 99 insertions(+), 8 deletions(-) diff --git a/app/Http/Controllers/RecipeController.php b/app/Http/Controllers/RecipeController.php index 03df8bb7..21ea34a6 100755 --- a/app/Http/Controllers/RecipeController.php +++ b/app/Http/Controllers/RecipeController.php @@ -72,12 +72,6 @@ public function addClap(Request $request) return $this->service->addClap($request->get('recipe_id')); } - /** - * @param Request $request - * @param JWT $jwtAuth - * @return \Illuminate\Http\JsonResponse - * @throws \Tymon\JWTAuth\Exceptions\JWTException - */ public function myRecipes(Request $request, JWT $jwtAuth): \Illuminate\Http\JsonResponse { if ($jwtAuth->parseToken()->check()) { diff --git a/app/Services/RecipeService.php b/app/Services/RecipeService.php index 99ee4d71..e34a8774 100755 --- a/app/Services/RecipeService.php +++ b/app/Services/RecipeService.php @@ -219,7 +219,7 @@ public function addClap($recipeId) return response( [ 'updated' => true, - 'claps' => $recipe->claps, + 'claps' => $recipe->refresh()->claps, ], Response::HTTP_OK ); } diff --git a/routes/api.php b/routes/api.php index 6469ef54..5b597e6f 100755 --- a/routes/api.php +++ b/routes/api.php @@ -122,7 +122,7 @@ Route::get('/categories', 'CategoryController@index'); - Route::post('/add-clap', 'RecipeController@addClap'); + Route::post('/add-clap', [RecipeController::class, 'addClap']); Route::post('/comments', [CommentController::class, 'addComment']); diff --git a/tests/Feature/RecipeTest.php b/tests/Feature/RecipeTest.php index 0c78c022..9c831d09 100755 --- a/tests/Feature/RecipeTest.php +++ b/tests/Feature/RecipeTest.php @@ -8,6 +8,7 @@ use App\Models\Recipe; use App\Models\User; use Illuminate\Http\Response; +use Illuminate\Support\Facades\Auth; class RecipeTest extends \TestCase { @@ -103,4 +104,100 @@ public function it_rejects_the_request_without_access_token() $this->assertArrayHasKey('error', $decoded); $this->assertSame("Your session has expired. Please login and try again.", $decoded["error"]); } + + /** + * @test + */ + public function it_can_increment_recipe_claps() + { + $user = User::factory()->make(); + + $user->save(); + + $cookbook = Cookbook::factory()->make([ + 'user_id' => $user->getKey() + ]); + + $cookbook->save(); + + $recipe = Recipe::factory()->make([ + 'cookbook_id' => $cookbook->refresh()->getKey(), + 'user_id' => $user->getKey() + ]); + + $recipe->save(); + + $this->assertTrue($recipe->refresh()->claps == 0); + + $this->json( + 'POST', + '/api/v1/add-clap', + [ + 'recipe_id' => $recipe->refresh()->getKey() + ] + )->assertStatus(200) + ->assertExactJson([ + 'updated' => true, + 'claps' => 1 + ]); + + $this->assertTrue($recipe->refresh()->claps == 1); + } + + /** + * @test + */ + public function it_cannot_clap_for_a_recipe_that_does_not_exist() + { + $this->json( + 'POST', + '/api/v1/add-clap', + [ + 'recipe_id' => rand(1,10) + ] + )->assertStatus(422) + ->assertExactJson([ + 'recipe_id' => [ + "The selected recipe id is invalid." + ] + ]); + } + + public function it_can_show_my_recipes() + { + $user = User::factory()->make([ + 'email' => 'evan.reid@123.com', + 'password' => 'pass123' + ]); + $user->save(); + + $token = Auth::attempt([ + 'email' => 'evan.reid@123.com', + 'password' => 'pass123' + ]); + + $cookbook = Cookbook::factory()->make([ + 'user_id' => $user->getKey() + ]); + + $cookbook->save(); + + $recipes = Recipe::factory()->count(3)->make([ + 'cookbook_id' => $cookbook->refresh()->getKey(), + 'user_id' => $user->getKey() + ]); + + $recipes->map(function ($recipe) { + $recipe->save(); + }); + + $this->json( + 'GET', + '/api/v1/my/recipes', + [], + [ + 'Authorization' => 'Bearer ' . $token + ] + )->assertStatus(200); + } } From 656b22c6fda6f14bdd3625d4d9d2c152d1b12952 Mon Sep 17 00:00:00 2001 From: fokosun Date: Mon, 21 Aug 2023 20:22:32 -0400 Subject: [PATCH 07/17] chore: improving test coverage --- app/Http/Controllers/RecipeController.php | 29 ++++- app/Models/Recipe.php | 1 + ...add_is_reported_field_to_recipes_table.php | 28 ++++ tests/Feature/RecipeTest.php | 123 +++++++++++++++++- 4 files changed, 171 insertions(+), 10 deletions(-) create mode 100644 database/migrations/2023_08_21_234409_add_is_reported_field_to_recipes_table.php diff --git a/app/Http/Controllers/RecipeController.php b/app/Http/Controllers/RecipeController.php index 21ea34a6..52d1413c 100755 --- a/app/Http/Controllers/RecipeController.php +++ b/app/Http/Controllers/RecipeController.php @@ -6,6 +6,7 @@ use App\Exceptions\CookbookModelNotFoundException; use App\Http\Requests\RecipeStoreRequest; +use App\Models\Recipe; use App\Services\RecipeService; use Illuminate\Contracts\Foundation\Application; use Illuminate\Contracts\Routing\ResponseFactory; @@ -13,6 +14,7 @@ use Illuminate\Http\Request; use Illuminate\Http\Response; use Illuminate\Support\Facades\Log; +use PHPOpenSourceSaver\JWTAuth\Facades\JWTAuth; use Tymon\JWTAuth\Exceptions\JWTException; use Tymon\JWTAuth\JWT; @@ -157,14 +159,27 @@ public function destroy(Request $request, $recipeId, JWT $jwtAuth) ], Response::HTTP_UNAUTHORIZED); } - public function report(Request $request, JWT $jwtAuth) + public function report(Request $request) { - if ($jwtAuth->parseToken()->check()) { - return response()->json(['message' => 'feedback submitted.']); - } + if (JWTAuth::parseToken()->user()) { + $recipe = Recipe::find($request->get('recipe_id')); - return response()->json([ - 'error' => 'You are not authorized to perform this action.' - ], Response::HTTP_UNAUTHORIZED); + if ($recipe instanceof Recipe) { + $recipe->update(['is_reported' => 1]); + return response()->json(['message' => 'feedback submitted.']); + } + + Log::debug( + 'Error reporting recipe', + [ + 'message' => 'Invalid recipe id', + 'recipe_id' => $request->get('recipe_id') + ] + ); + + return $this->errorResponse([ + 'message' => 'There was an error processing this request. Please try again later.' + ]); + } } } diff --git a/app/Models/Recipe.php b/app/Models/Recipe.php index da0a20f2..5b441e44 100755 --- a/app/Models/Recipe.php +++ b/app/Models/Recipe.php @@ -36,6 +36,7 @@ class Recipe extends Model 'course', 'cuisine', 'nationality', + 'is_reported' ]; protected $hidden = ['user_id']; diff --git a/database/migrations/2023_08_21_234409_add_is_reported_field_to_recipes_table.php b/database/migrations/2023_08_21_234409_add_is_reported_field_to_recipes_table.php new file mode 100644 index 00000000..0511ddb6 --- /dev/null +++ b/database/migrations/2023_08_21_234409_add_is_reported_field_to_recipes_table.php @@ -0,0 +1,28 @@ +boolean('is_reported')->default(0); + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::table('recipes', function (Blueprint $table) { + $table->dropColumn('is_reported'); + }); + } +}; diff --git a/tests/Feature/RecipeTest.php b/tests/Feature/RecipeTest.php index 9c831d09..fd54fd8f 100755 --- a/tests/Feature/RecipeTest.php +++ b/tests/Feature/RecipeTest.php @@ -7,14 +7,15 @@ use App\Models\Cookbook; use App\Models\Recipe; use App\Models\User; +use Illuminate\Hashing\BcryptHasher; use Illuminate\Http\Response; use Illuminate\Support\Facades\Auth; +use Illuminate\Support\Facades\Log; class RecipeTest extends \TestCase { /** * @test - * todo: service->validatePayload */ public function it_can_retrieve_all_recipes_and_respond_with_a_200_status_code() { @@ -163,11 +164,14 @@ public function it_cannot_clap_for_a_recipe_that_does_not_exist() ]); } + /** + * @test + */ public function it_can_show_my_recipes() { $user = User::factory()->make([ 'email' => 'evan.reid@123.com', - 'password' => 'pass123' + 'password' => (new BcryptHasher)->make('pass123'), ]); $user->save(); @@ -191,7 +195,7 @@ public function it_can_show_my_recipes() $recipe->save(); }); - $this->json( + $response = $this->json( 'GET', '/api/v1/my/recipes', [], @@ -199,5 +203,118 @@ public function it_can_show_my_recipes() 'Authorization' => 'Bearer ' . $token ] )->assertStatus(200); + + $decoded = json_decode($response->getContent(), true); + + $this->assertCount(3, $decoded['data']); + } + + /** + * @test + */ + public function it_can_report_a_recipe() + { + $user = User::factory()->make([ + 'email' => 'evan.reid@123.com', + 'password' => (new BcryptHasher)->make('pass123'), + ]); + $user->save(); + + $token = Auth::attempt([ + 'email' => 'evan.reid@123.com', + 'password' => 'pass123' + ]); + + $cookbook = Cookbook::factory()->make([ + 'user_id' => $user->getKey() + ]); + + $cookbook->save(); + + $recipe = Recipe::factory()->make([ + 'cookbook_id' => $cookbook->refresh()->getKey(), + 'user_id' => $user->getKey() + ]); + + $recipe->save(); + + $this->assertFalse((bool) $recipe->refresh()->is_reported); + + $this->json( + 'POST', + '/api/v1/report-recipe', + [ + 'recipe_id' => $recipe->refresh()->getKey() + ], + [ + 'Authorization' => 'Bearer ' . $token + ] + )->assertStatus(200) + ->assertExactJson([ + 'message' => 'feedback submitted.' + ]); + + $this->assertTrue((bool) $recipe->refresh()->is_reported); + } + + /** + * @test + */ + public function it_can_handle_error_reporting_recipe() + { + $user = User::factory()->make([ + 'email' => 'evan.reid@123.com', + 'password' => (new BcryptHasher)->make('pass123'), + ]); + $user->save(); + + $token = Auth::attempt([ + 'email' => 'evan.reid@123.com', + 'password' => 'pass123' + ]); + + Log::shouldReceive('debug') + ->once() + ->with( + 'Error reporting recipe', + [ + 'message' => 'Invalid recipe id', + 'recipe_id' => 1 + ] + ); + + $this->withoutExceptionHandling()->json( + 'POST', + '/api/v1/report-recipe', + [ + 'recipe_id' => 1 + ], + [ + 'Authorization' => 'Bearer ' . $token + ] + )->assertStatus(400) + ->assertExactJson([ + 'message' => 'There was an error processing this request. Please try again later.' + ]); + } + + /** + * @test + */ + public function it_allows_only_authorized_user_to_report_a_recipe() + { + $this->json( + 'POST', + '/api/v1/report-recipe', + [ + 'recipe_id' => 1 + ], + [ + 'Authorization' => 'Bearer invalid-token' + ] + )->assertStatus(401) + ->assertExactJson([ + 'error' => 'Your session has expired. Please login and try again.' + ]); } } From 789fd2e6b0a7e69d6206b118b136f93f2133d640 Mon Sep 17 00:00:00 2001 From: fokosun Date: Mon, 21 Aug 2023 20:29:50 -0400 Subject: [PATCH 08/17] fix static analysis errors --- app/Exceptions/Handler.php | 2 +- app/Http/Controllers/RecipeController.php | 6 +++--- app/Providers/AppServiceProvider.php | 4 +--- 3 files changed, 5 insertions(+), 7 deletions(-) diff --git a/app/Exceptions/Handler.php b/app/Exceptions/Handler.php index 2d261233..2a2ea85c 100755 --- a/app/Exceptions/Handler.php +++ b/app/Exceptions/Handler.php @@ -48,7 +48,7 @@ public function render($request, Throwable $throwable) ], Response::HTTP_UNAUTHORIZED); } - if ($throwable instanceof JWTException || $throwable instanceof TokenInvalidException) { + if ($throwable instanceof JWTException) { return response()->json([ 'error' => $throwable->getMessage() ], Response::HTTP_UNAUTHORIZED); diff --git a/app/Http/Controllers/RecipeController.php b/app/Http/Controllers/RecipeController.php index 52d1413c..27b768de 100755 --- a/app/Http/Controllers/RecipeController.php +++ b/app/Http/Controllers/RecipeController.php @@ -96,7 +96,7 @@ public function store(RecipeStoreRequest $request, JWT $jwtAuth) $jwtAuth->parseToken()->check(); return $this->service->store($request); } catch (\Exception $exception) { - Log::debug('An error occured while creating a recipe', [ + Log::debug('An error occured while creating this recipe', [ 'resource' => self::RECIPE_RESOURCE, 'exception' => $exception ]); @@ -159,9 +159,9 @@ public function destroy(Request $request, $recipeId, JWT $jwtAuth) ], Response::HTTP_UNAUTHORIZED); } - public function report(Request $request) + public function report(Request $request, JWT $jwtAuth) { - if (JWTAuth::parseToken()->user()) { + if ($jwtAuth->parseToken()->check()) { $recipe = Recipe::find($request->get('recipe_id')); if ($recipe instanceof Recipe) { diff --git a/app/Providers/AppServiceProvider.php b/app/Providers/AppServiceProvider.php index e4b94825..9b209281 100755 --- a/app/Providers/AppServiceProvider.php +++ b/app/Providers/AppServiceProvider.php @@ -4,8 +4,6 @@ namespace App\Providers; -use App\Adapters\Search\FulltextSearchAdapterInterface; -use App\Adapters\Search\MySqlAdapter; use Illuminate\Support\ServiceProvider; class AppServiceProvider extends ServiceProvider @@ -24,6 +22,6 @@ public function register(){} */ public function boot() { - $this->app->bind(FulltextSearchAdapterInterface::class, MySqlAdapter::class); + // } } From 85baf7fa58555aee8bb8ae33f71a1a2fd98de35e Mon Sep 17 00:00:00 2001 From: fokosun Date: Mon, 21 Aug 2023 22:08:23 -0400 Subject: [PATCH 09/17] more coverage --- app/Http/Controllers/RecipeController.php | 47 +--- app/Models/Role.php | 12 + app/Models/User.php | 12 +- ...3_08_22_004422_create_user_roles_table.php | 29 ++ .../2023_08_22_004528_create_roles_table.php | 28 ++ database/seeders/StaticContentsSeeder.php | 11 +- tests/Feature/RecipeTest.php | 253 ++++++++++++++++++ 7 files changed, 353 insertions(+), 39 deletions(-) create mode 100644 app/Models/Role.php create mode 100644 database/migrations/2023_08_22_004422_create_user_roles_table.php create mode 100644 database/migrations/2023_08_22_004528_create_roles_table.php diff --git a/app/Http/Controllers/RecipeController.php b/app/Http/Controllers/RecipeController.php index 27b768de..703e2a15 100755 --- a/app/Http/Controllers/RecipeController.php +++ b/app/Http/Controllers/RecipeController.php @@ -4,18 +4,13 @@ namespace App\Http\Controllers; -use App\Exceptions\CookbookModelNotFoundException; use App\Http\Requests\RecipeStoreRequest; use App\Models\Recipe; use App\Services\RecipeService; -use Illuminate\Contracts\Foundation\Application; -use Illuminate\Contracts\Routing\ResponseFactory; use Illuminate\Http\JsonResponse; use Illuminate\Http\Request; use Illuminate\Http\Response; use Illuminate\Support\Facades\Log; -use PHPOpenSourceSaver\JWTAuth\Facades\JWTAuth; -use Tymon\JWTAuth\Exceptions\JWTException; use Tymon\JWTAuth\JWT; /** @@ -57,12 +52,6 @@ public function show($recipeId) return $this->service->show($recipeId); } - /** - * @param Request $request - * @return \Illuminate\Contracts\Foundation\Application|\Illuminate\Contracts\Routing\ResponseFactory|\Illuminate\Http\Response - * @throws \App\Exceptions\CookbookModelNotFoundException - * @throws \Illuminate\Validation\ValidationException - */ public function addClap(Request $request) { $this->validate( @@ -85,11 +74,6 @@ public function myRecipes(Request $request, JWT $jwtAuth): \Illuminate\Http\Json ], 401); } - /** - * @param RecipeStoreRequest $request - * @param JWT $jwtAuth - * @return \Illuminate\Contracts\Foundation\Application|\Illuminate\Contracts\Routing\ResponseFactory|\Illuminate\Http\JsonResponse|\Illuminate\Http\Response - */ public function store(RecipeStoreRequest $request, JWT $jwtAuth) { try { @@ -115,21 +99,16 @@ public function store(RecipeStoreRequest $request, JWT $jwtAuth) } } - /** - * @param Request $request - * @param $recipeId - * @param JWT $jwtAuth - * @return \Illuminate\Contracts\Foundation\Application|\Illuminate\Contracts\Routing\ResponseFactory|\Illuminate\Http\JsonResponse|\Illuminate\Http\Response - * @throws \App\Exceptions\CookbookModelNotFoundException - * @throws \Tymon\JWTAuth\Exceptions\JWTException - */ public function update(Request $request, $recipeId, JWT $jwtAuth) { if ( - $request->user()->ownRecipe($recipeId) && - $jwtAuth->parseToken()->check() + $request->user()->ownRecipe($recipeId) ) { - return $this->service->update($request, $recipeId); + if ( + $jwtAuth->parseToken()->check() + ) { + return $this->service->update($request, $recipeId); + } } return response()->json([ @@ -137,14 +116,6 @@ public function update(Request $request, $recipeId, JWT $jwtAuth) ], 401); } - /** - * @param Request $request - * @param $recipeId - * @param JWT $jwtAuth - * @return Application|ResponseFactory|JsonResponse|Response - * @throws CookbookModelNotFoundException - * @throws JWTException - */ public function destroy(Request $request, $recipeId, JWT $jwtAuth) { if ( @@ -159,7 +130,7 @@ public function destroy(Request $request, $recipeId, JWT $jwtAuth) ], Response::HTTP_UNAUTHORIZED); } - public function report(Request $request, JWT $jwtAuth) + public function report(Request $request, JWT $jwtAuth): JsonResponse { if ($jwtAuth->parseToken()->check()) { $recipe = Recipe::find($request->get('recipe_id')); @@ -181,5 +152,9 @@ public function report(Request $request, JWT $jwtAuth) 'message' => 'There was an error processing this request. Please try again later.' ]); } + + return response()->json([ + 'error' => 'You are not authorized to perform this action.' + ], Response::HTTP_UNAUTHORIZED); } } diff --git a/app/Models/Role.php b/app/Models/Role.php new file mode 100644 index 00000000..4947109f --- /dev/null +++ b/app/Models/Role.php @@ -0,0 +1,12 @@ +getKey(), $followings); } - private function hasRole(string $role) + private function hasRole(string $role_id) { - return false; + $role_id = DB::table('roles')->where(['role_id' => $role_id])->first()?->id; + $roles = $this->roles()->pluck('role_id')->toArray(); + + return in_array($role_id, $roles); + } + + public function roles(): \Illuminate\Database\Eloquent\Relations\HasMany + { + return $this->hasMany(Role::class, 'user_id'); } public function getTikTokUser() diff --git a/database/migrations/2023_08_22_004422_create_user_roles_table.php b/database/migrations/2023_08_22_004422_create_user_roles_table.php new file mode 100644 index 00000000..e6a2c2c0 --- /dev/null +++ b/database/migrations/2023_08_22_004422_create_user_roles_table.php @@ -0,0 +1,29 @@ +id(); + $table->integer('user_id'); + $table->integer('role_id'); + $table->timestamps(); + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::dropIfExists('user_roles'); + } +}; diff --git a/database/migrations/2023_08_22_004528_create_roles_table.php b/database/migrations/2023_08_22_004528_create_roles_table.php new file mode 100644 index 00000000..a254f5da --- /dev/null +++ b/database/migrations/2023_08_22_004528_create_roles_table.php @@ -0,0 +1,28 @@ +id(); + $table->text('role_id'); + $table->timestamps(); + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::dropIfExists('roles'); + } +}; diff --git a/database/seeders/StaticContentsSeeder.php b/database/seeders/StaticContentsSeeder.php index 5c23c4ee..1d6e7a71 100755 --- a/database/seeders/StaticContentsSeeder.php +++ b/database/seeders/StaticContentsSeeder.php @@ -5,6 +5,7 @@ namespace Database\Seeders; use Illuminate\Database\Seeder; +use Illuminate\Support\Facades\DB; class StaticContentsSeeder extends Seeder { @@ -17,7 +18,7 @@ class StaticContentsSeeder extends Seeder */ public function run() { - \Illuminate\Support\Facades\DB::table('static_contents')->insert([ + DB::table('static_contents')->insert([ [ 'title' => 'cookie-policy', 'content' => file_get_contents(__DIR__.'/policies/cookie-policy.php'), @@ -32,5 +33,13 @@ public function run() 'content' => file_get_contents(__DIR__.'/policies/terms-and-conditions.php'), ], ]); + + DB::table('roles')->insert([ + [ + 'role_id' => 'super', + ], [ + 'role_id' => 'contributor', + ] + ]); } } diff --git a/tests/Feature/RecipeTest.php b/tests/Feature/RecipeTest.php index fd54fd8f..bdfb3269 100755 --- a/tests/Feature/RecipeTest.php +++ b/tests/Feature/RecipeTest.php @@ -6,10 +6,13 @@ use App\Models\Cookbook; use App\Models\Recipe; +use App\Models\Role; use App\Models\User; +use Faker\Factory; use Illuminate\Hashing\BcryptHasher; use Illuminate\Http\Response; use Illuminate\Support\Facades\Auth; +use Illuminate\Support\Facades\DB; use Illuminate\Support\Facades\Log; class RecipeTest extends \TestCase @@ -317,4 +320,254 @@ public function it_allows_only_authorized_user_to_report_a_recipe() 'error' => 'Your session has expired. Please login and try again.' ]); } + + /** + * @test + */ + public function only_supers_can_destroy_a_recipe() + { + $this->createRoles(); + + $user = User::factory()->make([ + 'email' => 'evan.reid@123.com', + 'password' => (new BcryptHasher)->make('pass123'), + ]); + $user->save(); + + $this->createUserRole($user->refresh()->getKey(), 'super'); + + $token = Auth::attempt([ + 'email' => 'evan.reid@123.com', + 'password' => 'pass123' + ]); + + $cookbook = Cookbook::factory()->make([ + 'user_id' => $user->refresh()->getKey() + ]); + + $cookbook->save(); + + $recipe = Recipe::factory()->make([ + 'cookbook_id' => $cookbook->refresh()->getKey(), + 'user_id' => $user->getKey() + ]); + + $recipe->save(); + + $this->assertDatabaseHas('recipes', [ + 'id' => $recipe->refresh()->getKey() + ]); + + $this->json( + 'POST', + '/api/v1/recipes/' . $recipe->refresh()->getKey() . '/destroy', + [ + 'recipe_id' => $recipe->refresh()->getKey() + ], + [ + 'Authorization' => 'Bearer ' . $token + ] + )->assertStatus(Response::HTTP_ACCEPTED) + ->assertExactJson([ + "deleted" => true + ]); + } + + /** + * @test + */ + public function if_you_are_not_a_super_you_cannot_destroy_a_recipe() + { + $user = User::factory()->make([ + 'email' => 'evan.reid@123.com', + 'password' => (new BcryptHasher)->make('pass123'), + ]); + $user->save(); + + $token = Auth::attempt([ + 'email' => 'evan.reid@123.com', + 'password' => 'pass123' + ]); + + $cookbook = Cookbook::factory()->make([ + 'user_id' => $user->refresh()->getKey() + ]); + + $cookbook->save(); + + $recipe = Recipe::factory()->make([ + 'cookbook_id' => $cookbook->refresh()->getKey(), + 'user_id' => $user->getKey() + ]); + + $recipe->save(); + + $this->assertDatabaseHas('recipes', [ + 'id' => $recipe->refresh()->getKey() + ]); + + $this->json( + 'POST', + '/api/v1/recipes/' . $recipe->refresh()->getKey() . '/destroy', + [ + 'recipe_id' => $recipe->refresh()->getKey() + ], + [ + 'Authorization' => 'Bearer ' . $token + ] + )->assertStatus(Response::HTTP_UNAUTHORIZED) + ->assertExactJson([ + "error" => 'You are not authorized to perform this action.' + ]); + } + + /** + * @test + */ + public function it_can_update_an_existing_recipe() + { + $faker = Factory::create(); + + $user = User::factory()->make([ + 'email' => 'evan.reid@123.com', + 'password' => (new BcryptHasher)->make('pass123'), + ]); + $user->save(); + + $token = Auth::attempt([ + 'email' => 'evan.reid@123.com', + 'password' => 'pass123' + ]); + + $cookbook = Cookbook::factory()->make([ + 'user_id' => $user->refresh()->getKey() + ]); + + $cookbook->save(); + + $newCookbook = Cookbook::factory()->make([ + 'user_id' => $user->refresh()->getKey() + ]); + + $newCookbook->save(); + + $recipe = Recipe::factory()->make([ + 'cookbook_id' => $cookbook->refresh()->getKey(), + 'user_id' => $user->getKey() + ]); + + $recipe->save(); + + $oldValues = [ + 'cookbook_id' => $recipe->refresh()->cookbook_id, + 'description' => $recipe->refresh()->description, + 'summary' => $recipe->refresh()->summary, + 'imgUrl' => $recipe->refresh()->imgUrl, + ]; + + $this->assertDatabaseHas('recipes', [ + 'id' => $recipe->refresh()->getKey() + ]); + + $this->json( + 'POST', + '/api/v1/recipes/' . $recipe->refresh()->getKey() . '/edit', + [ + 'cookbook_id' => $newCookbook->refresh()->getKey(), + 'description' => implode(" ", $faker->words(150)), + 'summary' => implode(" ", $faker->words(55)), + 'imgUrl' => $faker->imageUrl(), + 'ingredients' => [ + [ + 'name' => $faker->jobTitle, + 'unit' => '2', + 'thumbnail' => $faker->imageUrl(), + ] + ], + 'tags' => [] + ], + [ + 'Authorization' => 'Bearer ' . $token + ] + )->assertStatus(Response::HTTP_OK) + ->assertExactJson([ + "updated" => true + ]); + + $updatedRecipe = $recipe->refresh(); + $this->assertNotSame($oldValues['cookbook_id'], $updatedRecipe->cookbook_id); + $this->assertNotSame($oldValues['description'], $updatedRecipe->description); + $this->assertNotSame($oldValues['summary'], $updatedRecipe->summary); + $this->assertNotSame($oldValues['imgUrl'], $updatedRecipe->imgUrl); + } + + /** + * @test + */ + public function you_cannot_update_a_recipe_you_do_not_own() + { + $faker = Factory::create(); + + $me = User::factory()->make([ + 'email' => 'evan.reid@123.com', + 'password' => (new BcryptHasher)->make('pass123'), + ]); + $me->save(); + + $theOtherUser = User::factory()->make([ + 'email' => 'evan.reid2@123.com', + 'password' => (new BcryptHasher)->make('pass123'), + ]); + $theOtherUser->save(); + + $myToken = Auth::attempt([ + 'email' => 'evan.reid@123.com', + 'password' => 'pass123' + ]); + + $cookbook = Cookbook::factory()->make([ + 'user_id' => $me->refresh()->getKey() + ]); + + $cookbook->save(); + + $salisRecipe = Recipe::factory()->make([ + 'cookbook_id' => $cookbook->refresh()->getKey(), + 'user_id' => $theOtherUser->refresh()->getKey() + ]); + + $salisRecipe->save(); + + $this->json( + 'POST', + '/api/v1/recipes/' . $salisRecipe->refresh()->getKey() . '/edit', + [ + 'description' => implode(" ", $faker->words(150)), + ], + [ + 'Authorization' => 'Bearer ' . $myToken + ] + )->assertStatus(Response::HTTP_UNAUTHORIZED); + } + + private function createRoles() + { + DB::table('roles')->insert([ + [ + 'role_id' => 'super', + ], [ + 'role_id' => 'contributor', + ] + ]); + } + + private function createUserRole($user_id, $role_id) + { + $role_id = DB::table('roles')->where(['role_id' => $role_id])->first()->id; + + $role = new Role(); + $role->user_id = $user_id; + $role->role_id = $role_id; + $role->save(); + } } From b05949d71d116d3a0add409cab35b53526cb9956 Mon Sep 17 00:00:00 2001 From: fokosun Date: Mon, 21 Aug 2023 22:50:14 -0400 Subject: [PATCH 10/17] more coverage --- tests/Feature/CookbookTest.php | 2 +- tests/Feature/RecipeTest.php | 136 +++++++++++++++++++++++++++++++-- 2 files changed, 129 insertions(+), 9 deletions(-) diff --git a/tests/Feature/CookbookTest.php b/tests/Feature/CookbookTest.php index 46faebc2..8beef875 100755 --- a/tests/Feature/CookbookTest.php +++ b/tests/Feature/CookbookTest.php @@ -246,7 +246,7 @@ public function it_does_not_allow_a_user_with_valid_token_update_a_cookbook_reso /** * @test */ - public function it_forids_lesser_beings_from_deleting_a_cookbook_resource() + public function it_forbids_lesser_beings_from_deleting_a_cookbook_resource() { $this->json( 'POST', '/api/v1/auth/register', [ diff --git a/tests/Feature/RecipeTest.php b/tests/Feature/RecipeTest.php index bdfb3269..285fa08b 100755 --- a/tests/Feature/RecipeTest.php +++ b/tests/Feature/RecipeTest.php @@ -5,6 +5,7 @@ namespace Feature; use App\Models\Cookbook; +use App\Models\Flag; use App\Models\Recipe; use App\Models\Role; use App\Models\User; @@ -157,14 +158,14 @@ public function it_cannot_clap_for_a_recipe_that_does_not_exist() 'POST', '/api/v1/add-clap', [ - 'recipe_id' => rand(1,10) + 'recipe_id' => rand(1, 10) ] )->assertStatus(422) - ->assertExactJson([ - 'recipe_id' => [ - "The selected recipe id is invalid." - ] - ]); + ->assertExactJson([ + 'recipe_id' => [ + "The selected recipe id is invalid." + ] + ]); } /** @@ -241,7 +242,7 @@ public function it_can_report_a_recipe() $recipe->save(); - $this->assertFalse((bool) $recipe->refresh()->is_reported); + $this->assertFalse((bool)$recipe->refresh()->is_reported); $this->json( 'POST', @@ -257,7 +258,7 @@ public function it_can_report_a_recipe() 'message' => 'feedback submitted.' ]); - $this->assertTrue((bool) $recipe->refresh()->is_reported); + $this->assertTrue((bool)$recipe->refresh()->is_reported); } /** @@ -550,6 +551,125 @@ public function you_cannot_update_a_recipe_you_do_not_own() )->assertStatus(Response::HTTP_UNAUTHORIZED); } + /** + * @test + */ + public function it_can_create_a_new_recipe() + { + $faker = Factory::create(); + + $user = User::factory()->make([ + 'email' => 'evan.reid@123.com', + 'password' => (new BcryptHasher)->make('pass123'), + ]); + $user->save(); + + $token = Auth::attempt([ + 'email' => 'evan.reid@123.com', + 'password' => 'pass123' + ]); + + $cookbook = Cookbook::factory()->make([ + 'user_id' => $user->refresh()->getKey() + ]); + + $cookbook->save(); + + $flag = new Flag([ + 'flag' => 'ng', + 'nationality' => 'nigerien', + ]); + $flag->save(); + + $this->json( + 'POST', + '/api/v1/recipes/', + [ + 'is_draft' => 'false', + 'name' => $faker->jobTitle, + 'cookbook_id' => $cookbook->refresh()->getKey(), + 'description' => implode(" ", $faker->words(150)), + 'summary' => implode(" ", $faker->words(55)), + 'imgUrl' => $faker->imageUrl(), + 'ingredients' => [ + [ + 'name' => $faker->jobTitle, + 'unit' => '2', + 'thumbnail' => $faker->imageUrl(), + ] + ], + 'nationality' => $flag->refresh()->flag, + 'cuisine' => 'spanich', + 'tags' => [] + ], + [ + 'Authorization' => 'Bearer ' . $token + ] + )->assertStatus(Response::HTTP_CREATED) + ->assertExactJson([ + "created" => true + ]); + } + + /** + * @test + */ + public function handles_error_creating_a_new_recipe() + { + $faker = Factory::create(); + + $user = User::factory()->make([ + 'email' => 'evan.reid@123.com', + 'password' => (new BcryptHasher)->make('pass123'), + ]); + $user->save(); + + $token = Auth::attempt([ + 'email' => 'evan.reid@123.com', + 'password' => 'pass123' + ]); + + $cookbook = Cookbook::factory()->make([ + 'user_id' => $user->refresh()->getKey() + ]); + + $cookbook->save(); + + $flag = new Flag([ + 'flag' => 'ng', + 'nationality' => 'nigerien', + ]); + $flag->save(); + + $this->json( + 'POST', + '/api/v1/recipes/', + [ + 'is_draft' => 'false', + 'name' => $faker->jobTitle, + 'cookbook_id' => $cookbook->refresh()->getKey(), + 'description' => implode(" ", $faker->words(150)), + 'summary' => implode(" ", $faker->words(55)), + 'imgUrl' => $faker->imageUrl(), + 'ingredients' => [ + [ + 'name' => $faker->jobTitle, + 'unit' => '2', + 'thumbnail' => $faker->imageUrl(), + ] + ], + 'nationality' => $flag->refresh()->flag, + 'cuisine' => 'spanich' + ], + [ + 'Authorization' => 'Bearer ' . $token + ] + )->assertStatus(Response::HTTP_BAD_REQUEST) + ->assertExactJson([ + "error" => 'There was an error processing this request, please try again later.' + ]); + } + private function createRoles() { DB::table('roles')->insert([ From 16cee2b4a9311363ac9ccc755b4aa5b2345d327a Mon Sep 17 00:00:00 2001 From: fokosun Date: Wed, 23 Aug 2023 14:32:20 -0400 Subject: [PATCH 11/17] improve test coverage --- app/Dtos/TikTokUserDto.php | 7 +- app/Exceptions/ApiException.php | 1 - app/Exceptions/Handler.php | 1 - app/Http/Controllers/CommentController.php | 20 +-- app/Http/Controllers/UserController.php | 77 ---------- app/Http/Requests/UserUpdateRequest.php | 2 +- app/Jobs/SendEmailNotification.php | 1 + app/Services/RecipeService.php | 7 +- tests/Feature/CommentTest.php | 135 ++++++++++++++++ tests/Feature/RecipeTest.php | 66 +++----- tests/Feature/UserTest.php | 169 +++++++++++++++++++++ tests/TestCase.php | 23 +++ tests/Unit/Commands/LoginCommandTest.php | 37 +++++ tests/Unit/Dtos/TikTokUserDtoTest.php | 52 +++++++ 14 files changed, 442 insertions(+), 156 deletions(-) create mode 100644 tests/Unit/Commands/LoginCommandTest.php create mode 100644 tests/Unit/Dtos/TikTokUserDtoTest.php diff --git a/app/Dtos/TikTokUserDto.php b/app/Dtos/TikTokUserDto.php index e4aca1a3..2db30669 100644 --- a/app/Dtos/TikTokUserDto.php +++ b/app/Dtos/TikTokUserDto.php @@ -1,5 +1,7 @@ open_id; } - public function isIsVerified(): bool - { - return $this->is_verified; - } - public function getProfileDeepLink(): string { return $this->profile_deep_link; diff --git a/app/Exceptions/ApiException.php b/app/Exceptions/ApiException.php index 929fa1a5..ca7b2086 100755 --- a/app/Exceptions/ApiException.php +++ b/app/Exceptions/ApiException.php @@ -3,7 +3,6 @@ declare(strict_types=1); namespace App\Exceptions; - class ApiException extends \Exception { } diff --git a/app/Exceptions/Handler.php b/app/Exceptions/Handler.php index 2a2ea85c..d7560647 100755 --- a/app/Exceptions/Handler.php +++ b/app/Exceptions/Handler.php @@ -10,7 +10,6 @@ use Illuminate\Validation\ValidationException; use Throwable; use Tymon\JWTAuth\Exceptions\JWTException; -use Tymon\JWTAuth\Exceptions\TokenInvalidException; class Handler extends ExceptionHandler { diff --git a/app/Http/Controllers/CommentController.php b/app/Http/Controllers/CommentController.php index 25312291..f6a32cd8 100755 --- a/app/Http/Controllers/CommentController.php +++ b/app/Http/Controllers/CommentController.php @@ -11,11 +11,10 @@ use Illuminate\Support\Arr; use Illuminate\Support\Facades\Log; use Tymon\JWTAuth\Facades\JWTAuth; -use Tymon\JWTAuth\JWT; class CommentController extends Controller { - public function addComment(Request $request, JWT $jwtAuth) + public function addComment(Request $request) { /** @phpstan-ignore-next-line */ if ($user = JWTAuth::parseToken()->user()) { @@ -45,8 +44,6 @@ public function addComment(Request $request, JWT $jwtAuth) } } } - - throw new ApiException('You are not suthorized to perfrom this action.'); } public function destroyComment(Request $request) @@ -57,23 +54,10 @@ public function destroyComment(Request $request) $comment = Comment::findOrFail($request->only(['comment-id']))->first(); if ($user->isSuper() || $user->ownsComment($payload['comment-id'])) { - try { - return response()->json(['deleted' => $comment->delete()]); - } catch (\Exception $exception) { - Log::debug( - 'comment deletion failed.', - ['error' => $exception, 'payload' => $payload] - ); - - return response()->json([ - 'error' => 'There was an error processing this request. Please try again later.' - ], 400); - } + return response()->json(['deleted' => $comment->delete()]); } else { throw new ApiException('You are not suthorized to perfrom this action.'); } } - - throw new ApiException('You are not suthorized to perfrom this action.'); } } diff --git a/app/Http/Controllers/UserController.php b/app/Http/Controllers/UserController.php index 40f1b2b6..dbdbd377 100755 --- a/app/Http/Controllers/UserController.php +++ b/app/Http/Controllers/UserController.php @@ -7,9 +7,7 @@ use App\Exceptions\ApiException; use App\Http\Requests\UserStoreRequest; use App\Http\Requests\UserUpdateRequest; -use App\Jobs\TriggerEmailVerificationProcess; use App\Mail\OtpWasGenerated; -use App\Models\EmailVerification; use App\Models\Following; use App\Models\User; use App\Models\UserFeedback; @@ -17,64 +15,37 @@ use App\Services\TikTok\HttpRequestRunner; use App\Services\TikTok\Videos; use App\Services\UserService; -use Carbon\Carbon; use Ichtrojan\Otp\Otp; use Illuminate\Http\Request; use Illuminate\Http\Response; -use Illuminate\Support\Facades\Crypt; use Illuminate\Support\Facades\Log; use Illuminate\Support\Facades\Mail; use Tymon\JWTAuth\Facades\JWTAuth; -use Ichtrojan\Otp\Models\Otp as OtpModel; -/** - * Class UserController - */ class UserController extends Controller { protected UserService $service; - /** - * @param \App\Services\UserService $service - */ public function __construct(UserService $service) { $this->service = $service; } - /** - * Get all users from the database - */ public function index() { return $this->service->index(); } - /** - * @param UserStoreRequest $request - * @return \Illuminate\Http\JsonResponse - */ public function store(UserStoreRequest $request): \Illuminate\Http\JsonResponse { return $this->service->store($request); } - /** - * Get one user - * - * @param mixed $username username - * @throws \App\Exceptions\CookbookModelNotFoundException - */ public function show($username) { return $this->service->show($username); } - /** - * @param $username - * @param UserUpdateRequest $request - * @return \Illuminate\Contracts\Foundation\Application|\Illuminate\Contracts\Routing\ResponseFactory|\Illuminate\Http\JsonResponse|Response - */ public function update($username, UserUpdateRequest $request) { if ($request->all()) { @@ -88,54 +59,6 @@ public function update($username, UserUpdateRequest $request) ]); } - /** - * Email Verification - * - * @param $token - * @return \Illuminate\Http\JsonResponse|void - */ - public function verifyEmail($token) - { - $payload = Crypt::decrypt($token); - - try { - if ($payload['secret'] != env('CRYPT_SECRET')) { //one more layer of scrutiny - Log::info('Invalid secret provided for verifying this email', ['user_id' => $payload['user_id'], 'email' => $payload['email']]); - throw new \Exception('There was a problem processing this request. Please try again later.'); - } - - $user = User::findOrFail($payload['user_id']); - - if ($user) { - $verification = EmailVerification::where('user_id', $payload['user_id']); - $verification->update([ - 'is_verified' => Carbon::now(), - ]); - - return response()->json(null, Response::HTTP_NO_CONTENT); - } - } catch (\Exception $e) { - return response()->json($e->getMessage(), Response::HTTP_CONFLICT); - } - } - - /** - * @param $token - * - * @throws \Exception - */ - public function resend($token) - { - $payload = Crypt::decrypt($token); - - if ($payload['secret'] != env('CRYPT_SECRET')) { //one more layer of scrutiny - Log::info('Invalid secret provided for resending email verification', ['user_id' => $payload['user_id'], 'email' => $payload['email']]); - throw new \Exception('There was a problem processing this request. Please try again later.'); - } else { - dispatch(new TriggerEmailVerificationProcess($payload['user_id'])); - } - } - public function followUser(Request $request) { /** @phpstan-ignore-next-line */ diff --git a/app/Http/Requests/UserUpdateRequest.php b/app/Http/Requests/UserUpdateRequest.php index 5d6b4e04..2b2ac49f 100755 --- a/app/Http/Requests/UserUpdateRequest.php +++ b/app/Http/Requests/UserUpdateRequest.php @@ -15,7 +15,7 @@ class UserUpdateRequest extends FormRequest */ public function authorize() { - return false; + return true; } /** diff --git a/app/Jobs/SendEmailNotification.php b/app/Jobs/SendEmailNotification.php index f2673180..67bf4faf 100755 --- a/app/Jobs/SendEmailNotification.php +++ b/app/Jobs/SendEmailNotification.php @@ -7,6 +7,7 @@ class SendEmailNotification extends BaseNotification { const TYPE = 'email'; + protected $tries; /** * SendEmailNotification constructor. diff --git a/app/Services/RecipeService.php b/app/Services/RecipeService.php index e34a8774..fcf4986e 100755 --- a/app/Services/RecipeService.php +++ b/app/Services/RecipeService.php @@ -22,7 +22,6 @@ use Illuminate\Http\Response; use Illuminate\Support\Arr; use Illuminate\Support\Str; -use Illuminate\Validation\UnauthorizedException; /** * Class RecipeService @@ -179,8 +178,6 @@ public function update(Request $request, $id) ], Response::HTTP_OK ); } - - throw new UnauthorizedException("You are not authorized to perform this action."); } /** @@ -200,8 +197,6 @@ public function delete(User $user, $id) ], Response::HTTP_ACCEPTED ); } - - throw new UnauthorizedException("You are not authorized to perform this action."); } /** @@ -256,7 +251,7 @@ private function validatePayload(array $payload) if ($cookbook_id = Arr::get($payload, 'cookbook_id')) { if (!Cookbook::find($cookbook_id)) { $sources[] = [ - 'cookbook_id' => $cookbook_id . ' does not exist.' + 'cookbook_id' => 'This cookbook does not exist.' ]; } } diff --git a/tests/Feature/CommentTest.php b/tests/Feature/CommentTest.php index 18af6598..32a8b0d9 100644 --- a/tests/Feature/CommentTest.php +++ b/tests/Feature/CommentTest.php @@ -227,6 +227,40 @@ public function it_cannot_destroy_user_not_owned_comment() ])->assertStatus(Response::HTTP_UNAUTHORIZED); } + /** + * @test + */ + public function it_cannot_add_comment_for_an_unauthorized_user() + { + $faker = Factory::create(); + + $cookbook = Cookbook::factory()->make([ + 'user_id' => $this->user->getKey() + ]); + + $cookbook->save(); + + $recipe = Recipe::factory()->make([ + 'cookbook_id' => $cookbook->refresh()->getKey(), + 'user_id' => $this->user->getKey() + ]); + + $recipe->save(); + + $this->json( + 'POST', + '/api/v1/comments', + [ + 'resource-type' => 'recipe', + 'resource-id' => $recipe->refresh()->getKey(), + 'comment' => $faker->sentence + ], + [ + 'Authorization' => 'Bearer unauthorized-access-token' + ] + )->assertStatus(Response::HTTP_UNAUTHORIZED); + } + /** * @test */ @@ -243,4 +277,105 @@ public function it_cannot_destroy_comment_if_access_token_is_malformed_or_invali ] )->assertStatus(Response::HTTP_UNAUTHORIZED); } + + /** + * @test + * scnario: user does not own recipe but isSuper + */ + public function only_supers_can_destroy_a_comment() + { + $theOtherUser = User::factory()->make(); + $theOtherUser->save(); + + $this->createRoles(); + $this->createUserRole($this->user->refresh()->getKey(), 'super'); + + $token = Auth::attempt([ + 'email' => $this->user->email, + 'password' => 'pass123' + ]); + + $cookbook = Cookbook::factory()->make([ + 'user_id' => $this->user->getKey() + ]); + + $cookbook->save(); + + $recipe = Recipe::factory()->make([ + 'cookbook_id' => $cookbook->refresh()->getKey(), + 'user_id' => $this->user->getKey() + ]); + + $recipe->save(); + + $comment = Comment::factory()->make([ + 'user_id' => $theOtherUser->refresh()->getKey(), + 'recipe_id' => $recipe->refresh()->getKey() + ]); + + $comment->save(); + + $this->json( + 'POST', + '/api/v1/comments/destroy', + [ + 'comment-id' => $comment->refresh()->getKey() + ], + [ + 'Authorization' => 'Bearer ' . $token + ] + )->assertExactJson([ + 'deleted' => true + ])->assertStatus(Response::HTTP_OK); + } + + /** + * @test + */ + public function handles_when_not_user_and_not_own_comment() + { + $theOtherUser = User::factory()->make(); + $theOtherUser->save(); + + $this->createRoles(); + $this->createUserRole($this->user->refresh()->getKey(), 'contributor'); + + $token = Auth::attempt([ + 'email' => $this->user->email, + 'password' => 'pass123' + ]); + + $cookbook = Cookbook::factory()->make([ + 'user_id' => $this->user->getKey() + ]); + + $cookbook->save(); + + $recipe = Recipe::factory()->make([ + 'cookbook_id' => $cookbook->refresh()->getKey(), + 'user_id' => $this->user->getKey() + ]); + + $recipe->save(); + + $comment = Comment::factory()->make([ + 'user_id' => $theOtherUser->refresh()->getKey(), + 'recipe_id' => $recipe->refresh()->getKey() + ]); + + $comment->save(); + + $this->json( + 'POST', + '/api/v1/comments/destroy', + [ + 'comment-id' => $comment->refresh()->getKey() + ], + [ + 'Authorization' => 'Bearer ' . $token + ] + )->assertExactJson([ + 'error' => 'You are not suthorized to perfrom this action.' + ])->assertStatus(Response::HTTP_UNAUTHORIZED); + } } diff --git a/tests/Feature/RecipeTest.php b/tests/Feature/RecipeTest.php index 285fa08b..6d4a5460 100755 --- a/tests/Feature/RecipeTest.php +++ b/tests/Feature/RecipeTest.php @@ -7,13 +7,11 @@ use App\Models\Cookbook; use App\Models\Flag; use App\Models\Recipe; -use App\Models\Role; use App\Models\User; use Faker\Factory; use Illuminate\Hashing\BcryptHasher; use Illuminate\Http\Response; use Illuminate\Support\Facades\Auth; -use Illuminate\Support\Facades\DB; use Illuminate\Support\Facades\Log; class RecipeTest extends \TestCase @@ -407,7 +405,7 @@ public function if_you_are_not_a_super_you_cannot_destroy_a_recipe() 'id' => $recipe->refresh()->getKey() ]); - $this->json( + $res = $this->json( 'POST', '/api/v1/recipes/' . $recipe->refresh()->getKey() . '/destroy', [ @@ -614,10 +612,8 @@ public function it_can_create_a_new_recipe() /** * @test */ - public function handles_error_creating_a_new_recipe() + public function handles_invalid_payload_when_updating_existing_cookbook() { - $faker = Factory::create(); - $user = User::factory()->make([ 'email' => 'evan.reid@123.com', 'password' => (new BcryptHasher)->make('pass123'), @@ -641,53 +637,29 @@ public function handles_error_creating_a_new_recipe() ]); $flag->save(); + $recipe = Recipe::factory()->make([ + 'cookbook_id' => $cookbook->refresh()->getKey(), + 'user_id' => $user->refresh()->getKey() + ]); + + $recipe->save(); + $this->json( 'POST', - '/api/v1/recipes/', + '/api/v1/recipes/' . $recipe->refresh()->getKey() . '/edit', [ - 'is_draft' => 'false', - 'name' => $faker->jobTitle, - 'cookbook_id' => $cookbook->refresh()->getKey(), - 'description' => implode(" ", $faker->words(150)), - 'summary' => implode(" ", $faker->words(55)), - 'imgUrl' => $faker->imageUrl(), - 'ingredients' => [ - [ - 'name' => $faker->jobTitle, - 'unit' => '2', - 'thumbnail' => $faker->imageUrl(), - ] - ], - 'nationality' => $flag->refresh()->flag, - 'cuisine' => 'spanich' + 'cookbook_id' => rand(100,105), + 'nationality' => 'fake', + 'imgUrl' => 'not-a-valid-image-url', + 'description' => 'less than 100', + 'summary' => 'less than 50', + 'ingredients' => [], + 'cuisine' => 'spanich', + 'tags' => 'not a list' ], [ 'Authorization' => 'Bearer ' . $token ] - )->assertStatus(Response::HTTP_BAD_REQUEST) - ->assertExactJson([ - "error" => 'There was an error processing this request, please try again later.' - ]); - } - - private function createRoles() - { - DB::table('roles')->insert([ - [ - 'role_id' => 'super', - ], [ - 'role_id' => 'contributor', - ] - ]); - } - - private function createUserRole($user_id, $role_id) - { - $role_id = DB::table('roles')->where(['role_id' => $role_id])->first()->id; - - $role = new Role(); - $role->user_id = $user_id; - $role->role_id = $role_id; - $role->save(); + )->assertStatus(Response::HTTP_BAD_REQUEST); } } diff --git a/tests/Feature/UserTest.php b/tests/Feature/UserTest.php index 43737b82..c498b4dd 100755 --- a/tests/Feature/UserTest.php +++ b/tests/Feature/UserTest.php @@ -5,7 +5,10 @@ namespace Feature; use App\Jobs\SendEmailNotification; +use App\Models\User; +use Illuminate\Hashing\BcryptHasher; use Illuminate\Http\Response; +use Illuminate\Support\Facades\Auth; use Illuminate\Support\Facades\Queue; class UserTest extends \TestCase @@ -210,4 +213,170 @@ public function testCanGetOneUser() $this->assertEquals(Response::HTTP_OK, $response->status()); } + + /** + * @test + */ + public function it_can_retrieve_all_users() + { + $users = User::factory()->count(5)->make(); + + $users->map(function ($user) { + $user->save(); + }); + + $this + ->json('GET', '/api/v1/users') + ->assertStatus(200) + ->assertJsonStructure([ + 'data' => [ + [ + 'name', + 'cookbooks', + 'recipes', + 'contact', + 'contributions', + 'email', + 'following', + 'followers', + 'created_at', + 'updated_at', + 'name_slug', + 'pronouns', + 'avatar', + 'expertise_level', + 'about', + 'can_take_orders', + 'email_verified' + ] + ] + ]); + } + + /** + * @test + */ + public function it_can_update_user_detail() + { + $user = User::factory()->make(); + $user->save(); + $username = $user->refresh()->name_slug; + + $this + ->json( + 'POST', + '/api/v1/users/' . $username . '/edit', + [ + 'pronouns' => 'They/Them/ze' + ] + ) + ->assertStatus(200) + ->assertExactJson([ + 'updated' => true, + 'status' => 'success' + ]); + } + + /** + * @test + */ + public function when_nothing_to_update() + { + $user = User::factory()->make(); + $user->save(); + $username = $user->refresh()->name_slug; + + $this + ->json( + 'POST', + '/api/v1/users/' . $username . '/edit' + ) + ->assertStatus(200) + ->assertExactJson([ + 'message' => 'nothing to update.' + ]); + } + + /** + * @test + */ + public function it_can_handle_follow_user() + { + $user = User::factory()->make([ + 'email' => 'me@test.com', + 'password' => (new BcryptHasher)->make('pass123'), + ]); + $user->save(); + + $userToFollow = User::factory()->make([ + 'email' => 'them@test.com', + 'password' => (new BcryptHasher)->make('pass123'), + ]); + $userToFollow->save(); + + $otherUsers = User::factory()->count(5)->make([ + 'password' => (new BcryptHasher)->make('pass123'), + ]); + + $otherUsers->map(function ($user) { + $user->save(); + }); + + $myBearertoken = Auth::attempt([ + 'email' => 'me@test.com', + 'password' => 'pass123' + ]); + + $this->json( + 'POST', + '/api/v1/follow', + [ + 'toFollow' => $userToFollow->refresh()->getKey() + ], + [ + 'Authorization' => 'Bearer ' . $myBearertoken + ] + )->assertStatus(200) + ->assertJsonStructure([ + [ + 'followers', 'author', 'avatar', 'handle' + ] + ]); + } + + public function test_who_to_folow() + { + $user = User::factory()->make([ + 'email' => 'me@test.com', + 'password' => (new BcryptHasher)->make('pass123'), + ]); + $user->save(); + + $myBearertoken = Auth::attempt([ + 'email' => 'me@test.com', + 'password' => 'pass123' + ]); + + $usersToFollow = User::factory()->count(30)->make([ + 'password' => (new BcryptHasher)->make('pass123'), + ]); + + $usersToFollow->map(function ($user) { + $user->save(); + }); + + $this->json( + 'GET', + '/api/v1/who-to-follow', + [], + [ + 'Authorization' => 'Bearer ' . $myBearertoken + ] + )->assertStatus(200) + ->assertJsonStructure([ + [ + 'followers', 'author', 'avatar', 'handle' + ] + ]); + } } diff --git a/tests/TestCase.php b/tests/TestCase.php index fc616d16..b948dcec 100755 --- a/tests/TestCase.php +++ b/tests/TestCase.php @@ -1,9 +1,11 @@ insert([ + [ + 'role_id' => 'super', + ], [ + 'role_id' => 'contributor', + ] + ]); + } + + protected function createUserRole($user_id, $role_id) + { + $role_id = DB::table('roles')->where(['role_id' => $role_id])->first()->id; + + $role = new Role(); + $role->user_id = $user_id; + $role->role_id = $role_id; + $role->save(); + } } diff --git a/tests/Unit/Commands/LoginCommandTest.php b/tests/Unit/Commands/LoginCommandTest.php new file mode 100644 index 00000000..617f12c6 --- /dev/null +++ b/tests/Unit/Commands/LoginCommandTest.php @@ -0,0 +1,37 @@ +artisan('auth:token') + ->expectsOutput('Loading User from Cache ...') + ->expectsOutput('===========================') + ->expectsOutput('User not found in Cache, creating new User ...') + ->expectsOutput('==============================================') + ->expectsOutput('====================================') + ->expectsOutput('Here you go! Use this token to access protected resources.!') + ->assertExitCode(0); + } + + public function test_creates_token_when_test_user_is_cached(): void + { + $user = User::factory()->make(); + $user->save(); + + Cache::put('testUser', $user->refresh()); + $this->artisan('auth:token') + ->expectsOutput('Loading User from Cache ...') + ->expectsOutput('===========================') + ->expectsOutput('====================================') + ->expectsOutput('Here you go! Use this token to access protected resources.!') + ->assertExitCode(0); + } +} diff --git a/tests/Unit/Dtos/TikTokUserDtoTest.php b/tests/Unit/Dtos/TikTokUserDtoTest.php new file mode 100644 index 00000000..aaf0f88e --- /dev/null +++ b/tests/Unit/Dtos/TikTokUserDtoTest.php @@ -0,0 +1,52 @@ +tiktokUserDto = new TikTokUserDto( + 1, + 'test', + 'test', + false, + 'test', + 'test', + 'test', + 'test', + 'test', + 'test', + 'test', + 0 + ); + } + + /** + * @test + */ + public function it_can_get() + { + $this->assertSame([ + 'user_id' => 1, + 'open_id' => 'test', + 'code' => 'test', + 'is_verified' => false, + 'profile_deep_link' => 'test', + 'bio_description' => 'test', + 'display_name' => 'test', + 'avatar_large_url' => 'test', + 'avatar_url_100' => 'test', + 'avatar_url' => 'test', + 'union_id' => 'test', + 'video_count' => 0 + ], $this->tiktokUserDto->toArray()); + } +} From a6b6d18d86fc654b677fe409429d7d2e568441f4 Mon Sep 17 00:00:00 2001 From: fokosun Date: Wed, 23 Aug 2023 16:32:18 -0400 Subject: [PATCH 12/17] improve test coverage --- app/Http/Controllers/CategoryController.php | 30 --------- app/Http/Controllers/StatsController.php | 67 --------------------- app/Http/Controllers/UserController.php | 36 ++++------- app/Models/Definition.php | 3 + tests/Feature/UserTest.php | 31 ++++++++++ tests/Unit/StaticContentsTest.php | 45 ++++++++++++++ 6 files changed, 92 insertions(+), 120 deletions(-) delete mode 100755 app/Http/Controllers/CategoryController.php delete mode 100755 app/Http/Controllers/StatsController.php create mode 100644 tests/Unit/StaticContentsTest.php diff --git a/app/Http/Controllers/CategoryController.php b/app/Http/Controllers/CategoryController.php deleted file mode 100755 index bb0c6d4e..00000000 --- a/app/Http/Controllers/CategoryController.php +++ /dev/null @@ -1,30 +0,0 @@ -middleware('jwt.auth', ['except' => ['index']]); - - $this->service = $service; - } - - /** - * @return \Illuminate\Http\JsonResponse - */ - public function index() - { - return $this->service->index(); - } -} diff --git a/app/Http/Controllers/StatsController.php b/app/Http/Controllers/StatsController.php deleted file mode 100755 index 1730645d..00000000 --- a/app/Http/Controllers/StatsController.php +++ /dev/null @@ -1,67 +0,0 @@ - self::getUsersStats($user), - 'recipes' => self::getRecipesStats($recipe), - 'cookbooks' => self::getCookbooksStats($cookbook), - ]; - - return response(['data' => $data]); - } - - /** - * Return users count - * - * @param \App\Models\User $user - * @return int - */ - protected static function getUsersStats($user): int - { - return $user->count(); - } - - /** - * Return recipes count - * - * @param \App\Models\Recipe $recipe - * @return int - */ - protected static function getRecipesStats($recipe): int - { - return $recipe->count(); - } - - /** - * Return Cookbook count - * - * @param \App\Models\Cookbook $cookbook - * @return int - */ - protected static function getCookbooksStats($cookbook): int - { - return $cookbook->count(); - } -} diff --git a/app/Http/Controllers/UserController.php b/app/Http/Controllers/UserController.php index dbdbd377..748fc28d 100755 --- a/app/Http/Controllers/UserController.php +++ b/app/Http/Controllers/UserController.php @@ -132,33 +132,23 @@ public function addFeedback(Request $request) { /** @phpstan-ignore-next-line */ if ($user = JWTAuth::parseToken()->user()) { + $hasRespondedAlready = UserFeedback::where(['user_id' => $user->getKey(), 'type' => 'feedback']); - try { - $hasRespondedAlready = UserFeedback::where(['user_id' => $user->getKey(), 'type' => 'feedback']); - - if (collect($hasRespondedAlready->pluck('response')->toArray())->isEmpty()) { - $userFeedback = new UserFeedback([ - 'user_id' => $user->getKey(), - 'type' => 'feedback', - 'response' => $request->get('choice', 'still-thinking') - ]); - - return response()->json(['success' => $userFeedback->save()]); - } - - return response()->json([ - 'success' => $hasRespondedAlready->first()->update([ - 'response' => $request->get('choice', 'still-thinking') - ]) + if (collect($hasRespondedAlready->pluck('response')->toArray())->isEmpty()) { + $userFeedback = new UserFeedback([ + 'user_id' => $user->getKey(), + 'type' => 'feedback', + 'response' => $request->get('choice', 'still-thinking') ]); - } catch (ApiException $exception){ - Log::debug( - 'error creating user feedback', - ['exception' => $exception] - ); - return response()->json(['error', 'There was an error processing this request. Please try again later.'], $exception->getCode()); + return response()->json(['success' => $userFeedback->save()]); } + + return response()->json([ + 'success' => $hasRespondedAlready->first()->update([ + 'response' => $request->get('choice', 'still-thinking') + ]) + ]); } return $this->unauthorizedResponse(); diff --git a/app/Models/Definition.php b/app/Models/Definition.php index 611d21d5..bf112240 100755 --- a/app/Models/Definition.php +++ b/app/Models/Definition.php @@ -4,10 +4,13 @@ namespace App\Models; +use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Database\Eloquent\Model; class Definition extends Model { + use HasFactory; + /** * @var array */ diff --git a/tests/Feature/UserTest.php b/tests/Feature/UserTest.php index c498b4dd..e19cd6b0 100755 --- a/tests/Feature/UserTest.php +++ b/tests/Feature/UserTest.php @@ -379,4 +379,35 @@ public function test_who_to_folow() ] ]); } + + /** + * @test + */ + public function it_allows_authorized_users_to_use_the_add_feedback_feature(): void + { + $choices = ['still-thinking', 'probably', 'very-likely']; + $choice = $choices[array_rand($choices)]; + + $user = User::factory()->make([ + 'email' => 'me@test.com', + 'password' => (new BcryptHasher)->make('pass123'), + ]); + $user->save(); + + $bearerToken = Auth::attempt([ + 'email' => 'me@test.com', + 'password' => 'pass123' + ]); + + $this->json( + 'POST', + '/api/v1/feedback', + [ + 'choice' => $choice + ], + [ + 'Authorization' => 'Bearer ' . $bearerToken + ] + )->assertStatus(200); + } } diff --git a/tests/Unit/StaticContentsTest.php b/tests/Unit/StaticContentsTest.php new file mode 100644 index 00000000..54bc322c --- /dev/null +++ b/tests/Unit/StaticContentsTest.php @@ -0,0 +1,45 @@ +seed('Database\\Seeders\\DefinitionsSeeder'); + $controller = new DefinitionsController(); + + $definitions = $controller->index(); + $this->assertNotEmpty($definitions->all()); + + $definitions->map(function ($defintion) { + $this->assertInstanceOf(Definition::class, $defintion); + }); + } + + /** + * @test + */ + public function it_returns_static_contents_data() + { + $this->seed('Database\Seeders\StaticContentsSeeder'); + $controller = new StaticContentController(); + + $staticContents = $controller->get(); + $decoded = json_decode($staticContents->getContent(), true); + + $this->assertArrayHasKey('cookiePolicy', $decoded['response']); + $this->assertArrayHasKey('usagePolicy', $decoded['response']); + $this->assertArrayHasKey('dataRetentionPolicy', $decoded['response']); + $this->assertArrayHasKey('termsAndConditions', $decoded['response']); + } +} From cf0b68f3b1e2753cb872edabe3c1c7fda620f1fc Mon Sep 17 00:00:00 2001 From: fokosun Date: Wed, 23 Aug 2023 16:43:20 -0400 Subject: [PATCH 13/17] improve test coverage --- app/Http/Middleware/AuthorizationGuard.php | 51 ------------------- app/Http/Middleware/MustVerifyEmail.php | 30 ----------- .../Unit/Controllers/SearchControllerTest.php | 21 ++++++++ 3 files changed, 21 insertions(+), 81 deletions(-) delete mode 100755 app/Http/Middleware/AuthorizationGuard.php delete mode 100755 app/Http/Middleware/MustVerifyEmail.php diff --git a/app/Http/Middleware/AuthorizationGuard.php b/app/Http/Middleware/AuthorizationGuard.php deleted file mode 100755 index 9af45a6f..00000000 --- a/app/Http/Middleware/AuthorizationGuard.php +++ /dev/null @@ -1,51 +0,0 @@ -header('X-API-KEY')) { - // throw new UnauthorizedClientException(); - // } -// - // $client = AuthorizedClient::where(['api_key' => $request->header('X-API-KEY')]); -// - // if (!$client->get()->first()) { - // throw new UnauthorizedClientException(); - // } - - // try { - // $decrypted = Crypt::decrypt($client->get()->first()->client_secret); - // $payload = explode(".", $decrypted); -// - // if ($payload[0] !== $request->header('X-API-KEY') || $payload[1] !== $client->get()->first()->passphrase) { - // throw new UnauthorizedClientException(); - // } - // } catch (DecryptException $e) { - // throw new UnauthorizedClientException(); - // } - - // $token = JWTAuth::getToken(); -// - // $user_id = JWTAuth::getPayload($token)->toArray()["sub"]; -// - // $request->merge(["user_id" => $user_id]); - - return $next($request); - } -} diff --git a/app/Http/Middleware/MustVerifyEmail.php b/app/Http/Middleware/MustVerifyEmail.php deleted file mode 100755 index 1482c2a0..00000000 --- a/app/Http/Middleware/MustVerifyEmail.php +++ /dev/null @@ -1,30 +0,0 @@ -user()->hasVerifiedEmail()) { - return response([ - 'error' => 'You have not verified your email yet.', - ], Response::HTTP_UNAUTHORIZED); - } - - return $next($request); - } -} diff --git a/tests/Unit/Controllers/SearchControllerTest.php b/tests/Unit/Controllers/SearchControllerTest.php index bc7aacab..5156570c 100755 --- a/tests/Unit/Controllers/SearchControllerTest.php +++ b/tests/Unit/Controllers/SearchControllerTest.php @@ -13,6 +13,27 @@ class SearchControllerTest extends \TestCase { + /** + * @test + */ + public function it_validates_search_request_body() + { + $searchController = new SearchController(); + + $response = $searchController->getSearchResults(new SearchRequest([ + 'query' => null + ])); + + $decoded = json_decode($response->getContent(), true); + $this->assertSame([ + 'errors' => [ + 'query' => [ + 'The query field is required.' + ] + ] + ], $decoded); + } + public function test_it_is_instantiable() { $searchController = new SearchController(); From 9261404e08d2d0e4d683a08cdaf1edf24624e0eb Mon Sep 17 00:00:00 2001 From: fokosun Date: Wed, 23 Aug 2023 16:46:24 -0400 Subject: [PATCH 14/17] improve test coverage --- app/Services/RecipeService.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/Services/RecipeService.php b/app/Services/RecipeService.php index fcf4986e..6ed353e9 100755 --- a/app/Services/RecipeService.php +++ b/app/Services/RecipeService.php @@ -144,7 +144,7 @@ public function store($request) /** * @param Request $request * @param $id - * @return Application|ResponseFactory|\Illuminate\Foundation\Application|Response + * @return Application|ResponseFactory|\Illuminate\Foundation\Application|Response|void * @throws CookbookModelNotFoundException * @throws InvalidPayloadException */ @@ -183,7 +183,7 @@ public function update(Request $request, $id) /** * @param User $user * @param $id - * @return Application|ResponseFactory|\Illuminate\Foundation\Application|Response + * @return Application|ResponseFactory|\Illuminate\Foundation\Application|Response|void * @throws CookbookModelNotFoundException */ public function delete(User $user, $id) From 48ccf27fd69c47620d90bb745109d6882b5bfc04 Mon Sep 17 00:00:00 2001 From: fokosun Date: Wed, 6 Sep 2023 13:41:47 -0400 Subject: [PATCH 15/17] local setup updates php debug connections refactoring and cleaning up refactoring and cleaning up refactor recipe controller refactoring refactor comment controller refactor user controller fix static analysis --- .env.example | 2 + .github/workflows/feature-test.yml | 2 +- .github/workflows/static-analysis.yml | 2 +- .github/workflows/unit-test.yml | 2 +- Dockerfile | 3 + Makefile | 8 +- readme.md => README.md | 33 +++++ .../Commands/DatabaseConnectionDetails.php | 75 +++++++++++ app/Console/Commands/LoginCommand.php | 9 +- app/Http/Controllers/AuthController.php | 31 +++-- app/Http/Controllers/CommentController.php | 11 +- app/Http/Controllers/Controller.php | 9 +- app/Http/Controllers/CookbookController.php | 74 +++++------ app/Http/Controllers/RecipeController.php | 88 ++++++++----- app/Http/Controllers/SearchController.php | 6 +- .../Controllers/SubscriptionController.php | 3 +- app/Http/Controllers/UserController.php | 56 +++++--- app/Services/AuthService.php | 31 ++--- app/Services/CookbookService.php | 121 ++++++------------ app/Services/RecipeService.php | 78 ++++------- app/Services/UserService.php | 76 ++++------- docker-compose.yml | 3 + docs/images/add-new-cli-interpreter1.png | Bin 0 -> 20327 bytes docs/images/add-new-cli-interpreter2.png | Bin 0 -> 43927 bytes docs/images/php-debug-connections.png | Bin 0 -> 17272 bytes docs/images/server.png | Bin 0 -> 93211 bytes docs/images/test-framework1.png | Bin 0 -> 62248 bytes docs/images/test-framework2.png | Bin 0 -> 151062 bytes docs/images/xdebug-php.png | Bin 0 -> 143142 bytes tests/Feature/AuthTest.php | 30 ++--- tests/Feature/CommentTest.php | 4 +- tests/Feature/CookbookTest.php | 74 +++++++++-- tests/Feature/RecipeTest.php | 87 ++++++++++--- tests/Unit/Controllers/ControllerTest.php | 6 +- 34 files changed, 539 insertions(+), 385 deletions(-) rename readme.md => README.md (53%) create mode 100644 app/Console/Commands/DatabaseConnectionDetails.php create mode 100644 docs/images/add-new-cli-interpreter1.png create mode 100644 docs/images/add-new-cli-interpreter2.png create mode 100644 docs/images/php-debug-connections.png create mode 100644 docs/images/server.png create mode 100644 docs/images/test-framework1.png create mode 100644 docs/images/test-framework2.png create mode 100644 docs/images/xdebug-php.png diff --git a/.env.example b/.env.example index e1a8ffde..9c4580ad 100755 --- a/.env.example +++ b/.env.example @@ -52,3 +52,5 @@ INSTAGRAM_REDIRECT_URI= MAILGUN_DOMAIN= MAILGUN_SECRET= + +GH_PAT= diff --git a/.github/workflows/feature-test.yml b/.github/workflows/feature-test.yml index c4c714ff..c3bba071 100755 --- a/.github/workflows/feature-test.yml +++ b/.github/workflows/feature-test.yml @@ -1,4 +1,4 @@ -name: Feature test +name: Run Feature tests on: push: diff --git a/.github/workflows/static-analysis.yml b/.github/workflows/static-analysis.yml index 9c537192..f426c044 100644 --- a/.github/workflows/static-analysis.yml +++ b/.github/workflows/static-analysis.yml @@ -1,4 +1,4 @@ -name: Static analysis +name: Run Static analysis on: push: diff --git a/.github/workflows/unit-test.yml b/.github/workflows/unit-test.yml index 6b174ae4..760ebdb1 100644 --- a/.github/workflows/unit-test.yml +++ b/.github/workflows/unit-test.yml @@ -1,4 +1,4 @@ -name: Unit test +name: Run Unit tests on: push: diff --git a/Dockerfile b/Dockerfile index 5215e3f0..29b61cf4 100755 --- a/Dockerfile +++ b/Dockerfile @@ -42,5 +42,8 @@ WORKDIR /var/www USER $user +RUN echo "xdebug.mode=debug" >> /usr/local/etc/php/conf.d/php.ini +RUN echo "xdebug.client_host=host.docker.internal" >> /usr/local/etc/php/conf.d/php.ini +RUN echo "xdebug.idekey=PHPSTORM" >> /usr/local/etc/php/conf.d/php.ini RUN echo "memory_limit=1024M" >> /usr/local/etc/php/conf.d/php.ini RUN echo "allow_url_fopen=on" >> /usr/local/etc/php/conf.d/php.ini diff --git a/Makefile b/Makefile index c47a7040..2ed3b5ce 100755 --- a/Makefile +++ b/Makefile @@ -23,7 +23,7 @@ db_migrate: ## run db migrations db_schemefy: ## Display the db schema in table format @php artisan schema:show -setup: composer generate_key +setup: composer generate_key jwt_key db_connection copy_env: #todo: figure out a way to not override env vars if file_exists already @cp .env.example .env @@ -38,6 +38,12 @@ composer: ## Install project dependencies generate_key: ## Generate APP_KEY and set in .env @docker-compose exec app php artisan key:generate +jwt_key: ## Generate JWT_SECRET and set in .env + @docker-compose exec app php artisan jwt:secret + +db_connection: ## Generate DB Connection details and set in .env + @docker-compose exec app php artisan db:connection + login: ## Creates a new user/token or generate new token for given user @php artisan auth:token diff --git a/readme.md b/README.md similarity index 53% rename from readme.md rename to README.md index 012875e7..107ea5dd 100755 --- a/readme.md +++ b/README.md @@ -61,3 +61,36 @@ Examples: ![Alt text](docs/images/help.png?raw=true "help") +## Setup PHPStorm + + Docker + Xdebug + postman +- Open settings by pressing `(cmd + ,)` button +- Under PHP, add a new CLI interpreter + +![add-new-cli-interpreter1.png](docs%2Fimages%2Fadd-new-cli-interpreter1.png) + +- Select From Docker, Vagrant ... option +- Select Docker Compose, set the configuration file to ./docker-compose.yml and the service select app +![add-new-cli-interpreter2.png](docs%2Fimages%2Fadd-new-cli-interpreter2.png) + +- Now your PHP interpreter settings hosuld look like this +![xdebug-php.png](docs%2Fimages%2Fxdebug-php.png) + +- Next, you want to set up the test framework, click the plus sign and select PHPUnit by remote interpreter +![test-framework1.png](docs%2Fimages%2Ftest-framework1.png) + +- Select the interpreter you just created from the dropdown list +![test-framework2.png](docs%2Fimages%2Ftest-framework2.png) + +- Now you can start debugging, set a break point in any controller class and run the test associated with it in debug mode + +### Listening for requests from postman +- First step is to set up a server +![server.png](docs%2Fimages%2Fserver.png) +- On postman add this parameter. When postman detects this in a request, it creates a cookie with the value of XDEBUG_SESSION_START. This has an expiry time of 30 minutes so you dont have to include it in your requests all the time. + +```angular2html +XDEBUG_SESSION_START=PHPSTORM +``` +- Finally, tell postman to listen for PHP Debug Connections +![php-debug-connections.png](docs%2Fimages%2Fphp-debug-connections.png) + +- Set a break point in the code called by the endpoint you are consuming on postman, hit send to start debugging diff --git a/app/Console/Commands/DatabaseConnectionDetails.php b/app/Console/Commands/DatabaseConnectionDetails.php new file mode 100644 index 00000000..084f0952 --- /dev/null +++ b/app/Console/Commands/DatabaseConnectionDetails.php @@ -0,0 +1,75 @@ + "ao9moanwus0rjiex.cbetxkdyhwsb.us-east-1.rds.amazonaws.com", + "DB_PORT" => "3306", + "DB_DATABASE" => "athiftsxpmxaj82c", + "DB_USERNAME" => "w7dydvcjsog985xj", + "DB_PASSWORD" => "iliqkyv8vbbtw603" + ]; + + $filepath = $this->envPath(); + + foreach($connection as $key => $value) { + $fileContents = $this->getFileContents($filepath); + + if (Str::contains($fileContents, $key)) { + $this->putFileContents( + $filepath, + preg_replace( + "/{$key}=.*/", + "{$key}={$value}", + $fileContents + ) + ); + } + } + + $this->info("db connection details set successfully."); + } + + protected function envPath(): string + { + if (method_exists($this->laravel, 'environmentFilePath')) { + return $this->laravel->environmentFilePath(); + } + + return $this->laravel->basePath('.env'); + } + + protected function getFileContents(string $filepath): string + { + return file_get_contents($filepath); + } + + protected function putFileContents(string $filepath, string $data): void + { + file_put_contents($filepath, $data); + } +} diff --git a/app/Console/Commands/LoginCommand.php b/app/Console/Commands/LoginCommand.php index 2649a4d2..ba9bc5b5 100755 --- a/app/Console/Commands/LoginCommand.php +++ b/app/Console/Commands/LoginCommand.php @@ -4,6 +4,7 @@ namespace App\Console\Commands; +use App\Models\User; use App\Services\AuthService; use App\Services\UserService; use Illuminate\Console\Command; @@ -39,17 +40,19 @@ public function handle(UserService $userService, AuthService $authService) $fromCache = Cache::get('testUser'); + $email = Str::random(5) . '@console.com'; + if (!$fromCache) { $this->line('User not found in Cache, creating new User ...'); $this->line('=============================================='); $response = $userService->store(new Request([ 'name' => 'test user', - 'email' => Str::random(5) . '@console.com', + 'email' => $email, 'password' => 'testing123' ])); - $user = json_decode($response->getContent(), true)["response"]["data"]; + $user = User::where('email', '=', $email)->first(); Cache::put('testUser', $user); } @@ -61,7 +64,7 @@ public function handle(UserService $userService, AuthService $authService) 'password' => 'testing123' ])); - $this->info($token->getContent()); + $this->info($token); $this->line('===================================='); $this->info("Here you go! Use this token to access protected resources.!"); diff --git a/app/Http/Controllers/AuthController.php b/app/Http/Controllers/AuthController.php index a39f1395..73b3db7b 100755 --- a/app/Http/Controllers/AuthController.php +++ b/app/Http/Controllers/AuthController.php @@ -17,6 +17,7 @@ use Illuminate\Http\Response; use Illuminate\Support\Facades\Auth; use Illuminate\Support\Facades\Log; +use Symfony\Component\HttpFoundation\Response as ResponseAlias; use Tymon\JWTAuth\Exceptions\JWTException; /** @@ -36,21 +37,27 @@ public function __construct(AuthService $service) $this->service = $service; } - /** - * @param SignInRequest $request - * @return \Illuminate\Http\JsonResponse - */ public function login(SignInRequest $request): \Illuminate\Http\JsonResponse { - return $this->service->login($request); + if (!$token = $this->service->login($request)) { + return response()->json( + [ + 'Not found or Invalid Credentials.', + ], ResponseAlias::HTTP_NOT_FOUND + ); + } + + return $this->successResponse(['token' => $token]); } /** - * @return \Illuminate\Http\JsonResponse|\Illuminate\Http\Response + * @return \Illuminate\Http\JsonResponse|Response */ public function logout() { - return $this->service->logout(); + return $this->service->logout() ? + $this->noContentResponse() : + $this->errorResponse(['Not found or Invalid Credentials.']); } /** @@ -69,7 +76,7 @@ public function loginViaMagicLink(Request $request, LocationService $locationSer 'required' => [ 'email' => 'Looks like this is your first time signing in with magiclink! Kindly provide your registered email for verification.', ] - ], Response::HTTP_UNPROCESSABLE_ENTITY); + ], ResponseAlias::HTTP_UNPROCESSABLE_ENTITY); } try { @@ -83,7 +90,7 @@ public function loginViaMagicLink(Request $request, LocationService $locationSer ] ]); - return response()->json($locationService->getErrors(), Response::HTTP_UNAUTHORIZED); + return response()->json($locationService->getErrors(), ResponseAlias::HTTP_UNAUTHORIZED); } $locationUserEmail = $location->getUser()->email; @@ -95,7 +102,7 @@ public function loginViaMagicLink(Request $request, LocationService $locationSer ] ]); - return response()->json($locationService->getErrors(), Response::HTTP_UNAUTHORIZED); + return response()->json($locationService->getErrors(), ResponseAlias::HTTP_UNAUTHORIZED); } else { $location->update([ 'ip' => $request->ipinfo->ip, @@ -124,7 +131,7 @@ public function loginViaMagicLink(Request $request, LocationService $locationSer } catch (\Throwable $e) { $m = array_merge($locationService->getErrors(), [$e->getMessage()]); - return response()->json($m, Response::HTTP_UNAUTHORIZED); + return response()->json($m, ResponseAlias::HTTP_UNAUTHORIZED); } } @@ -263,7 +270,7 @@ public function tikTokHandleCallback(Request $request, Client $client, UserServi public function validateToken(Request $request) { if (!$request->bearerToken() || !Auth::check()) { - throw new JWTException('Expired or Tnvalid token.'); + throw new JWTException('Expired or Invalid token.'); } return response()->json( diff --git a/app/Http/Controllers/CommentController.php b/app/Http/Controllers/CommentController.php index f6a32cd8..4f934ef9 100755 --- a/app/Http/Controllers/CommentController.php +++ b/app/Http/Controllers/CommentController.php @@ -16,9 +16,8 @@ class CommentController extends Controller { public function addComment(Request $request) { - /** @phpstan-ignore-next-line */ + /** @phpstan-ignore-next-line */ if ($user = JWTAuth::parseToken()->user()) { - $payload = $request->only([ 'resource-type', 'resource-id', 'comment' ]); @@ -44,11 +43,13 @@ public function addComment(Request $request) } } } + + return $this->unauthorizedResponse(); } public function destroyComment(Request $request) { - /** @phpstan-ignore-next-line */ + /** @phpstan-ignore-next-line */ if ($user = JWTAuth::parseToken()->user()) { $payload = $request->only(['comment-id']); $comment = Comment::findOrFail($request->only(['comment-id']))->first(); @@ -56,8 +57,10 @@ public function destroyComment(Request $request) if ($user->isSuper() || $user->ownsComment($payload['comment-id'])) { return response()->json(['deleted' => $comment->delete()]); } else { - throw new ApiException('You are not suthorized to perfrom this action.'); + throw new ApiException('You are not authorized to perform this action.'); } } + + return $this->unauthorizedResponse(); } } diff --git a/app/Http/Controllers/Controller.php b/app/Http/Controllers/Controller.php index 70ebcf20..db73e1f3 100755 --- a/app/Http/Controllers/Controller.php +++ b/app/Http/Controllers/Controller.php @@ -9,6 +9,7 @@ use Illuminate\Foundation\Validation\ValidatesRequests; use Illuminate\Http\Response; use Illuminate\Routing\Controller as BaseController; +use Symfony\Component\HttpFoundation\Response as ResponseAlias; class Controller extends BaseController { @@ -16,9 +17,9 @@ class Controller extends BaseController use AuthorizesRequests, DispatchesJobs, ValidatesRequests; - public function successResponse(array $data = []): \Illuminate\Http\JsonResponse + public function successResponse(array $data = [], $code = ResponseAlias::HTTP_OK): \Illuminate\Http\JsonResponse { - return response()->json($data); + return response()->json($data, $code); } public function noContentResponse(): Response @@ -28,13 +29,13 @@ public function noContentResponse(): Response public function errorResponse(array $data = []): \Illuminate\Http\JsonResponse { - return response()->json($data, Response::HTTP_BAD_REQUEST); + return response()->json($data, ResponseAlias::HTTP_BAD_REQUEST); } public function unauthorizedResponse(): \Illuminate\Http\JsonResponse { return response()->json([ 'error' => 'Your login session has expired. Please login.' - ], Response::HTTP_UNAUTHORIZED); + ], ResponseAlias::HTTP_UNAUTHORIZED); } } diff --git a/app/Http/Controllers/CookbookController.php b/app/Http/Controllers/CookbookController.php index 2901664e..9159b84c 100755 --- a/app/Http/Controllers/CookbookController.php +++ b/app/Http/Controllers/CookbookController.php @@ -13,8 +13,8 @@ use Illuminate\Http\JsonResponse; use Illuminate\Http\Request; use Illuminate\Http\Response; -use Illuminate\Routing\ResponseFactory; use Illuminate\Support\Facades\Auth; +use Symfony\Component\HttpFoundation\Response as ResponseAlias; /** * Class UserController @@ -34,23 +34,21 @@ public function __construct(CookbookService $service) } /** - * All cookbooks - * @return JsonResponse + * Get all cookbooks */ public function index(): JsonResponse { - return $this->service->index(); + return response()->json(['data' => $this->service->index()]); } /** * @param mixed $id - * @return Response|ResponseFactory - * + * @return JsonResponse * @throws CookbookModelNotFoundException */ - public function show($id) + public function show(mixed $id): JsonResponse { - return $this->service->show($id); + return response()->json(['data' => $this->service->show($id)]); } /** @@ -59,7 +57,7 @@ public function show($id) */ public function myCookbooks(Request $request): JsonResponse { - return $this->service->index($request->get('user_id')); + return response()->json(['data' => $this->service->index($request->get('user_id'))]); } /** @@ -67,61 +65,59 @@ public function myCookbooks(Request $request): JsonResponse * @return JsonResponse * @throws Exception */ - public function store(CookbookStoreRequest $request) + public function store(CookbookStoreRequest $request): JsonResponse { - try { - //todo: creation of cookbooks will not be publicly accessible until later releases -// if (!Auth::user()->isEarlyBird()) { -// throw new UnauthorizedException("You are not authorized to perform this action."); -// } - - $request->merge([ - 'user_id' => Auth::user()->id, - 'alt_text' => $request->get("alt_text") ?? 'cookbook cover image', - 'flag_id' => Flag::where(["flag" => $request->get("flag_id")])->first()->getKey(), - 'tags' => $request->get("tags") ?? "" + $request->merge([ + 'user_id' => Auth::user()->id, + 'alt_text' => $request->get("alt_text") ?? 'cookbook cover image', + 'flag_id' => Flag::where(["flag" => $request->get("flag_id")])->first()->getKey(), + 'tags' => $request->get("tags") ?? "" + ]); + + if ($this->service->store($request)) { + return $this->successResponse([ + 'response' => [ + 'created' => true, + 'data' => [] + ] ]); - - return $this->service->store($request); - - } catch (Exception $exception) { - return response()->json([ - 'error' => $exception->getMessage() - ], Response::HTTP_BAD_REQUEST); } + + return $this->errorResponse([ + 'error'=> 'There was an error processing this request, please try again.' + ]); } /** * @param int $id * @param Request $request - * @return \Illuminate\Contracts\Foundation\Application|\Illuminate\Contracts\Routing\ResponseFactory|JsonResponse|Response + * @return JsonResponse * @throws CookbookModelNotFoundException - * @throws \Tymon\JWTAuth\Exceptions\JWTException */ - public function update(int $id, Request $request) + public function update(int $id, Request $request): JsonResponse { - if (Auth::user()->ownCookbook($id)) { - return $this->service->update($request, (string) $id); + if (Auth::user()->ownCookbook($id) && $this->service->update($request, (string) $id)) { + return $this->successResponse(['updated' => true]); } return response()->json([ 'error' => 'You are not authorized to access this resource.' - ], 401); + ], ResponseAlias::HTTP_UNAUTHORIZED); } /** * @param $cookbookId - * @return \Illuminate\Contracts\Foundation\Application|\Illuminate\Contracts\Routing\ResponseFactory|JsonResponse|Response + * @return JsonResponse|Response * @throws CookbookModelNotFoundException */ - public function destroy($cookbookId) + public function destroy($cookbookId): JsonResponse|Response { - if (Auth::user()->ownCookbook($cookbookId)) { - return $this->service->delete($cookbookId); + if (Auth::user()->ownCookbook($cookbookId) && $this->service->delete($cookbookId)) { + return $this->noContentResponse(); } return response()->json([ 'error' => 'You are not authorized to perform this action.' - ], 401); + ], ResponseAlias::HTTP_UNAUTHORIZED); } } diff --git a/app/Http/Controllers/RecipeController.php b/app/Http/Controllers/RecipeController.php index 703e2a15..f5c6af6f 100755 --- a/app/Http/Controllers/RecipeController.php +++ b/app/Http/Controllers/RecipeController.php @@ -4,19 +4,21 @@ namespace App\Http\Controllers; +use AllowDynamicProperties; use App\Http\Requests\RecipeStoreRequest; use App\Models\Recipe; use App\Services\RecipeService; use Illuminate\Http\JsonResponse; use Illuminate\Http\Request; -use Illuminate\Http\Response; use Illuminate\Support\Facades\Log; +use Symfony\Component\HttpFoundation\Response as ResponseAlias; +use Tymon\JWTAuth\Exceptions\JWTException; use Tymon\JWTAuth\JWT; /** * Class UserController */ -class RecipeController extends Controller +#[AllowDynamicProperties] class RecipeController extends Controller { protected RecipeService $service; @@ -33,26 +35,30 @@ public function __construct(RecipeService $service) } /** - * Get all recipes belonging to a user - * - * @return \Illuminate\Http\JsonResponse + * @return JsonResponse */ - public function index(): \Illuminate\Http\JsonResponse + public function index() { - return $this->service->index(); + return $this->successResponse(['data' => $this->service->index()]); } /** * @param $recipeId - * @return \Illuminate\Database\Eloquent\Builder|\Illuminate\Database\Eloquent\Model|object + * @return JsonResponse * @throws \App\Exceptions\CookbookModelNotFoundException */ - public function show($recipeId) + public function show($recipeId): JsonResponse { - return $this->service->show($recipeId); + return $this->successResponse(['data' => $this->service->show($recipeId)]); } - public function addClap(Request $request) + /** + * @param Request $request + * @return JsonResponse + * @throws \App\Exceptions\CookbookModelNotFoundException + * @throws \Illuminate\Validation\ValidationException + */ + public function addClap(Request $request): JsonResponse { $this->validate( $request, [ @@ -60,36 +66,51 @@ public function addClap(Request $request) ] ); - return $this->service->addClap($request->get('recipe_id')); + return ($recipe = $this->service->addClap($request->get('recipe_id'))) ? + /** @phpstan-ignore-next-line */ + $this->successResponse(['updated' => true, 'claps' => $recipe->claps]) : + $this->errorResponse(['error' => 'There was an error processing this request. Please try again.']); } - public function myRecipes(Request $request, JWT $jwtAuth): \Illuminate\Http\JsonResponse + /** + * @param Request $request + * @param JWT $jwtAuth + * @return JsonResponse + * @throws JWTException + */ + public function myRecipes(Request $request, JWT $jwtAuth): JsonResponse { if ($jwtAuth->parseToken()->check()) { - return $this->service->index($request->get('user_id')); + return $this->successResponse([ + 'data' => $this->service->index($request->get('user_id')) + ]); } return response()->json([ 'error', 'You are not authorized to access this resource.' - ], 401); + ], ResponseAlias::HTTP_UNAUTHORIZED); } public function store(RecipeStoreRequest $request, JWT $jwtAuth) { try { $jwtAuth->parseToken()->check(); - return $this->service->store($request); + + return $this->service->store($request) ? + $this->successResponse(['created' => true],ResponseAlias::HTTP_CREATED) : + $this->errorResponse(['created' => false]); + } catch (\Exception $exception) { - Log::debug('An error occured while creating this recipe', [ + Log::debug('An error occurred while creating this recipe', [ 'resource' => self::RECIPE_RESOURCE, 'exception' => $exception ]); $message = "There was an error processing this request, please try again later."; - $code = Response::HTTP_BAD_REQUEST; + $code = ResponseAlias::HTTP_BAD_REQUEST; if ($exception->getCode() == 401) { - $code = Response::HTTP_UNAUTHORIZED; + $code = ResponseAlias::HTTP_UNAUTHORIZED; $message = "You are not authorized to perform this action."; } @@ -101,33 +122,32 @@ public function store(RecipeStoreRequest $request, JWT $jwtAuth) public function update(Request $request, $recipeId, JWT $jwtAuth) { - if ( - $request->user()->ownRecipe($recipeId) - ) { - if ( - $jwtAuth->parseToken()->check() - ) { - return $this->service->update($request, $recipeId); + if ($jwtAuth->parseToken()->check() && $request->user()->ownRecipe($recipeId)) { + if ($this->service->update($request, $recipeId)) { + return $this->successResponse(['updated' => true]); } + + return $this->errorResponse(['updated' => false]); } return response()->json([ 'error' => 'You are not authorized to access this resource.' - ], 401); + ], ResponseAlias::HTTP_UNAUTHORIZED); } public function destroy(Request $request, $recipeId, JWT $jwtAuth) { - if ( - $jwtAuth->parseToken()->check() && - $request->user()->isSuper() - ) { - return $this->service->delete($request->user(), $recipeId); + if ($jwtAuth->parseToken()->check() && $request->user()->isSuper()) { + if ($this->service->delete($request->user(), $recipeId)) { + return $this->successResponse(['deleted' => true]); + } + + return $this->errorResponse(['deleted' => false]); } return response()->json([ 'error' => 'You are not authorized to perform this action.' - ], Response::HTTP_UNAUTHORIZED); + ], ResponseAlias::HTTP_UNAUTHORIZED); } public function report(Request $request, JWT $jwtAuth): JsonResponse @@ -155,6 +175,6 @@ public function report(Request $request, JWT $jwtAuth): JsonResponse return response()->json([ 'error' => 'You are not authorized to perform this action.' - ], Response::HTTP_UNAUTHORIZED); + ], ResponseAlias::HTTP_UNAUTHORIZED); } } diff --git a/app/Http/Controllers/SearchController.php b/app/Http/Controllers/SearchController.php index 4200d421..6ab22e2b 100755 --- a/app/Http/Controllers/SearchController.php +++ b/app/Http/Controllers/SearchController.php @@ -7,9 +7,9 @@ use App\Http\Requests\SearchRequest; use App\Services\SearchService; use Illuminate\Http\Request; -use Illuminate\Http\Response; use Illuminate\Support\Collection; use Illuminate\Support\Facades\Validator; +use Symfony\Component\HttpFoundation\Response as ResponseAlias; class SearchController extends Controller { @@ -132,7 +132,7 @@ public function getSearchResults(Request $request): \Illuminate\Http\JsonRespons return response()->json([ 'error', 'Your login session has expired. Please login.' - ], Response::HTTP_UNAUTHORIZED); + ], ResponseAlias::HTTP_UNAUTHORIZED); } if (str_starts_with($searchQuery, ":me|for-you")) { @@ -144,7 +144,7 @@ public function getSearchResults(Request $request): \Illuminate\Http\JsonRespons return response()->json([ 'error', 'Your login session has expired. Please login.' - ], Response::HTTP_UNAUTHORIZED); + ], ResponseAlias::HTTP_UNAUTHORIZED); } if ($searchQuery === "cookbooks") { diff --git a/app/Http/Controllers/SubscriptionController.php b/app/Http/Controllers/SubscriptionController.php index af760920..ef524a06 100755 --- a/app/Http/Controllers/SubscriptionController.php +++ b/app/Http/Controllers/SubscriptionController.php @@ -6,6 +6,7 @@ use App\Models\Subscriber; use Illuminate\Http\Response; +use Symfony\Component\HttpFoundation\Response as ResponseAlias; class SubscriptionController extends Controller { @@ -31,7 +32,7 @@ public function store(\Illuminate\Http\Request $request) 'created' => true, 'data' => $subscriber, ], - ], Response::HTTP_CREATED + ], ResponseAlias::HTTP_CREATED ); } } diff --git a/app/Http/Controllers/UserController.php b/app/Http/Controllers/UserController.php index 748fc28d..a6371868 100755 --- a/app/Http/Controllers/UserController.php +++ b/app/Http/Controllers/UserController.php @@ -4,7 +4,6 @@ namespace App\Http\Controllers; -use App\Exceptions\ApiException; use App\Http\Requests\UserStoreRequest; use App\Http\Requests\UserUpdateRequest; use App\Mail\OtpWasGenerated; @@ -16,10 +15,11 @@ use App\Services\TikTok\Videos; use App\Services\UserService; use Ichtrojan\Otp\Otp; +use Illuminate\Http\JsonResponse; use Illuminate\Http\Request; -use Illuminate\Http\Response; use Illuminate\Support\Facades\Log; use Illuminate\Support\Facades\Mail; +use Symfony\Component\HttpFoundation\Response as ResponseAlias; use Tymon\JWTAuth\Facades\JWTAuth; class UserController extends Controller @@ -31,32 +31,50 @@ public function __construct(UserService $service) $this->service = $service; } - public function index() + /** + * @return \Illuminate\Http\JsonResponse + */ + public function index(): JsonResponse { - return $this->service->index(); + return $this->successResponse(['data' => $this->service->index()]); } - public function store(UserStoreRequest $request): \Illuminate\Http\JsonResponse + /** + * @param UserStoreRequest $request + * @return JsonResponse + */ + public function store(UserStoreRequest $request) { - return $this->service->store($request); + return $this->service->store($request) ? $this->successResponse( + [ + 'response' => [ + 'created' => true, + 'data' => [], + 'status' => 'success' + ] + ], + ResponseAlias::HTTP_CREATED + ) : $this->errorResponse(['error' => 'There was an error processing this request. Please try again.']); } public function show($username) { - return $this->service->show($username); + return $this->successResponse(['data' => ['user' => $this->service->show($username)]]); } public function update($username, UserUpdateRequest $request) { if ($request->all()) { - $request->merge(['username']); + $request->merge(['username' => $username]); - return $this->service->update($request, $username); + if ($this->service->update($request, $username)) { + return $this->successResponse(['updated' => true, 'status' => 'success']); + } + + return $this->errorResponse(['updated' => false, 'status' => 'failed']); } - return response()->json([ - 'message' => 'nothing to update.', - ]); + return response()->json(['message' => 'nothing to update.',]); } public function followUser(Request $request) @@ -83,14 +101,14 @@ public function followUser(Request $request) $following->save(); - return response()->json($this->getWhoToFollowData($user), Response::HTTP_OK); + return response()->json($this->getWhoToFollowData($user), ResponseAlias::HTTP_OK); } - return response()->noContent(Response::HTTP_OK); + return response()->noContent(ResponseAlias::HTTP_OK); } } - return response()->json(['error', 'Bad request.'], Response::HTTP_BAD_REQUEST); + return response()->json(['error', 'Bad request.'], ResponseAlias::HTTP_BAD_REQUEST); } return $this->unauthorizedResponse(); @@ -104,11 +122,9 @@ public function followUser(Request $request) public function getWhoToFollow() { /** @phpstan-ignore-next-line */ - if ($user = JWTAuth::parseToken()->user()) { - return $this->getWhoToFollowData($user); - } - - return $this->unauthorizedResponse(); + return ($user = JWTAuth::parseToken()->user()) ? + $this->getWhoToFollowData($user) : + $this->unauthorizedResponse(); } private function getWhoToFollowData(User $user) diff --git a/app/Services/AuthService.php b/app/Services/AuthService.php index 0607de90..91be171a 100755 --- a/app/Services/AuthService.php +++ b/app/Services/AuthService.php @@ -5,36 +5,27 @@ namespace App\Services; use Illuminate\Http\Request; -use Illuminate\Http\Response; use Illuminate\Support\Facades\Auth; use Illuminate\Support\Facades\Log; class AuthService { - /** - * Authenticate the user - * - * @param \Illuminate\Http\Request $request - * @return \Illuminate\Http\JsonResponse - */ - public function login(Request $request): \Illuminate\Http\JsonResponse + public function login(Request $request) { if (!$token = Auth::attempt($request->only('email', 'password'))) { - return response()->json( - [ - 'Not found or Invalid Credentials.', - ], Response::HTTP_NOT_FOUND - ); + return false; } - return response()->json(['token' => $token], Response::HTTP_OK); + return $token; } - public function logout(): \Illuminate\Http\JsonResponse|Response + /** + * @return bool + */ + public function logout() { try { Auth::logout(); - return response()->noContent(); } catch (\Exception $exception) { Log::info( 'Not found or Invalid Credentials.', @@ -43,11 +34,9 @@ public function logout(): \Illuminate\Http\JsonResponse|Response ] ); - return response()->json( - [ - 'Not found or Invalid Credentials.' - ], Response::HTTP_BAD_REQUEST - ); + return false; } + + return true; } } diff --git a/app/Services/CookbookService.php b/app/Services/CookbookService.php index cc645203..cfd62cb8 100755 --- a/app/Services/CookbookService.php +++ b/app/Services/CookbookService.php @@ -10,7 +10,7 @@ use App\Models\Cookbook; use App\Utils\DbHelper; use Illuminate\Http\Request; -use Illuminate\Http\Response; +use Illuminate\Support\Facades\DB; /** * Class CookbookService @@ -22,48 +22,41 @@ public function __construct() $this->serviceModel = new Cookbook(); } - /** - * Return all cookbooks - */ public function index($user_id = null) { - $cookbooks = Cookbook::with([ - 'categories', - 'flag', - 'recipes', - 'users', - ]); + $cookbooks = DB::table('cookbooks')->get(); - if ($user_id) { - return response()->json( - [ - 'data' => $cookbooks - ->where('user_id', '=', $user_id) - ->take(15) - ->orderByDesc('created_at') - ->get(), - ], Response::HTTP_OK - ); + if ($user_id !== null) { + return $cookbooks->where('user_id', '=', $user_id); } - return response()->json( - [ - 'data' => $cookbooks->take(15) - ->orderByDesc('created_at') - ->get(), - ], Response::HTTP_OK - ); + return $cookbooks->map(function($cookbook) { + $category_ids = DB::table('category_cookbook') + ->where('cookbook_id', '=', $cookbook->id) + ->pluck('category_id'); + $categories = DB::table('categories')->whereIn('id', $category_ids->toArray())->get(); + + $flag = DB::table('flags')->where('id', '=', $cookbook->flag_id)->pluck('flag', 'nationality'); + $recipes = DB::table('recipes')->where('cookbook_id', '=', $cookbook->id)->get(); + $user_ids = DB::table('cookbook_user')->where('cookbook_id', '=', $cookbook->id)->pluck('user_id'); + $users = DB::table('users')->whereIn('id', $user_ids->toArray())->get(); + + $cookbook->categories = $categories; + $cookbook->flag = $flag; + $cookbook->recipes = $recipes; + $cookbook->recipes_count = $recipes->count(); + $cookbook->users = $users; + $cookbook->author = DB::table('users')->where('id', $cookbook->user_id)->get(); + + return $cookbook; + }); } /** - * Create cookbook resource - * - * @param \Illuminate\Http\Request $request - * @return \Illuminate\Http\JsonResponse - * - * @throws \Exception + * @param Request $request + * @return bool */ - public function store(Request $request): \Illuminate\Http\JsonResponse + public function store(Request $request): bool { $categories = explode(",", $request->get('categories')); $categories = Category::whereIn('slug', $categories)->pluck('id')->toArray(); @@ -90,45 +83,32 @@ public function store(Request $request): \Illuminate\Http\JsonResponse $cookbook->categories()->attach($category); } - return response()->json( - [ - 'response' => [ - 'created' => true, - 'data' => $cookbook, - ], - ], Response::HTTP_CREATED - ); + return true; } - return response()->json( - [ - 'error' => 'There was an error prcessing this request, please try again.' - ], Response::HTTP_BAD_REQUEST - ); + return false; } /** - * Update cookbook resource - * * @param $request * @param string $id - * @return \Illuminate\Contracts\Foundation\Application|\Illuminate\Contracts\Routing\ResponseFactory|Response + * @return bool|int * @throws CookbookModelNotFoundException */ - public function update($request, string $id) + public function update($request, string $id): bool|int { $cookbook = $this->findWhere($id); $data = $request->only([ - 'name', 'description', 'bookCoverImg', 'categories', 'alt_text', 'tags' + 'name', 'description', 'bookCoverImg', 'categories', 'alt_text', 'tags', 'slug' ]); if (isset($data['tags'])) { - $exisintgTags = $cookbook->tags; + $existingTags = $cookbook->tags; - if ($exisintgTags) { - $exisintgTags = array_merge($exisintgTags, explode(",", $data["tags"])); - $data["tags"] = array_unique($exisintgTags); + if ($existingTags) { + $existingTags = array_merge($existingTags, explode(",", $data["tags"])); + $data["tags"] = array_unique($existingTags); } } @@ -146,34 +126,23 @@ public function update($request, string $id) } } - return response( - [ - 'updated' => $cookbook->update($data), - ], Response::HTTP_OK - ); + return $cookbook->update($data); } /** - * Delete Cookbook resource - * - * @param int $id identofier - * + * @param $id + * @return bool|null * @throws CookbookModelNotFoundException */ - public function delete($id) + public function delete($id): bool|null { $cookbook = $this->findWhere($id); - return response( - [ - 'deleted' => $cookbook->delete(), - ], Response::HTTP_ACCEPTED - ); + return $cookbook->delete(); } /** * @param mixed $option - * * @throws CookbookModelNotFoundException */ public function show($option) @@ -184,16 +153,10 @@ public function show($option) throw new CookbookModelNotFoundException(); } - return response( - [ - 'data' => $cookbook, - ], Response::HTTP_OK - ); + return $cookbook; } /** - * Find cookbook record - * * @param $q * @return \Illuminate\Database\Eloquent\Builder|\Illuminate\Database\Eloquent\Model|object * diff --git a/app/Services/RecipeService.php b/app/Services/RecipeService.php index 6ed353e9..0e2585e9 100755 --- a/app/Services/RecipeService.php +++ b/app/Services/RecipeService.php @@ -16,12 +16,11 @@ use App\Utils\DbHelper; use App\Utils\IngredientMaker; use Carbon\Carbon; -use Illuminate\Contracts\Foundation\Application; -use Illuminate\Contracts\Routing\ResponseFactory; use Illuminate\Http\Request; use Illuminate\Http\Response; use Illuminate\Support\Arr; use Illuminate\Support\Str; +use Symfony\Component\HttpFoundation\Response as ResponseAlias; /** * Class RecipeService @@ -33,11 +32,7 @@ public function __construct() $this->serviceModel = new Recipe(); } - /** - * @param $user_id - * @return \Illuminate\Http\JsonResponse - */ - public function index($user_id = null): \Illuminate\Http\JsonResponse + public function index($user_id = null) { $recipes = Recipe::paginate(100); @@ -45,39 +40,22 @@ public function index($user_id = null): \Illuminate\Http\JsonResponse return !$recipe->is_draft; }); - if ($user_id) { - return response()->json( - [ - 'data' => $recipes->where('user_id', '=', $user_id), - ], Response::HTTP_OK - ); - } - - return response()->json(['data' => $recipes]); + return $user_id ? $recipes->where('user_id', '=', $user_id) : $recipes; } /** - * Retrieve one Recipe - * * @param $id - * @return \Illuminate\Database\Eloquent\Builder|\Illuminate\Database\Eloquent\Model - * + * @return \Illuminate\Database\Eloquent\Builder|\Illuminate\Database\Eloquent\Model|object|null * @throws CookbookModelNotFoundException */ public function show($id) { - $recipe = $this->get($id); - - if (!$recipe) { - throw new CookbookModelNotFoundException(); - } - - return $recipe; + return $this->get($id) ?: null; } /** * @param $request - * @return \Illuminate\Contracts\Foundation\Application|\Illuminate\Contracts\Routing\ResponseFactory|Response + * @return bool * @throws ApiException */ public function store($request) @@ -130,12 +108,10 @@ public function store($request) 'resource_type' => 'recipe' ]); - $draft->save(); + return $draft->save(); } - return response([ - 'created' => $created, - ], Response::HTTP_CREATED); + return $created; } catch (\Exception $e) { throw new ApiException($e->getMessage()); } @@ -144,7 +120,7 @@ public function store($request) /** * @param Request $request * @param $id - * @return Application|ResponseFactory|\Illuminate\Foundation\Application|Response|void + * @return bool|int|void * @throws CookbookModelNotFoundException * @throws InvalidPayloadException */ @@ -172,18 +148,14 @@ public function update(Request $request, $id) ->getKey(); } - return response( - [ - 'updated' => $recipe->update($payload), - ], Response::HTTP_OK - ); + return $recipe->update($payload); } } /** * @param User $user * @param $id - * @return Application|ResponseFactory|\Illuminate\Foundation\Application|Response|void + * @return bool|mixed|void|null * @throws CookbookModelNotFoundException */ public function delete(User $user, $id) @@ -191,17 +163,13 @@ public function delete(User $user, $id) if ($user->isSuper()) { $recipe = $this->get($id); - return response( - [ - 'deleted' => $recipe->delete(), - ], Response::HTTP_ACCEPTED - ); + return $recipe->delete(); } } /** * @param $recipeId - * @return \Illuminate\Contracts\Foundation\Application|\Illuminate\Contracts\Routing\ResponseFactory|Response + * @return false|\Illuminate\Database\Eloquent\Model * @throws CookbookModelNotFoundException */ public function addClap($recipeId) @@ -209,14 +177,12 @@ public function addClap($recipeId) $recipe = $this->get($recipeId); $recipe->claps = $recipe->claps + 1; - $recipe->save(); - - return response( - [ - 'updated' => true, - 'claps' => $recipe->refresh()->claps, - ], Response::HTTP_OK - ); + + if ($recipe->save()) { + return $recipe->refresh(); + } + + return false; } /** @@ -279,9 +245,9 @@ private function validatePayload(array $payload) } } - //descriptin length + //description length If ($description = Arr::get($payload, 'description')) { - //todo: ai enabled giberrish detection + //todo: ai enabled gibberish detection if (Str::wordCount($description) < 100) { $sources[] = [ 'description' =>'Description must not be less than 100 words.' @@ -291,7 +257,7 @@ private function validatePayload(array $payload) //summary length If ($summary = Arr::get($payload, 'summary')) { - //todo: ai enabled giberrish detection + //todo: ai enabled gibberish detection if (Str::wordCount($summary) < 50) { $sources[] = [ 'summary' => 'Summary must not be less than 50 words.' diff --git a/app/Services/UserService.php b/app/Services/UserService.php index 7cbe0791..02bd40d8 100755 --- a/app/Services/UserService.php +++ b/app/Services/UserService.php @@ -4,14 +4,12 @@ namespace App\Services; -use App\Exceptions\CookbookModelNotFoundException; use App\Interfaces\serviceInterface; use App\Models\User; use App\Models\UserContactDetail; use App\Utils\DbHelper; use Illuminate\Hashing\BcryptHasher; use Illuminate\Http\Request; -use Illuminate\Http\Response; /** * Class UserService @@ -28,20 +26,13 @@ public function __construct() */ public function index() { - $users = User::with('cookbooks', 'recipes', 'contact')->get(); - - return response([ - 'data' => $users, - ], Response::HTTP_OK); + return User::with('cookbooks', 'recipes', 'contact')->get(); } /** - * Create a new user - * - * @param \Illuminate\Http\Request $request - * @return \Illuminate\Http\JsonResponse + * Create a new user resource */ - public function store(Request $request): \Illuminate\Http\JsonResponse + public function store(Request $request) { $user = new User([ 'name' => $request->name, @@ -54,43 +45,31 @@ public function store(Request $request): \Illuminate\Http\JsonResponse ]); $created = $user->save(); - $serialized = $request->merge(['user_id' => $user->id]); - $contact = new UserContactDetailsService(); - $contact->store(new Request($serialized->all())); - - // dispatch(new SendEmailNotification($user->id)); - - return response()->json( - [ - 'response' => [ - 'created' => $created, - 'data' => $user, - 'status' => 'success', - ], - ], Response::HTTP_CREATED - ); + + if ($created) { + $serialized = $request->merge(['user_id' => $user->id]); + + //TODO: hand this over to a job to handle asynchronously + $contact = new UserContactDetailsService(); + $contact->store(new Request($serialized->all())); + + // dispatch(new SendEmailNotification($user->id)); + return true; + } + + //TODO: log some debugging info here + return false; } - /** - * @param $q - * @return \Illuminate\Contracts\Foundation\Application|\Illuminate\Contracts\Routing\ResponseFactory|Response - * @throws CookbookModelNotFoundException - */ public function show($q) { - return response( - [ - 'data' => [ - 'user' => $this->findWhere($q)->get()->append(['tiktok_videos']), - ], - ], Response::HTTP_OK - ); + return $this->findWhere($q)->get()->append(['tiktok_videos']); } /** * @param Request $request * @param string $option - * @return \Illuminate\Contracts\Foundation\Application|\Illuminate\Contracts\Routing\ResponseFactory|Response + * @return bool */ public function update(Request $request, string $option) { @@ -115,21 +94,12 @@ public function update(Request $request, string $option) } } - if ($updated = $userRecord->save()) { - return response( - [ - 'updated' => (bool)$updated, - 'status' => 'success', - ], Response::HTTP_OK - ); - } - - throw new \Exception('Not saved.'); + return $userRecord->save(); } catch (\Exception $e) { - return response([ - 'errors' => $e->getMessage(), - ], Response::HTTP_BAD_REQUEST); + //TODO: log debugging message here } + + return false; } /** diff --git a/docker-compose.yml b/docker-compose.yml index 40cfe4a8..b27d60d0 100755 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -9,6 +9,9 @@ services: - ./:/var/www networks: - cookbooks + environment: + PHP_IDE_CONFIG: "serverName=localhost" + XDEBUG_CONFIG: "idekey=PHPSTORM" db: image: mysql:latest container_name: db diff --git a/docs/images/add-new-cli-interpreter1.png b/docs/images/add-new-cli-interpreter1.png new file mode 100644 index 0000000000000000000000000000000000000000..2c484259528fee583dd4f59be763b9c2869c91f5 GIT binary patch literal 20327 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 literal 0 HcmV?d00001 diff --git a/docs/images/server.png b/docs/images/server.png new file mode 100644 index 0000000000000000000000000000000000000000..7afb07fc2c1fd416abe0e476d8d96a2671b1b5fc GIT binary patch literal 93211 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 BN@f56 literal 0 HcmV?d00001 diff --git a/docs/images/test-framework1.png b/docs/images/test-framework1.png new file mode 100644 index 0000000000000000000000000000000000000000..a4e84902e482e4b95e51e072c7cddc8763411229 GIT binary patch literal 62248 zcmZU)1yo$i(l(3??(QDk-Q9u{++Bmi;O@amAh=r~xD(vn-8HzolW#cp<~?`)|Ex7@ zOLtdyS65e;JUc>JQ5p#zA07-03`yprgbElK1Q8e*xB@IR=uH9iS`6sHz*<~fSw>u( zRN2|V!rImx42D^0%^u(%K`Oe=Hn7# z!`mwIP94)SF!~QElQ*qs(NaImLeH1keJ*$n!e9H^^o-x!_O0B1{f^OpS#$VV zA;DHT@)ED%+EdrbNk_O=g&5u#;w=wH>2u)tvwt6Xz{W>^Ej1kuVFSVa*qV{-g*ouAv)S=EoUOk zK2i#M_=N3Z_U@`GI(s_5{e=#Htp(>Fs2;)dug%!PVWki^SjWqoa2}0YSL2iNr~9=P z&boemmGg@jL3frbOh|#xV06z7uYR9bzO!HY2c@4-+me`LJ}Yj4gBY%1t|eokpa4b( zx`zb=54Q#bfbQN)@IiktFvxFVU@)L7I_NKv1M#;Mf+z>_?>)G}dqq)IaTyuVRn^ql z+}z&9$^oc8bFcv-HE*q^1=LcI=QDM%V=^{#FfnKHuycHG0w&vUmCKv_KPNelKBWWny9eKiZ(C z0`G76l&w9?ZM7w=?Lh1S^&!O0&Mxpz{r_Ldzdim>ORaxfa&oZ#Z_EEF`Tw?5cQJPs zcd!F>2^9KwW&Ydve+&QHP=NV;=KsTq|FHR=w;(?MifLB_yPSGuIB{p9?hH8VNe!oY2>NPX3&~zLJqX{7@I+7JaUUXG_E>L3a4rM4 z;{^Q2CsTbaR}FFN##=?49QbBpFWas&o&2{%PCXZn%X)tE`kud+YppDFbX+gN-UxWi z@MgD(?6zLF9>Z~-Df~F~Cf|&SV?Sd)d2NKlbf4c^s=>M*ckh1$-?<%BoSe|G3_29`n}NA?bsR_QZTzkg=VDW*c_qHjck&T&d8!|c zMS~Oct|I9dD%P;7hEtTCVY0t)3%0g#7Kh)Hj58g@^rbpG|$)1>4JC z1aIXfD;|S%d9Swia0cltAAZtLBsvtFJ7D6o>jxQjcT360z|}{^7C|A9Sd8`C(J?aS zn<$Pm0&y5FcTJONyW=1OB!waTO8KYFAe!G zt;vtD5=PcgD<&;KnVi958dh?|B{eL z{Sp(A+h7YnrJ|2HzE5KrJk{G<0ZfRI3Fgf}K*d=IG%+#p+?;16nVaKu_P}kJ&ue$o zbE#y`sHQ3Z&(u5HBEZ_sFE1}=f4Nu+8IWhkrP0^{Nt<0yWhVr#Iq2bs57+M3lY96G z+P+d%C>Mks9eqBU%!T|8y;P2lhbN=&ImyD~%9n8%=wDq;1US)I&?Z*IH{9AY$gUK! zN&Cy+O^F<7XST6y;W+BwPHxTy2E^rBzht>A79;#1Xf}R0kkGY#k{yU8!TEV`(7@sR z`y(6)ud^B;W}IPmvn9f9x!z_V;T2w(lWW6lsSSdRjIWt!ZvIL50zoB%Ik1P91C}BO z+>T{o^%!B^e@yc~%dZT`Tf}yr${UbCE&lm4&t~CD67p+eqQv#yI1*e=!S4@gEPetp zcS`|XG}6S)_L}E2 z0$K5J#9aHe=1b9xKH%9Z?{c*Z4icU~N`EXKg{!IOULlTQPG*bSR4|HwQR6*JHnQK# zqSJ7*V_<(YF{9YnFPDAmmj@>f7K-4wR+{Z&8IyC#2f;YBH>P_4F@s1V6n#d(rb7jpz>sD~?Y|-!=uH5=kA~s0H(JDQIiX@;PyG5eBaF&H z;`mTJks_qutyyVM7!m@Q{~WzF^-*)pCp!Z} z?lj5`Og|FL;V4McjF9D8@ybt#0x zzf#uYaM~Og6QlZkbGTDWFqx5~*Wp)EQvgW@fG&T1tkK}HQctSX8rt=qF^v>1h;CTcs<$+UE+E`8zHSBLNG8H&TKI3CS{s6`!+n z#bRIX?ZIqGLNBvH^9Oo-9A=&NPaGn+U03k7tkgmeIg?@(L6^U48j5K35?9SfIAPdd z%eKLd!)0lZb*+Mbf!4L^&8GeD-i*)6Qlxn3iJ_p@sL)Xuh|A8YZS6JTfM=oX#9lUA z&vibUwXR<1;#E{s0AG?jUcc!jrH!_H+N67o{HkX_#hac=OY$c=8pyi=KSJ^lZjJ^^qoolT z9B}pGvXOUt%suEVtFB&n!l2)|;^cm^C_~A_M~1w$zu6_u;cm~i@)`I8C(FM=F+wyL zdb%J2qc0W!@zqHS`ZFE1d!?3&icvKrjK3&9+Nk=1S}mIO#fo*hw{KT}$>U$84Q9)z zQ9DJ+LBt~r>4w7-1i@YJf4OT?oxC{EB6D}PM$chwYY83***!RIK4QMK^YX|LL`H2( zU-cnqjdJl4;u!^&SnFq3%@|_?Mj&M7uC9}RDMHnh)+qny*sA$$MCNPT#i}VGSHcb7 zf@~fqv7?|hxH>|upW2P~Z3UctO6kvGF-^WN2gY7+eaQ#Ehg88=F5FX+X#u%_&mV9n zL$=ereRHElt^e-~B%Q3zceTQyntM}x2s46cfvc_Ui^!<1zc66xn%AVT;yDZs-JeL8 zd-ZIwMYB;uJ`oma^SaFogk&#R+^7$GGJWuH#r>+G4yDNiu;Es2Z}ToxP%cHb z;YTSTB@B+8k^lnzak z3wF$e#xo1j?yKHo|J^;xfHZ1|MYpJHK9vVC%_*}gY)FjPZmPN^*f5F2DM!Fc8+sY} zzefRP;9e-0+klxxmJL^C?XALJL|{ zQcS>b)HO|!_<-`q?^5r?1F-`G^d2m3)o`?QdJX0IOa2a}P8o3HScUx*K4VY+*S=vy z0$(W#{&-(mS0|ixr}=kqRx+?WA+brbcBiHPj;xLYaDpMDt20pF@$bMUYf!5=iR_k( z$*f17W~?2s{%dOmCWQu=-ph_0HQj0arK$|j!G>rk60dA>(Dvs!{jaqVKt4H*>bM9z zxRRB7-m&)omqLh$8o>f%ZI?XXvXrFCeQ)e6Q!``9tF+t`hK*r52E-(dhKBmgTo8ep zzUoRwbCK_-cO{xLg!ZMzAr;A49tMEiM89xV(x8!Qp76)KE>I&v#LVmiCGd;^;$^or zPlH#ADDj{9y`dVV$4(}x=WNk1Flhw#kbFz4fDH)%1Gu$Hdt}ejzO&1*l5Df;5LN)l zP%>K_M#1tit@ORhI)#27A~+2tsP90HaFGz*2{bd`!Z{>;n1a8Ir-5)s2XDWKanSEl z`ZB`cUgNTy^gnDR2IP_2aD@GARP}+N{Be_q?3C1Ht$m0zJoZb1QgT5TMTZalUm+{z zhWHfY^vgDG-M7T%-mE#%HFi8(kSsIe7+1;n`G@M;oL;l@rC1w(F%*cCImWOO5)#T1 zW`MPyZIoDR&E}8eI--#KnfsZ${Z83Zf zTaNE*O}Y3e1b9fGSz`xwyp43^6c^L9OikCYHK+J~)hII%-z5xV=Wuv^;s)Lxsi)sD zznw_Ww)=W}?XTS*ZWqdNWs+T}Cl4X)HQKFc2pM!8$iKDzaN+hhgWGfKc0L~iI$ae~Q}>TBSsy$seI72UK}MA4`ELyZ2b{Iour+^@wN_8n&{&OU zP5b4*>LN%8X#$U1XDyXqK3f^#oyK%Qs6hgg2W(NIlD?9gXQc7z>D0RG2?+^S7n`D( zD`ZLQ-had=#+w*N1gG1mDaqz`KZ&mmQXt?=;zV_r#KT;s?nDahmMDIUUTy{?-kZqe7jre{K+bbI zbF+e(S|wr0Ht*X!#Y{dGnW2~}?&oYf4Bz%hmr8~Mp;bLiFO%C;*jCwB<4-#I)cNpqK)tl4ijs}YIV zLXulPA6|UTuSJTQ7T$F)haiNc zWZyLG3Fh)Z?;?r$hjn2f&D!s{A}1bE&Ugeh%^c^!=aUiU!+K4FA_0SOUf(BqmaBkA zBG0Sq8&xG`f$Tf4y%X)o?ZR|XNcLiO1a*f$cSMg>j`d^DJbp z?(2$m3a&$IOdo?0c<+_?Jh!E;N zI1}euwJIYcQ~qx|B$2OU-wH>x#hsE2EMt)S<3XO}CBuox#|!TM8O!nMvQ%~n#{lS3 z`nZzT)(muXbQ&_&z;Dg&32tOyg@v~X%~zhDNABls19l73$CYh#_(?b5kTl6qXguev zqVYk&nG>pIYY|aV`A7uZQx*Cxl!B<^V#;wOhTW2+#s$O*R$uwQfNivOm(MNa1V@?Z z+Gf`QS@CZTR6{RyCfcomWY>v^aL}dNKa^BR*5|%udiJ{t4H6NSa}~m_2E(Q>UZ$`T zzyz8OO`B7Fe%`oU4Ip1V9RK+L|>Vez?vxPaTqj8qu2DKn;YvrM@g9V5$&@ z@jBC1(hVRMcouRyNwFfRx?v4ZCfbD8Vh^}9DWOnvzgcuzd8i*X53v~*Q#A%47l=Y$ zb%wy@IR#9WIYEnKR2prK;NED|Zi2VNJ!3V&b1jC5ry7|GIBt?M&-{*3W)DfW$QkOs znwh0duvV4|gC(g79I{ON+7m9BKFb$iF-NtCHQHJ<_W|w8H zKJ!a;AXLi#-FP@et3v)mp)=H?ZbTEY3)n}-vP2or;@{7GO&MdiB)^AY&uGrLeS#Oh zeb@mWTx>xzm*?2SqB`Q#)LLJDD@2ctjom{L_V3j0{JDj4yl=>~SNN65wqq(hStD%F z8B%EQhhiqS*NX%|TXDJBw*^MXO%%{NUm_h#s0g{_x96-FYX!+yB~o`VB`pvcf&s@R zH5*DKHCYgi&nuP`?RK(CJHk#Og-Fft-P}beqhy2uiwr3ZlZT;Waok4UjSq&Yc1(UE zi?+^aUBKX*r&3aySl^O%T-Z4yKx<~p>*rBpGr83kA+l{$AJg~QH@v)W^z`(FWwk$w zO@DYCO_jz?>I=l}CW0wlwuQFEYM?dc!QX^} zap>lRU1{VB#a8I&&!4@MbwmiZfuNQ2yO@%`8E)(tlM`M$G&UfAen?QVzB%{=?u4xN zqeDPn_A*?4M1CI>p>JV$S{Km%1uO+%5pXc`O4|2#0oMuK(f8YNAd=)Q^) zlbXJW`;c3EEe^||-;np_GcebF2wjI~SVaXnB8o~_Ri~_?B1^z!m$(~3Zcx!V4bDNx zZYiG}@wG5;kwI|H|AMrz=niWouB&yYr*hI5{{}Z(hNJzv=jJ5YlEO47eqmsNr)0Uf z2O*VePlv%Klw1l~S4yUc!X>3_;t3f9StpRJrxO#E%oI5p2-#+I4<6nu^v9$c78dg9 zhfJEb{qV?$DI+RDex%FI*mnq&k}Aor>BT5!0qPOj1S+Ay7B@GT-lb2HA4LuC2+6S2 z@+_i6(!mcQ9kNZIBXJD;f*A|eK1-bw-=EK9GBrm>wO)%w+#h7ha(?GN#Lrg#sfgCJ zfOfD(k;+yp7{k-XO3OT+pMpGJ53%lve;+6EV?49iPED7$rzf3`jZQ`ArLT{&)vjTc zKRw?6dEO39_Q-6W9h_g%v9_x6?ns*w3g5KJwfg`wVFJCspjwY5gP@eC{KqaCDfPGY z2z$d{DX!FMQ(W&R4Y4%o>&=Np~t_UKGb|KrDSC;`ZSAGD)BX$&O|>pyU`8V!(#D}Vn+198s) z;o*NlyydI%f4#LAF!mE0HL8sVE~MzWW6zuF zS|-cIiWM}L$Nt9JI^VtyECK(!>(y?^1_kL?r9Z|O=FtxOo>1}U1y1wk-Qzx%P6-Y^{7Ng0theErU9y)B?GxG84rbkq zQ|_=tjMdM}mLRVJjM zy2kPNwiUCJ`6axy)tQYMs7)^|M5rbb zC09c}#pQAX*P{tIK#wj@gW>GfR16U>I}A}AAdcPNmZj`}nB7O2KtEy~*UTJbzr|mk zzj#SyCD@3b>diEDE%Ka6Z7sSv-Nl+IDYBJ6)&Tj9{oxv41RDhed~(%WOy>&WP42HnW$%d{*OaQudS7k`?1nG&Z+nj{ z?V>~7gP`mUk+I?9IG_CDLs4rBgV@q6lWs{SSR}LHPq0{X(5Cu-JSHi=;R<6`L zk4ke(R$?0}AC9m0kK0(z5!dbR0iCV;d-^U{&=kK@1RlaPc@8rkWAOG`G%vE}w))Go zj#WUjhYJqmNrhcZV8M~whF#}H;Zq{(XQ7>tUA5Uxitozk%d&Giu6Pm{ z_Nw2yG`<{mNpcBW^PRj~YucUzMYu8D3|3V!BxBo~Lxk!|3}4``kx*gWZ-(jQnHTii43DTvv0q*SbEkJR9SO z8Te=l!lwHd5!3rc%`j>pYfzbQwtSIa)$R{LQk7VpOy!^-x5GC{b~soyXMnF`JSE`U z$#+5CXK+{+Ymni#UKVmxeG$wizIWO7vp74u4yTknzekyj#Gorg#kaqG(6umIGts6)RdiK(hpLD5A zB%m-XH!3Dl-4M879kF+yW6YC3h0p1l3HhzfS%cDap7wg}&s*{P6JG7Bo{hTC*ZY_4 zT03qg0W2N>pB?$dLjt}YrRX@eu<=9(24Q%1*pXlSmMXKL98BO|U_b(%$2|?M%Vqve z{Aa|O%K@V@A1d>^%_4Admw`-UannM)9qArSg$bm}>K86M(s+<0ebLGonx!t``r2^b zyNbu3`5{TESIDdxdJM4)Qa&mIpqUT`YM~p+11M-x>mu;Mms;7Mu zwJ#~$1{R@QJ6A886nF%h?e_y4I7K1O#pg+Kw*+{2){Su&e_9_mNWZe78wElz=8|Az zxFFzC#mbbx5%g2Le#BFwQvbp%TIY{I*7JdPQaj(!(^6g9zl-WJriSe%a;x2r8Z6=ply%xRK`UhYkF1Kwt^1RFRC;kVt~e!DvP z?>;FL#5y9h({)#Qd3ik)N`d6XI)_h2DeqdMxC6u9w#fud9LL*!5oRO35Tk_^>i@tB} zoySd>Ty;VJGfQHBLxz^F0XZa52>=RW>OjmrA-JwG8cX~*-nWP#SE6;=YrlmtJC8_T z9<83zY5aHXS%Stg+Ua9kE!TJGcM(hiEB?qlZ~NO|DEAoZu|XM}@3`lbF7OKrm2i6$ z;(GSW<$YQArY2$ILvmk+&%&XFp6k^o;~Y1I4v~Fe1@K+H`n~-Q9!V2=Hg@;nIj`SG zxdL2NdxUb9e3Uu1mwF5KS1iYW{Bs` zn&ZraVxj=pQGYw*jvo|u7RZ0|NlM1b5P ziyR|4L=%UEqG->MzW{x)VYH@iOlkHk8V-&$>&w>tZhY*EvY!3AdUHksy(s*N*24&z^jez?I`!anx#r4rnf*mt302c615Wz{~ z%nTltCIbTc0G0djOHWeI>1tVjW)T@kp*K;Z85wk~l0T@0JR%m+uebiFX2Hnq;pK;K z+;*6^!`y;^2tyM9nMcj>B(d~#blA?ef1)C+_sM{(+-9gqA6*c*7V~fhp?=aU^Ny(k z@FN45x5(pJw%4*ex60jThHtT1;*T(SP>BO6As5X0 z;G1LG#~hI=Sugu<9?!6>JJwyrTELAV#bDmb^4l`n1Ts(&lC$-#w zzlOBNhoV>sWt?@vnPz+<*_u4Q`lOWr;(B1fJpyxdxAes7Aye#juv7wQ^N66K0*+{e zSXrHHI7a~k7g*dRpY`6*L&Hc=LHQ9ph`n9zwVLhuC#N^BG!^66|}x$M{X zj5oGq4)NIOHs?TTAQ@{sENpDg6J;kA%dCm3Nx#uFq0m7_7ZKABOo(AdrX_!jc;Ky@fRk%)P;%sFM5JnT8J0|NA9d!`+Tby7;e zDzOL~QCFlkZ*ik?SxltK*m*V{4A0p}T(CgE`n=c_n<|7yl|1fSk~M;Nna(ZWlFjIb zX!I<#D$INHQjSKZw6Y$3E7A8dTPFRX|)qs^?M!F_u`JvkMaC1vsfOh4mQLh*;UpgiS{PlTi{T0SD zPlKk<2*#cJgMx!VS{})(%JcNAc=#aCN<&N@m%#kbVY-NYgSMYy(#0sTKIe?u;_XSJ z{Hxs|x39hZsIc{lZ(C!*Vs_&=nX7HnDOgXRKO}NEv>%p68{#9-w|p_=OBaKT6qzBN zR7QgF3f*7u7TYodlWO9!-n&fZ!Qr|r!rNLa#R~ruLnsujn8hbv+VLjE_l?yEOi;id z+1v~<$8KZo#hv(AWt+dT5mk$$#o?ZFo)_IJ^TL8ma;K3>$}OL;4i zAT$hj`!hb))y979L_2EvR2d%oV`tTepPScJvDpGLx{dbv)Wn7o)~_nNdSxW97fM!_ znsNsg=9FV;LcuB?(zI4_#KMXM-1g`Ke7&wY+y?%jlmnjvB#gx*r%?PwFp5wf97eyY zrzbCwkWT@!z0W=To`n0v>+g*+ggl7bPLeSt|2MffleYtbFC2NW94>&2gn&pkn~^3o zmJEIOBF}I%_afer`dP<;SSM#(&|X?NAv2;iex%FW-bR->p06)u;NJ{397nvGO=YjM z8(>Ob$AgtP9_^VP3`JO~^PAB~Oit*^zxOeuX!u=KX9_W(?H3Tk(OH(PrMSM z%nrxE5r-ct20?x&Q=zjzEF+wkS^nswyubmMke8v^7cqQ`U-U|aG`a5>y^gt(!7Skp}gTFyD#>T%IArG zD}N|T;{TMY@cKJXdN*~k!KE>JfAKPbgT)stjyb8K#sc6!V)Hof^7};>#@pfqT1N{k z+{WHCxBN@;Rt~KfaH~gcXkrzVL@2Q_Ay+U)9C)dRV?8bLZEdf%VzAncRVfP$c&8eI0v@{bkn7!$-CK0=|f^ZhA0i?umx z>VPBC0QYHFVjOx?o{a+uUYgH{a_NDGL0GPbTum9f41xJ!j5E3kkQgoB(xp+Z7~qee zd44@~heiRPqRo3I8|*k3Q@F$FJT1cF3{Avv@P+N8Gi-e>CXG>OAf~n<>mA?pe*Uc3 zqfCsM%@t>8^aXVWd(TR1dX$?x{ws2cVmKP}U^+p4*>=U2*1Kt4TV@tLBg9LHpSu*K<9KZ|+HCW;I;OWia z)@=Hz4^s_TN=keumoP2x_o7q#%_KgGo3z+N>ySqr33r;i)_B3a(2K+ya;^|N8L)8a z+h!(@*Y9H3WDwFsMPOz9W$T*REEQeMN2kM&BOrA86$W{FEHWLl>yPN9;&FDrn|Q>{ zIt&TC9WjC}2oJS?T{kUxzyjIdQsw^#9Aj6tTR2ZgcqFrx$70H})a7&ZE}DS7pDY*#6d7cD)>aNGf=1>-nlun;2@qP7 zAW5-K7ZM>b(W^9|z1j*7+io6Nr-+3@XHW<|x;qgR36Hyy9^QQep|Gnh>Ya!VXjY~X z%}+on&V$|(RbmgG=fFH9ydT#5DcOA_($Va}oOq~w(3cVOlUf|dL$)k z>8M|j==}goo-I#@t(y>hj_yUW6YX-1NGAaqLdf?*k1o#jf^6zLTPWlTnt(Gxh=!zK zL!bQ9`1u(09tTZ507G2ep8Kz8_0D6x<00j!o_OG*uedpO*b?DtKFUPnr=XkwBB%8V z8#=hon)W!UhUSw)2F~U9@&(#efmhLT z2PDVWS2F%GvZpJ_RRX_T1u*dmc5)bl<$ha&;nVUMP6V3OC6O$c0f_59ZK8Gf-V36Q zvr14`iZ&?}^!Z;P2HuS|`bko@h8z}@GIRKlTf-_T`r0fwgA938YzWs4Da}Zammb8< zwAz%^?72MQJnGQji)MSwnImf)c)F<)YN{@LDTW8-ETk;u4~LV_FBz zA-AI%giF(^&yeb!MMVQK2ToA=H7b7ZJ^dV~C@(HZF}eo}Zr!0)^!m-1!mo=cQdvtH z@>JD_*`Mr~>A3(lPWH37?1Bcv{zF_SaoHA%8CKI&A{a%J&H^H~98G`yj(HkgGO6)& z##_875I0mVUd1P+!e)4;uv!yI+C zigcSI6yv(-(BR7b&dEk9l2!1LZ`?~#rsHMWCi{VwzI!*}G}-kyBbsF&VDBaY+o?lC zzsN7c_a~?qZ3En}39h!c)fYV;T(0-WzB{LLIh2TZi-j9&9mMjzdjzGh4;ezu>!0LR z7rP#G0Vok^0y8$fx<59ZKuFwf7}VMseeb(ZQ2seE)qMgD4@7)EYKVNf8riJA_;&lZ z-aaQqidi(>L(2{VjaNMnGbE=)j4L6=;~89`Ty|?rT*$Q+LLd55Q2FTWHI(CipN*!d z(!|BE+I+S_dT8i~YplsTJ#3AFf-ZcRi6IgUg0?8AE$@QUE(&!01Dq!X*(It%zkAL* zl-wE?zt6HerpCxtpRl<+sbOPJ_j*hh&yq=WS-B2wirRkAl3#0ar?jOALn{@g)-~e2 z);MMC!f&8f-0#h=8eDF-xpLx?QH`0Y1MjG6`r=&iI}(jPgvkMEW^n8N+C`akV)R3U zH0{=IfZn`^#5L0g|B1kR_8r?w^ROBC)z4hfPfus?mEN60#;l}jW4tXI0z~59 zoZiJVniY>}!Z!(rx=O;7QX$EnMGfBfLMVitG^{h%(g=*hk#mMKh}e8tzDF`e?UE1i z=bM=zfKUwrL6l{do`j)KeYEi667elXO&rn{DIwApyM)vQ3<|OwwvE=qP`k&cZ7b8K zx}lp@cBSEOeUuh28y9C-D}ysp2_xAWvfD8JHWQc$P=r;b7PtgTZu^{`4EILAjL8Xt zyG4!CJE0pE$v}t(IucXW`HE>|)D^pouWN9NX^8GGziBTOjui!xDzq3q_h5LqZ8M6f zls4*44QW)-GtfEp6<}!D}EhZ=JOywEgjRM)Ec! zVfUxputTBI;qi&yi2!n%-9CFnK#sZfMc*^^MCCuHRBS-?KxdSJL54IAz5ZuMAAsIf z7^flY2H`@Ko&N_O9AlR75o+tBy703H+%t*bs{Md+QG<2$?C>Dh=%}5-kd;ySHN=gK?%5Dgrvn9o{X<7gi@uUiZe`P1PJ> zC<@;D!EvWTc@rDHx905{rr&+!O-)VB=zq9t_d*K7v>)iIEH{i1fM7Ve-QrcMa4%5f zE8M1Hd~botxcCYC^kct6w@ZsCFcTA{(3-?yJvuh$qmu~S;Rp|)lQiRz+XLeQc;aAx zkgi8&cAzxju_-bj%|YeeCd1f?(LlgFZI&P1pCxy2wH}JanBK*vGA3#E#}W^X(6i$L<_G%Br4RMC*fkRPbvS=&Xfd!7g+w|$fAY{zA-?cc3=-=p575UAKJkkyuCOkLd< z;1NM#D_?s$;x}`gpa>Qb7}w!ZJHv7RoI!K@kelPG&9(Og4h*(w$@?=AS#}eaGi};9+>U8%)Lj z0srZh^+ZJ&1yPtl{~;emgbE5B^R|WF`Dg=RppYkW6Q>gOeOKA^u$z7N9*bq{z1OmrYSa@0KKmjL7&#W#v>c($W`i35@R z;qoJxoFo+hJ_h&?(k;KKR5Bg|Ahyg42OOVfQn1Ve*}U0%N1CWrkKx?sRk&eW{QWQt zTz`xWw%OaV7Ka#X52WOFKT(7s6&8OSA;#8SsdgD_+rWnT$bPYeL@Ft3H+TAJ1Ogr$UP{JY(E6RNpo^C~ z@Edl$od0>Ge|q%qP>|Cs+bzvBJs6TiP>YAf5-GIdf=$68Bw|DCF`XPHNHpQJ{3HgVT1;0-rOfcnj1+zWS9Rw%#-Xn~rv3^(a`f%CBx(ht%wO(%W zY=KeX(X!ZvG<}>djP*&G;1r7WK*(mz?iqlkp1z(C67_%Zq1E53ecd9~X3_o7MLDvd z{CQ*D=j2MlIzOcnTFB*20Ew6d zrVZ62@}ty+h|BGqM@ogkX6=qs>L+IvZUbj)IVFLHfL9uwW*1SOCbKYU^ zg8mLfPHzZPo&Ap6uUH(N*b&}e&d+(Zfx+Rimy#c!4||8$SHo{HNj6fwZsnc6&BEOu z&d33xDO(GI<>HiygQEB(bKYPd*yh=$LrdmHg)$CdcZl2yONx2|3g2reH( zFw*5wOJzVXb?F3fvO+W{6yC3Otn{{nhB$YG*ZbpnK|x{$Z;SKsKZ_9%2rWIiW$(`- zR3>VbnCgzBERdwSTqo#Lt`RC$9<`(bGi4Sk;M9^%|Fj2=`xJ5=Od9S~_2wy}6$?Xn zJTiiJ`!Q3(p9KWehd>ZJuIxytloAf}Skm2|hbO&>Q+x8Dy#GvBg@mr-0JMMzs>HxEPts`RA9 z3Q)+p3*oWI0Kl^*G#>kF7jL=+{kT%T+jq18v9yQ>KuOWV%Vb`|R)QgRYl!<~2t}2* z$1Rryk^!j2o-Z|<6|xi>hCtZV-ekBTG#hBgT=j}&>7F6v5_`(6_$5GD!(bdgF}2Qm zge%g7Aa2Q4EzSKFpHcU*eob@HzG22S znayFHxA^h<1usuy69%tlg>uD66TW&Ju8{nCDSgHnFc=0U55C<4gfo)+7Cg^x(zH5y zR7L<5j!Y!R?Xev{#-$smCuRa6Sbe~{+-%36$>YR^TJrnx*nKhxiPYn<5XX9?!7ee? zvjV){>XRg?8i4d;z$czM!kW!(SsYjBaDAU1TD_ErXc>h5?4a8(l?{#aHYYNwRp<)w zD0ZT7BqnOvE_{=jthShu{!QbLI)30pJix?xht=U|v<0P&f<8HonboD4gYU^%SUr=r z*w_uW8>g)3Cw!hB>+(T?G||dr@i`2u^L8!PSG|`vPxKQ}$`FB2O}TG zW@62>3)(0b%`A;FJlS443*m8o%kp|bqobQwCAEv^K&65RBg5UOZ88SCx^lr@*P#f2 zEi|SXWHBDHdQg&-428wgZLrTzS=4$D_>vrPhl0LtQ)tmzgq`Em5PVy18HX6x?RbmH zBqAZ1;GgOi{xeV^0*XD$NsCaCV=IAoe1Ro3d%*vR#)bIjQWE2H+9J?{rCeFAL8SQ` z7#9()A}2wp30z-t57v-kASB0Rh)7G&?spjK=q<*&YG=M99U*P?O!7%w*jZn0#%H7w z0)dcFgsG4!Bp9D+QFQ3w)}r)}Y8T&j_ZW4}WeP22HeH=A-ZN;MmLWyO8W` zW^lK*7F0H}+=EwgK%nkZ*L}wTMymRB$D8#lAYJ(R66Mfkei)#e<%CQ{OB-P^ktIVr zGz3g=U&!32%)=_xh_HYGt|c_jWTe*8P*Q3?NK@UL-lkQS)YN>Fiousbk;hfK%;cBr zxVySNUeOND2O+ljVF%?u*dkf!6VFzyM@<^bFt=N3AeFY?CijCI^Tachcys^!S(bMq zm+TQS(1uZTOOZoi3lA8LVuA<_zc7-)A2+nlhC)vK3VgKY3+##JPD+L`(Vh$&OLU5` zRdV|CdY@YSaJm9D&-Ue0Ccpcz(s*tJ9(=8B z8gcEG^WB{@lm$7o1A&A46x9|OTuu)s|_ zXsHU4B&AX9iYW;^+{7N_4#M z3W_JUULdU>V#&bfH@|TZ+UYE#Ohq;W;ClQKziu(N15m{=Vo5?H@k#4KW|F4gGt#gi zr)Tv`I?jd#EYoRtl=&jIwgwvqakq(>6{Em6Q2NLdj#bR9Qm@S|X5Qzu9@jlh=VB_{ zt?RJ;`eaKK39&fqijes%h!VDZ zDUqI#->O=MS+G?ba@%LX>d0K7N@2nl*B*k;fT!9cL8?IrD9tF_E_*OY-ox~wL!w63 zjLYZ^o83HE$iAJ^QDsdEmF>wElu)S$8Lh7B8Ajcwbu-Keo`Cyi~}PNT-!*v{tJe17wtd1n9H z?Cj0nbN22%Z@iAJGAYadSO71Dup5?8lSjHMA$z(G@F*y>2$){xL$-QBI@4HQ1I~hK z$Rim@Of)-6_te#*|7F8aYn!Jsu=O+oMOIMyAj6h-4nmxN1hN}oNhD&ge{HGVx;<*J z*jQm^^}PAU?RAIax_=N}Zu8yoblG;31`F7RbwKxRTPldZQ^)C9D#jM-B=`$ENqKp> zo02Tzy18!WAokCcYosQwM!x~dwi^Sw%f&W_onNztuXdJ}?6Zjc~V;DQi9(<7b)uHo=fmwtSnHv7cfK*MG{4K-nO%;=K zEBh4bxf*b4zkD5&n3NMR88*>kZ(E*hJS$IBYDg}|71>WxFgAfvd|>);BjyVe zuwGzj9!TGQ@0iW)nxsotdwq2fr$6S2@-wTN96v`GhxP!T8q{iVhYuWpd0go26Vb3X zEaya90rQ$GjGaZ|*FVDWe~fl8oHFGtr5knrN`Xiiv|dt}&t~cQISv?5lkgWltI+{F zHoenFKOcFAMM*aX57r>zzS}vdR1BA|vJpQ^@3TFa7mf<1yj?Czh#1B? z0T5fM?Eu%?P2iqP2pZBm`Az1A`rksYD+o;PV957prl+~4kWhCP^X*zi4XFFUesxc% ze#}$TN!Kia3jjE+=pD8>H`=|6)oDt}o=>n#E>P2Og-1L`#DUu3Xcx*aL;hVfVEsU= zx7Io*Jvmh3>TvcL0xnul^d|@26%|5$8+t}E=6)l&ZO8FED2jJQs0%WP2k+5eVX(v- z*olH7iM?!py@ zJd`P?ffo{_ixrGkny77-4Ttv`nd<=QH$Jt&h^1-++OY9@^(aQcXh~g&`N8g<4#yXW z!rGrNG7AxOb;aDW>P$Z8Bq}Z{GWjJ2F+FM6EAnu*E>5NC0hZg>=f85Us-Zz$`r7@m zGg3)P6ZfO_0&?VaK(wLH{o587^nkq%daViIha`uF-?&Ko^&qqE}2)!-llnTy6FtENUk z7{)CU^MIe!gw#Q8*R+ql0w!^QITVt@*0$~L@J`VtVkY}SSv>hqNC@r?=0@vBB2t>s z8IGc6Ms2fm4S2+&hjUrq*Sp=!Z-obTA>`un5!_`VNa7t;uq&`DS_p^G254fvC=lL~ zi!uZ{%CK@AG{x^9OV!e!WD18^G6x4N3d(Qe+whLc+_$hh6bzib<|s$Fkwqji{vghc zlRfGMQva98JivNsY(>(6?M@`|b&Yxr28hN0F||XHC9|25<6l+X8;CZwYvmn_8jPF% z!x2I@hf}U{qR!NIvdoaxXhq@WX<^9e)HrR4rj2Zt1j>xj=bOcI(?rTkvEx@E{1NTn5Ll$+%ihW!=3%rlieNXKVSC+-Zw6tWc{IsJURn;|+IQ%o5y&k_Vt8#> zdRzeY87sDVzmQtg29Skc@QM_EE}b{LVYev{EwES}u85+9`^Zhm$Q9DyqSrkL$C_HKL_1!d zQ}yR8^!WRHCDp6<=V|z55ICp@45{E_Uj03Qyq`w5Q_7SW7Lx%y#NQfy+GGrGJN(p& z^Y~RXLZtoh9Y}vC=c*>!sGY%bmb+*5?L%R>Bt=9dF%C zuJ2ds?p`VwX8|nfN%5Pxf2*o*AMz^}JJgY1{=MdYMfB72x{z!$H{1#wFkHF^j^r-1 z&XH>{;YnscVGNOVdpb=t|8v<-b7d*{7XYn=2@%MOn{Ocug^I=X6CsyiFSS z`wCpFe_GT!SwS}JO9YS>;*lLU`=dpL7sn%opeYzw!x)ar!#m#eKbYWSv^~iSsP&Jl>%Nfr((87oED6I^ z8sW*C7MnJje~nS+I08Ylv+&Ock+Dg{C;ermM;E}`l*ZRMQS~_W+L9}?Og^h zUE*V_W#RZ%*7NRR*T&z(?WNwIP&U_Yv=CWcw|?OS9}Id<5mkx6f1D+C98eLhexm(P z_xsVMz2{%wg@bBTHx+a7c?mq<{hV!vzpb!PN811cP-CaJW!_ zZHbLv9x+s5_gw4l<}38=D)t0Ulw;=*m8uOF*zB0Hx#hu$D;?dP$zD3c9dJY+MGm@i zJe1z@{YB{|fEAS+0cYLqqWB%=Us&q)!zgJG%g3DFsETXJ;m;Aq0M```o@Eq#<_ULI*8>WE5BedOR!{Q zDkZ;0lJ-0Inj_Sp8bT!!muR-zaP0sKii*C0x=>^rj4Hk8cQ4$pvbSa~_f=PNsU3Y{ zv=z&Cac23+I4oA2(RhwMI4PTzl}UHzxjGi^@TXc|{_@p~FdUd-m-4uBC)$cYqg4JR znfz3c*l1D?>^WTz4t4j6vk2#j@8Hfa*8S7m&iS@&q`+c+yjCr+GO@+zW&BOVl06Z#=UvVOUS~Iuz>R&bkK#B@6v3)Qji3e*qp^HOmudVFs8vjJc&PNl;>rE737 zt%ob64li36jm;>1$w7Rh<#{NyBo5o^{i7@oglZZu{g$oIxF6eDtO+QGv9N^wm1mwp zX>1#!H=sBnDDVa|*N&(S2O$Q^pKA5tA=%`g_eN)Td8qc-dAtLypi5ze>b{T?|U z=Rn3eD>o>k5h20t)1Bl8w8SFh))nqbG&*kZ#}Trp@A}y=LOC0^s9{*&;dcx6ewPT( z&qe|0;+ZYs7*X^YX?6i2WzsHMh{Tcr*-^`9OZFW?6sV=Mw$y zT3`kCOUP18`DrfzpY=x}x$am^L67fi;~RYo0d3K>2)A-6l44S}cOvj~!bWSNKeOgX z?E5``52xRo`@rd4d28bu)gewz&x^0&T)_f~*S?Qn+PwLZuNq2(j*J;2{1A3hzIf9re z@JEOfmg9HV#1-Mzt#MN4oA}E$vfnjXzLMOqr!_&A$O18 zo7Aakx(WHFr3GT;WwG+ff8Fv7iQU|Y;d|M;BKcm%^ZSI#<9oTQBApAE;`Vx~a|60P zUZQLTtLvDqp&0kxp3?anV=W)EsPk8i(E#PRGaTyi`IR(G5bX$Ry!Nvz@R&u3EO5`7T3UfYDv%YKF6^NP6TI1VlcH1>$jw}z#2 znxLa?`H~;H=oU87ALsJ?$CWiQnoZyTz|*p;q$CuncJ4?Ii@TQ1;yPi;XY-BK>!8@& zbj$H!Xrj_{#rA#?VeKgfNPMKr@P0U*civHnEB8fTlh97rd?qK+G~j>t*%)(O zX7fdn@L$x%m_ybTDU`CB&;c%=&RCDODS^icdpOi5wzC0EB!mI4Bzo>Gm1(q{5Mxab z9G+U1_nu2Lg(IYR)+{z82Ylq#CO2{zm!j9_0e}k%_q1-E*^vau?jdWg=;>FF4FW35Z;>TF`=KYL+(Ee=|ec01J?p)!COqM z`QP!a1GYoWUC{i`Hz8iIQ?HzZuHW?;i{^hx{sYXbp0+uH1|1p-&O8@lPHLc<*!+F^ zZW+7zDFQcD`M2Q8F53kK)+{b?uZZp7bZ>&bAzD?_mwR^h$BJKsf9+B4^QF25i{jL; zFvlZClLf{tzucBew|%~mrv1jP0KULp6=aqMtLE<&2+B;0fH+<(>rO<-(76Rn1^MXK7LIh^&6N# z(XVvBoMw7JC=s|)e-Aqfk(Yp1L&hKd>)5$EIdFifwt8JKkM|6_4rd6>(9Um1-RvVx z^uFH#`4c^mGliG3_Jr7u6J8Z&I_auDEOSI6bni&ZkPTk*pz{n>gs-Ei(Enwd*LG81 z@Z*RFARMCE>Bz(y;x^QJN}<+OMvRX%u90Y{BTJtvaT;-FzW0|_PbrYSmoqA##o8l} z>&ETfdssp#ueoc2b1&bBP>Scv(8YBIJHu5%gkwic-yuWtyyxmPEaCKz{6@o*ugS}r zJv8fUK65@sYGlaqo(a9OQMHEAE80X?F+83szD)IqlBde8T*-la;w0*5p|aw6UUArV zx+uR?wqZm6972L$ViQ=3tq889vP5w21(nc%?xdmfx?fPOv}(Po8_e?T-L1v!Ph>6^ zgi>hOu{4HvDEU+bR+N;TQk&gWHPHHylB6rI1759eRqHCA=311>vEfl`IbiqYOj09A zY50McZ#A#SLv4H}RMW*irvoo*Jp_fmRJ>FqX2Zl~dgglU@HlgHwFcfy2dPZfrZUNF8^S++F2lIeNC67U*H zA39j7>N>)pY>S6};B1=sz-Vd+F&i~W<+*<19UWRwnHbvuVKu26>4ymGrcB0sX{0pKd!+Aup7^6f>`7H|pWr9*w8Oxp+J{RkTrO_%ScJI_mN;0o?S z;%~IpYq@Nn1-`q#ESx!Bc$3>eAQ5n@OZhj}V!z*cad3Mx=G>4_+@1SQs(tbScw{lrSz2l_DUAYjs9$p%vpyfM_j~{$ zE}O#>_&<)z`CXW65`ekZr}d9%LYFnRxqFUm`xW}5KL9(8#^Y(soa=n!9kEQI{y;l! zR|{exfseNWI#B2y-G*+OAMqF$-(jQs#QmXyErj0B;C;;>GDeFkw7pFNBL zw-WA@spJ*b_JHn|%$5yqoJU5qmsSCMfttc)_F;x;>61LxwW5D>Pv@%m)*T1ukv9LF zoaeb}_J(FLzAq?p_p=isx{|{THOPw56HeGX1sayYuRAjys(QFgY^C8h*s`v~xz+C9 zjD6sW37CRgv8|UHn2%o+=36(sMGvXxzRh_BEK89eb*D)}!XO{O!KXNoSHi)G|6B}+ zMM!PRyy~X;0VvvLCyw-c`jV>j4FYD5Kg51si$maYIb*0ETYf z+Kp2;Yls`+(WJZe(wOx*IZ*-)8sJ9JJ)WaUb{G5B0n=~L4@Y{8e!rVgE8GqiYD8K` z4)jK7H?H-~@Y7q=bxH=z@vE=lTF$*AiGD#*k}=SSArM(syO;>UI$R@`Iv76v=O7oI zfC+%AyPD)kg2kGjmw_-8CU(MYh?Isea4~q$20n(k23TSZhUJ2SG-rdVAzp}r+aKMw zx+JRsw2fuNPc1{D2nneI z*bOcy1QDig^9cj6P`Chyf^by9V6;gQoZr`c6V@^yS^7c<%0$WN8UvL;2gTzm2CNo` zd%zna4tgqK&rK#os66>I_yN-RJvjKbE__iy^#RwGrZ3F=t*I#0p<}m24rHcb1VWP;=(%Xe)t(M`ThV8y>5n>%ov2bPBt8FTo&{p>h8eL+6uV|6t z#3#y;DWCi_F_B(xtiV=Jz>ajcb%}u)9mDd@F5zt8@4KD3(qNBMC;Hf*(VyIbil5tF z@vpqN=|xx6A>RYsTlrtyW=Wx*b_Hgu`&Zw@jqYFLwatn_rl@KUUehPzjTHy{)(PKm zK;;-iFxU~N+A)$5a)4*D6I^m7*$gL==F~)(Qr7oVdVhyao9U>99~la_1BVn2$%i0P z+Zglj)jxxa6_J3$=390Nkc3P9+G5jCAbc{tK??w_U8Ce6Wy7Q~p~_~5q%nNWp0S6CDqfY5m+3=2^WbWjclG_SzLNEjGm zK)J4kWS#CA8upa#_g#1wpbr)zL7LF>moF|6m%8{IZU~>AX|a!PFDP$h@fwr;A9Bs( zoo$Sm)q+G9WL@6e+?2^*Zr-hLby*v~_TO$5^!Jl#)j1_+A2Mz?1Fpp9CKq6kWlBL6 zg;fZc_71;2HK{W+`F|a*nEB*f<@i%M%*hELQ+;Zjc6@xiB-wgdQP!4zh`9{3*o4UD z^bGv~gDmrP(XPIvPEJ;z4X!Js21T@f%;@J)Oe`yaz`MfU$5+gFKR89k^~SoSth-kw z+B}!pCIi=mw}zvM`usQI7t4(aFfmhSQ*1i`qjl&>i(TKRcKJ*0Bns;5orq>W6Ky;Z zE55u_5GrC`{s@_65Pr zMFEiK!j(%0bx1)qC8^U?DSQsw5+5vXvciJn!0Wwo`CR^_>}*-xXP(Tp7RGY{2d1Jx zQIIQiRTdY)N=yce$;^CC18P)qXMZL+BqQzCQ*wN4z*RRYi%h@wq#!?uC=+9d@C-Wc z5kbW+c6V9aXWWBi;IEL}83Jb^jYjv}C;j~slVOx|=?$7LF(JsaF+^NZ?6ralijIkt z@&w|s^jXsO?}w0Im(_fH%rm%rf1Gc6$H~>lv3T7%WK6r}@}-K(I}qD%c1lX8))d?6 zqPK2dtEg#-c|Q=>zowB;tG!Y3dfL6$Ty?JH!p&nh%LH_^X9@C=xE6@QANSScKdDzNB?=ANHT=Z0F8S zBd%P8X?1{EQcBvasF$*a##xJcm-iz^-_ET&e|-}wq2`3c$GZsc_}QAXU?Z9NbWUj< z9Rk6=!0_0Dc?k4ccrZh@=5cMr*`|BkLp>9idt&k6QI21fl1DfdB|D{o_PM4q+88_a zY?_LS>U_e1bx{oPT?x+E^J9L`gB+0$2KauY7Zuv z0W1Dn$;3nqX@>j4v~vu;Qs^WO9r!?kfXQV<;vdESL`qqVzV@P`U^~YSkUvlwnaZGO zD{Cup-}5#fS-H9{1_CPz7a)gO3|<)~fr4bZZB7(fMu-Krn)|v&PNI#Kuaim$yp)lzLu{@jT%mlH^i_wDBRoguaBk5 zr85#-l2_Mz8(dT^lP`IesFLb8)lvc-Zn8xLdKEVZ?e5Y=e@?8lx4~rjgEqq{+L7qK z;e;Jvv}$)^A%$wGYTDM9J)}@6Pq|y*fsj!l)%e!BM#k$fHt^C+_#BscisTom{$KvW zTW$ddFib}l*%Umk(wAUqqjy`zh=o8AbytTe-E-a_|>#fp)P;Y`)AF8aIxQm7zBO> zv>bzgZx$eyw7bf2*`>!Dk}#;yPALoq0R_aoHG_A64i5Rt)YIyJjDnXIFE_DDw6_RY zSd2dx@Vk1yTtX$wdOPaP7rE;VzGlq|dH=?)tx@OYI?8AMf94;2+nX-Mpj|SW-mg)d z*;piEzKglk5#nt5HXHl+8Dcv+?{AcYx8j`=7P~y|1x{E$NG!m%9duKlJUU=gJhrQy zc`!MQA)3Fm)33XaeX5!k{jG|u-iIn$ub@=loVLBc;7}z%;qMJ9tSe3Nw1lX&VR1(4 zMkX{s3`Hm>d?FJ8Jmhxj(_=&oSFer0B7UIPZnn#@DQZ&o5;tct?ri>k+|eQ9?z7E>T%3{X3>Qg(!7!pQ9 z(9dTG{TJR2g4%*~z?Ycb&MSkjV&|6gY51*w*t)I1_5m)EUYZG72~t#I2>8ZlK3MBQ zVO-sFt|!yEB9*)zP^L!a_C_rC#H91so9-``B1>d)zV!n^K=>D{F{RZLeyc@^bgm)y z3p(j26e9z^kHtiJg^xzRevFT^5rLwao+qW{bXnj0CrL?3R__NHJqTH|j&dpP++@-3 zYE=oQq#ZLfV=7a$$CHyX&F3!}w4SRN)A~Kamg<%u=E^THR(w$ABu}atKPn>92@Y*} z|KKScoz=ns`ZIQk`su=xbwa;EcWn21Yp}-uP+P%Ux=y4jBhCaTKsK1zv3_fo4b$G+ ziL87sIp65YHS&x@!1H@1g<5-H2o_u2-@oOY}J|fJAoklpn zPfpnS6lFSOUxWPJ9mFge#b-;Ma|$zQ-RhL}P>5BN?2EKG~@Ts)~zvRCydm z0gU*NtE9ZyvBH|s4oH57?G@?E^I!a!*CU6x+URIM|M|K;hiz6xuL z&&EKb-KY2pzmv-UBUa!Vg%g1>;-IPpWg3}~p8yMiUT-0A&WH*Qc)#yE%GSg-nRde` z*xHNLx}rNDj!WV8yLWh?75@$9>D3?D79R1z_;Fn#{?_AvUp+XbG#RdJE^5*D!U{~2 z!!Dz@nFB#eFzL;|@5p8Eo*fV+g$3MAv}~pFZyMpFmA;48@N=&(I-Cmi(r9cS3=8xi zDTR`6ef<>;vZ_NMlJ2!Fx1)e`7T>;o8*Sz}d++I``e-)wj?@c>O9JspFMY2_ldsSW zHZnCJLK9L{8thry7ZYtQh$e>6N2T`3Z3 zc3*)*!BPZ+!3FXx-Pe^_T4Gqi~v zdGN65P0K1A!$tjxB7_F}O)vlq4z=f2;Boovc}pA$U=6?l|!{Tb-ryvdM-c7|cnplRy9v zgZ*Ccw!Fq;Y}(D1@`>pcb6i6PcOY<<3rsUWK*oebq%wm}Ft8SL2hl)-i!HAol}bK) zA2Z9F`uk~_6w=d4nmX+sICATfRR*dsHb2%E8zg2E&MO5@uvxJ1UjMH;Wp12e24N8R zwEx;$pdu*LIV%N!)4rip&q86;&S3a3L{w`WhHiC#fMYuQFfA5pt8d!WkZ0mx&na%k z!Qu@O`+ay{sA{0IKDL5g&`pWzN*Tz?#3KgO>LdA--Q2F0$4s%y;-=~B%fV!!~rR$ zOKVM?!TcFH>Ac}F!~&#wg#~_Gi0J`4f|y4E5)j~+e+tvm41NWDFiq7d4SD;$G?pi@C3YPN zS-ojcB&KADHJEiv<@#Pz=|}ZYX{Le!?Wv&=v@ z_*EUXX_a_cuwOVi*QDK3HTvBz*1L!>e~4h{0ARQU z-{4H3YeN%w*e~L$PjAG>@RC7$_l(grl)afXv>ba`I!NpHTdpLr5ik*4^@B@*|Ax|A zQ#)GY!K)S2ga5gW-o^_DArir3Frdvaqjb3G(Cd(Q=+OI*R0Rh0tA=3v@%2}qW5=DV z$VYD1{459BAEt;f2r#rkkXYM-vM&SG0$0Gi;4jj72Ukckw1r_MNT1W{WCVQ9=Z|Fc zg0FOj;PUa!u;d|_No?j@of*4VN?t!H!%z4>h>5G9W05EzjUMt{)Cyz6ZvIjHA*dS< z(~TNC(Yad{OF0et`}VbyU{S=RRAqVi-7pp#R;@z2in;*mC5^ue*zP#4heVb})!D@_ zhAUbbxz8g@?SaJw#Spa`*(0|Rm4>MbfN|QSDq)&dheCcnAjnu(`fk3+fLc-WF|^TP zgHA;p&uB>a){s^j(Z~N_OQn>TKmRK_q!n$<3T_uturV-F&{t$y`IMC4N{7et51I4l znJlX#sND~|hkGU&Y|*$bk&bjC84zh+p%Cd_nQ)Ev_?jM6lD8vh>Ks7q6bHPjU{b<> zMZF4)8nuT+)uFH7J;Qfq{(P4mg4&`8HcLgNUzh}BJR6$E2P%#)*$I5K^hp)h0N4=g zlBk{Df!zQkyhirL0i?YA`Z7-4V#6WBmjX<7A<*XqJu)HVP(e5J@-V&{;mcLtMHyEl zVMNUp@Gt#530i-&=;kWySY1t=rKH1e*3JuddG20A+VmFsqu=HxY|Hh6d3vf-H;cEX zCg565Xf^$=d+tkWma%7#CT7&efP9wOUcKUfmJ7J~!%S(|&yKL#SOZAckacf&8n6-# zI1M-zoH@Zrz=cTR)y@scr(?v?%vj!F6bgdi+1eBxa{z9p;QCKzm>q%Q4uUGZU0<2@ zdaDsFf6hRS>DDkrTC!s$r)ZYi9_qAW{y2WB$#p3hZFfCB|L`8Qme<2w&mwEB;(64W z@4h-Yr^0e+l(rL$-peAq?YbHKsYQ@B-;yV+=F{+{8`r^NrV#R5YZ4mR2`w39 zKZGD;a7FNQTeA`ExihFXpc306JR({5*cMI356yphrkQJ=@4?P{+N2KXpx6G~DkVqK za7$h7-^wnb`D6goaAXL!X_TS+6{>oGBZkA)J-Q3ABesmQYB*#&lfoaRQvWQA5l={r zuQntdEiR=QV35-^4d910N~^$J{kE8;_wA#9Wws3xc&``LwXbP7#FFv%clPBz$X+YJU>seW^m>)4~_hsHDw=~+)|L}$?y&Z-XZgqIcHLHp_q?c!pt*v zPv(1C-$LS9rY>r{JRRv;Ze5?=sk~}%`vcfzpELRH7Sxq2Z}NtdP_$F4H#?=RA2H^( z{5^iD0CmM9%iY5`m#Y^`WYa}m&WHIjW^0&dTCEo1SvZbMd$`1o7&poMjbHBNI~0t3 z_`G&5A0+jeW1uUmJTH#C4}c3FOW7CoW{1)K+!DBuX&lO0il;>{Dqcr{jn^DKJaUq7 z_ni;=#BV$^EhXwK36_2CA$O58atVz5C#F_fE4h?~!m_{n@gADq8Z7B;(R0X zeERP~@FAABdH98cJ2MML>%Y|^plzy(x@^{3Y)~M2HUk%fOA#n)g}8U%md)z4DlAIW5I&+lVsdNF)5ke1`J^ONO8{ zkb^etrq4! zm0RGh^J0OduUGs;H)jd%l)n15yG-d!>TF!~^a(9VqKaEkBcyr5w*EpQf|Jn>i`SkL$FKPym72Z@v(eKiFsS*g>zv)beBeu*mQPsry4 z#rC`Y?GIWan&n1XUD8HDn*~1-A(zsH=)WHnA)$zb!gW3f@6Yhq$Lk@H$0tkHixq#B zSseuZ`PaHhcPh~X(yG>*7w(Qq6|Fj&A#^8S-{d5O%V#Gaz0j^7^3CMyR`-qf zDe?)&el#S5KcYm~9J#oX)9vBidBITdB@C<6pab3y50ss6hv-yt9!oaAv*1J`$IWY0 zUVEf^avU!(TA?7+)c3%4Ub7eSbcTbq@*9+Js8$0#6Bo>2C9R<#(%Mr%oLyl*Pd zDlKx7P9&YlQX`R5{D$`7p_sFeyUr8H{)1Cdu6FO0BY%H59zpFb)^g}UdgIarZ$>NX zrIMMZ%{5hi%102llG$<$4>2IqwbBrGvx1o|yh2*wG$eSE)Z=m7h z_v!c>{^&c<>HNz}seC=EDDa6IcT(JfAV44tk<3RGEI;3jAqi-Shop!%x99zLsu zV3k%=QsKGr)6bPgxAXlW*W+zccK^jP{C3SUbM7ezS%Wm`GcN5 z8C3g`SJe4?wKHJxRBPC1xF-hAs3{&h7f~o)?tCQ2YIa9G&g~|{iWHAXHk1l=uwA+x znU}0F<7&7J-N$vXYHmR>vjY8aIrDBeWI&Oc!D=gPtJQ+Vv|T~O*G&@?{qz*-^6h&? zKl8GgxlgCVdb6eMgj%IRZK7}xG*X^)DkFTaa zuy!l0;S9Q+$BlEP?u=R^Ya|wfp@_J`%B8&0xgP-Oo$#EkE&Czo4bY|j%|r9ok=J_; zFViCy3<>7XDMQFm(4v+*&ND9N#@W1hso?(Yo#Gp-kzf{e9%Qe_WSSyG)Wo7yZ56cc(7e z(Yo%Xva=$a+DwDdWa9OU4!Jv`g1KB0&B-ncQ@2m(Ggwtw$b`x3m3H?3IElv+QH)1* zIkTbpN82I(PtzL>Up0(Dr%g8VL9gWFU5xwRAwP9*pxez?dqt7yh3XJf`@gTTE^qwM z4GRp^N1dm~m*d-oDpveD1ido@#uVw*=MHAL%?~2=&ZwvA#gr%klgsvVs*VT2O1Pf_ zP3;1EkAbFkd}5-w>*^L+u_FYV-9{S!`@XlXN_I+{Pul)TtH&~ z2&iVhO1pibYai&w^#HgVl0eSRHA!Pbp!~|a7v)=lL*Fj5`>AU+PV!}sYxG^ha`i_Z zv)xu(Bxq?Xw~D}Ekh1DevS3*wutml6WHIKt^8ySbRul?6@F5rxtoClXn6HAb{4ziC zkD*Cd(DoH?;USwx6f)@UZjlvS4~#IsxgmW*7#=F(z%R({Z0+3VZwrpkw8t~W+#!kV zjQ*U)onv8T&zn_f^q>InU(FWVI}g4CK?%6$`0JAQ+rqgF(Iy_(M+aLl)TH z(3yP5k?%Ko3?kk%l3oq)SwX>va^=!51Q2QCG!1GM^3zAF(#w&K(;s{?-u2a9gg9A( zA2G@~xH*G|A!c`9Gqsxu+oew3^%LGO;cU~WRP>evV;>x8k9G73{$+VNzt!|i6}DAU zSo|f60AAfP$a&=j3JxbFI|p&s;!=b*;aw@xFtm;M(bLfJS}$C0pjpzUf4r94mA@UFd6j!cwe9(?|dI$A?q>Un%50s|m|+qz!rwr(srMj_>mjb{6IK zo9DArymKsABT9sUSRhxipUF4b45l2W+Xw@y>Gc-+*_b+L5isnCo0)?JUAL&9;V)p2 zd5}pt8B!xLxwSs}DrT|PigTErxFA!D;%&+_aoV)HgYOYpWe&%F4XO01rfsH!ZE!z9z4)(ZdLgPfy#tM=)FUO(>~tkrW~ zblHoVJJnzBmu!Yc1^oS6U~~S-*Ka*~J+$W43`k{El7n9^AL8Or7;g?0N>XQ5#KBVV{$8@DWpJqZDZHy7Sm`q!;o| z&?er#1>Q^jOA|_3ADkqn!4?k)3O@{*S*%XNLf zVpGNQj0#31jhnuVMifje9gOXNWs03${bMP_)OHhzC6yt;lEraNDOL~xTedzvSzyLX zN+cxO2Va;De7WgJOUNp2RmWD)+c*FM-O~ryKJYI?`c2rPw`0!5cXMbHN4x9MUsxNx zJ3E=Sj7B8R&abCRgx7|@iwkP#&Swjaet4261FvJ70P^3foRI8&wpmvDb65al@a&ks z8OLIC?J0&@%rzl!SrqM`<0TnmnSiu-=;MaTQ~EuN84NlMg#^%F^3ZuNkm&JeTQ-o} z%s1a&bDfW~X=v^u-Pb1c$f<6m03W6T(W5UmABOYmsjxgqNaY_uRfhLV>d8EveET z;5~DXkBX`FJevt(*zmV2{cy1R+73$S6qYndPR^Q_?l^Hi$UmKGwktxNgFC6S5weh| zuH+_^i}BfTJ1!{$(|#!YiIg%Z+Wxw7#3RzWj7-#lvA+cV44Gk~utHuV?n%;5shUbX ziDu1{Y5q@{bPyXt(+kL-D-<7xCwTq6VMH9XvC(jMwqGjRD-4eYyK@k$NuV;Wa2>`X zHuKnXGKN_EblKiy$(8l~{9opjDwmvEi=%U{$U%*AeypHr(?XBFK66EKO3Lrc z@h0oP8pbA;ymuwvcMG-spI#qQiTx--A$9^1(3W)$X#F`j>{FERtbyB!;H&v2Qw?YE zUmU=wc1A~EAfg!c>l=TA4Qu>}H7CdDg)tb{gGCnM{n8&iK6Q&_&E)cOORJ|nVkqSJ$hfMQC8v(Upp^4a$BkBoG#I+H z^^p{uKyVjVEdT>3s9>4P?Hj6gMf;_5<*0$)qyGuPYwtdNH#dF)FKFrv1rQ6?4YGbF zEBMwH?ktrltPh1wHP!Y8Xwz9AMAF!9RbS2`83A{I1-%MhN3u*x`HazDKN8eSb@D|) zJLC1lJ&(@OS*HEGqk>pCV?!~B%@VF_+yD1QkO{Wt3-oW%2Vc!b)v9s7}rHSE06cctD`uH}A-K3wipD|545)8nSXHS@x> zY@?UXa^6N$*;hAdrGe>)jK@XE=P%lWIRo5&eORLMe~%BH3L6IZIf_HXx>{*6=ZFSz zLcng2u1_d=?Pp=#4lpJ3eV#GpaTrEf_ziVJ!S*yBT0o%h)F&~^WN1t%CXnR24D16a zud?1Bfnqs;8^)D9E7tT+iL!qmOd2ZwYg4)0ArA&FCOHerJ%rf7L4OwU?qI}Gt;%&k zj45IM1z+yh27x~8*vQD_)Tt@_Zr|X}rHFKNF>h8pzW=cRoCfMxI-L5(FuIA0=}6vD zS()mX>ma!Ad_+9cFG#S;dORqQf#q3=R894R&M+Oo*qdR`AtDT1|Aa%D8 z_q;-G3feLRDNGomOyoh5>Kk7#6E7Zp_b0Jk+UHGweN+mQ)BTx39SvPA5{6WAq1(~m zuU1)<%!D)iH6^H%3~{mD^*i{m!&9ihyrtV=C~jkve~rTnaI8aMe+v9)Tnc;tBQy6s zNv%d#-22SeyZfWd9d@Fr4vMG;wK65#0fTUyKPn*<0d!`F&|z$*$gOEz9ClnnQNIL- zXyZkIxo#WjS81K$e+R_-VqteQM)a|M9Z}MUT96hEfHbZ9_|izg-NkJTUBhcB#IqVc zg`YQf3yp{58nt=ysGi#5_&RY}1r*$+tsuM-Q0NWxd&Y}w0X|I-kK$On5y?uxl2^V? zWwz9_JAG%9w_`YzwRx>kMzY@8eBBlS_s;3XnVA=O+Y>ll1?YdAr`kRC0H-eZ_0o;% zJtRA=@$bU&VqC5NZQy{EbCpSO-mrQTEHf;8?iC3LL6IRYOj6k!O|Stp3Ms(Z{-3$P z#8SEWi!N^u`=~;;3}j^MD~hv$z%DU{6={EBHJ*~q|Hsu^2F2BN(Ym0DYbIfOq>A(Z_*gf6Tsl~aq zok`Bld7*X0*~l z0Vf0_bs%O#X}AtCvQQOAiG^Hj!D@@gFM}bhF}#;a(Zaw!zG9_)za=en& zU{1_I2(5xtg&{&!k|QQS*N)$xc^A0jokX(5t@(ZkA9|6Xp3|Z_Fe|bZz!aA!*L(3| zZ~-bY3t>QRKm+PapfrM%X{26-_bEo5M5=_B*62QW3FOQ&IiU1&N4%@su}P5FUU5`d zKPLl2Bc0`C^%QH>XVWx^|JI7w0ld${`W z{rKG_S<6c;RxyCd{w_@;fl6QrQ26F84^i3?QmqG5$gQS7gQM)yF^h~ObE3WfoT311 zmL(h_ERAY1!(|d`>x(F{Yiv2t1Q0jQvH@Ysh^h_%CzyN1n@emn`z=gY@WwzFVkCgK zpNbxi^>ev`zB7Juzux;=wIYROa4@C-5qCin&dT-gM-;z^HY6^{67$oQAU?a`vb`UX z6L9#!LMvct0e52kya6A(!#eQN^nZUPKf6wYTJKzpdvEoOZ;DK*`%=gZL0F4j1;k1z zY4t&1ZiXStYWW>@i=%jdja6znOw+s>5w9FedOuOPL`X2?IJlSM?vS#06DT*Dn!M>s zZ`oWer;t8_lLH!4AR zGT`u!Lc4}6izu%dwnJZvZckFBil=U2L#~^xE<8EEYewwyettfEl=<&8h0NyDZFcCY z=~)Zv>HW$!nq#fQ(J0-b52`9NMFwqQCPA^p6L%TdQUyoHfX5eN*zQV=6?BNw@S3Z; z798Lp57IOG2oI9=j8uGqykIc}Rvz$i>`uUlBa=x8pAYH}PT=PQP42}eaMBs_5Jrpi z&l~d033S#qdQM%+&J-(IwQ2Yuoy&hkd5aVMOGACn;QPAA-A>VPI!E#eM^%TTIPH)I z$ou-MG<@}Ks;`uoP)_kMYC3%V-NjeW0gE9>aW+-eu)90U=!T2;2 z>_|Z=w92LSI4Ys}=Wnc#W;5mnOU%(+^}#AEzE-m%;ugxyO)zWHsz8L$!$XuvRHlz2 z3oPblH!9Ym(nN9VJq!<~EQ1IHqvW1=44F6#;t&%PlR3*i{DZ%61SwPnOv2RTBq}v+Fe5LVgDc^K89i=8R*!w?dq>3O2I(MvR)=<^Oi*`t%GO7=`=9cQAC!mmBL9B(Uyvt)wFI*oEg zu|j|ARow-mUQcQrv!9^ZuOSW2Ba>q?1Ke3F_=YK*< zg|VxHuQBNGQcKMV1H!W>S06V}e{10Kn{(K1)YcOo;&M2E>38bw2E;@j;c?l(Arr6# z#|koIBOB$ccWALM26aAMO*px9SSO)y?^+9>)X!mZVMt0!3Xf6At#KwnLNKp_!Ls-E z5;kefbuK(WdKT=)CdeO^nIY00p3E3G600o@X5$%=)0KgL|2<50B%n|q$kyR^PULsqLmE<)z-}?a(M^Lxs2H&h< zHYFykdy^-?|LN~j-kZFMlO#ULim@|&3Vezd7n!AUbc~ExN|$T`~cT!I9G$D%}U>k!wWMo5)Hu=)-KLsncIX(fQK7V4EtxasW- zL?3P!j_ysX|5DGE2WHxB>@eqX^|R$JPIO`kwz(V2OS4}=5tSiT;UF+gGs3_qvFFr^ zPL$5@3gowmedjMkJUpCkp?FSDx`+~T7@SN&Qo-kpEcVRtA+yb`)S6dwF&U5S;@F*` zO&AAq^k(y(d>A|QKTRIumVpQz1TV^(?NHhoQBlK$1sWk38$6QgsaeV*Wx7&Qk|vAJ zxiI8V851(Y^tvnr2e&`tjdAB9+NdZeCA+FM&}vp2(e` zPzB(GN%1{JQ|99zL0RTAQ`38+5<5W%SwbF`#hTT{Up50?ZL)2LGUkpOyeABRd`54P z(+s&#$ULWRuRh(J7@y4**n91mZp|qwXr5U?M10s_9!Fy+^4}W)`Gs@wEJvOU63luu zNp6{3wqlQNTCN{xr*w#%vUe!7*tepL*t2=;FbfMC3*r2vH#(gq>rzbGs}TgYYp)8N zi|^1g=c|y3CWP>k*y$U%4-zDlU?>9)U=YNvDiToDhR1$~nbTH5=>fL;UF*7#@x^_iVw%J;M`}7+% z9_x=%S`&bcziSmsZzya%)n_luC{B7r7os?!{LRiCzqH6GwPSRulinsk*Sso z9}qzq3O$9g?x}B9eom()&*xSULi67uCQ>ZQ*!sc$OJqamW^u7k3&Gcu0mp+p8- zUal4NByN2;?TL|z1k$EwRQgkQ0Cn&sL5MB`N_`l_)pxSqA!&Dcm2-I|o0OF$7jJWA zv-*?O_i5=sZA>TlYp#Z-A@KlB{DDP~oRn}4Ze(E>pUFB1M*BflLR=GTDMUOzu8<^l+KCE?A0`ehT@FSJt zA|a}FZ#OuM)6Z%9hm`qJhmNK%G!=5-$x8R$%^ArC|p{M5o6hkyH8D+kDgW+qb;`y0NXe!vV>~%$#Ntg@% z;O`QG&J`*@!Vnzh+D%(Y_j9p&vqNL2?o44xmQ!_(On?w?AS_wzrI-%Jm_TWOpzCSS zS6<(@ajWR-RA!;aHfSI6`&15$@R^`(ay{nyIuWK|KbBp%A+u;G$i0~E{TP|tkmcMf zHY5gnU$#b5{ZoO`9N(5#`9fk;r=OITh9-+u4d8p0$96a({1+yQn z;;n<`u{j%@aznbN9TL%M&bp5;jB!(7p|3*&|5$xPOa-myYm0OO=XIRUTAs9%!sS3t zkYtQ9U8b3NC)@YVhif1dKR1EFZPjL_)vTK!{Ew?Rqk#XGQ$`%?*Y&j9I=JDiRUd%% z{rb01`rs60Hubx2B%iBPzVwbHJlNN_;eqiLXqP{p@;{w;QL{rKeUOOl3B8kM=008IkGbT&drpm%O1@)(gQ8C?2!j;8U~tz!qF5}T?4U|@J7VQ zTuY_kRDqK4z<$R0?f}2hqLj~mzg=Z4Y+*H4Ird%<8oGm3s|}#O??s5^np#R8sX$~V zOj5zctgx^rUyKlc(e!OhTop(kuO_nW>6NI^7NnxeekUvgxoofSK*0mx`nVznKhZW; z9OLK#bd%w!L#8_aF`&e!vkK2-5bnaTmr6d)+`ti@*D$2q>cw5xy$;WqdV(bb?)+@E zMYi6+H*mn>TLE+wiy^r-L|futJbbQiu4C9%0y%!Hn#6u^$HxpD0^gb5{%pMJnialX zSHJxUc6Pcx)a-hc5>bR-Nx?F1g64OmV&1C^Phnv0s>MC>J-^SnR9VofC7>6^nB8MW z{^MoHdPmv*1BRW&tW1Vxtd#pKq~dq%AGsqs?-{t!=CXQ*$Ps_h&8Sx8&!k zd;hV4*1<~|0ZL^QkQ5<#qW`R9!HT(&#e{anpN=?e@S0Z$Lt zVuQXCYk{UgRaRc1BiTg>xbr4?>HI;i;N{~Z02BmQ$LN#B5lqyIjmX`>xrf~6e??D< zj)*nWgnc@Es_Wz6LTYwOK|BUqzPvhhf6NcE|3Vmvm8vEO$}i(Q%Fc{-i*GEX-TF}J zaq@1$&=f?a2!}zDiR0>tpbBiJ;#PU2w^$0&IcjyYz7F}f($8Vh84?gmZ|$b{c>A@_ zSvHye9PQfjJ$VKr0X2q6aM@>b0!m-ZpIu!8gQ(h#&lke}Jz^OwfK$iAw`d3~AYk0) zDsbO)og48Bc~Hy}yCFtRN@Aug0k^if*2H>l4iG1oBAo0Nq1pTQuH(MaYaq6mx85Rx z>q<_6iBY>rtnShJfcU=FB z5b=Jtyvw}mjjGN6RBx!p-fNFp-l|b)AdA*c`AgS%9o1;P)&!Qd)bH=D-qWjLN8iLB zCpY?``?d_5r|X%;;# zmQwBYAN_fQuQgtKgXgaSuVY`&0o%_uAt-k{dK<_phoVUt_X7CRMP^7aGD0yy2h)() zFz%~4&_Lih{44$Y|2-Eh$n326?Wy|h$KUpe@zR;%Mb8%MM$4HLzqjE*wJ>V>dP9GG z4OiQZ7FCWDt;>)OrzYDCQQ;?G?k8N__(`?v<22@FpvOie8jyfQ+N$I5VnlNDFvEG7u9#7LBsw0AI95IihV zzJa6(;a5aOHu!_{0|gkGVF2XbrrKH5OW`Bk4rAvJFP}mae~>t!PJM%9P^|GZ^M$!I zGjlgJB>3{_QMl1+MdL2?sgFe1{cdnd(^V7%?r^fwY}gvL7A`ovU{&YC<(X0|Oa_wR z@1v&{wJ``JpbbtUdq+LXy20TfzdKZeg+qKGB-6f#ShZR{X{`!Z>H$_sdO5e7mz7@$-v* z{91V?%fruK`xvMi9&^=(sYDIc{20W)+J;F!F78@$rpp{8w}O^L<5d(2;NSHb0R@oO z=sf0TKzDavl~iw2kvOnv>K+qiqey}DB357gPfR0(J*t!5z16Npivj)og~-Ho-O09C z4?{Hqr1f6W)uIa}3kDHMXR6}cpWOqXktdcm$`;11Jn!R9k7xx|-#R-j?XX?>a2&EL z_a5@I&SjAoPqUmxwLoc^7D{KDZeO5P4>+v2gZ*5e9XM(>Axm0Z4U8BnqF8$`9#i<| z!gR&=yOS{*$bWM9P5yG=8~(7a^f#>HsmhZN2<(WaW852``xkgJ9*^kj5RgVEx>nkk zGJdhF)Ob<>ij!n^)=gsu(j$nN@0SQwwE4JCve5IkY=wcezmn6|hmN~e?T+nXDc~+# z@bEfZA3;Y(M%0Uh0(-;&EmFv-vwQ3dAaB7$vi$xC%XWzB3s4iH!oafKpBI9@^Nkj{ zUd#kQa)AXypdCfdX*6p;=T#qxWiWT69a^#3JjbqiICh&rEnp8Q$tk~|#mIhuSNCn0 zJ~(0rBlUNRQNjKn@T^au?}k)1JWBPvN>Q;rKMy*$5zqbOvEoP@v#<;if<1Op6BM&8 zUo{eqQHa1maW=o0%#A2=1U$c-A;S_Q!tMrI7;hqfF-lNUApJ5?l_9RByq7yI%0UHELyb=+uTAkjProIk>81=IQRh=(Gje1~=vLQqKW zSIEP8a50k*^ma)N!n{@0i=U4`;h|^j=+A`w9$$eq7bIu<5YRkdsXH1|aKNmWE8bol zU~|dDDUcDXUELwGVY{?_qK#@*zKO_X4iRXN^H?)1V8E)hHnecByEdSl|7?wj3o9UE z5b)rxUCt#E>S`^~Vwd%jFc;M{r(V&EDhyxtx$P1mDh=sffJTXil!0@Ad+4)Y-L zDDn18AmileNb#z;{c0RKw`I!H4Bm#m{b3H!X@=Z}(k{R4U8^*mFaB`@q8teUorZae z-bqAK;ueX33nMbp7Mi_j$xF0`U=*8kI5w15m$|&=Js+r4Qc`kwgn`JX;=$dLc32YkXoeu92QroO zE9!;OU^Liej|H*C(dNRg`?<^&NZ9T5QGW5^!u<>(FvacLtlgw$*F%61B9nbfxI^iU zjL+fFWcsN?TU$~h^Q)QP6zi0qV&g|YLQHPEF)f*W3+S*8B0i^Io-O>AJ{eRBMgx`^ z^cq$B*EA14aLlvhyy>AJVmU|Toss~Qa-Dj&NGp&_q^)QRq&!!IP0T_kg6^~g;X z1~p&ezXT>EB+yWpAW>e6>NY=&Ma|eu1GFV?p1wV`-}<)W^LFx4W^?(`!vA>7c5gGm z5p#no?Y8WJYbw=j>Ztww{l^yrHT}Vd?kNz_@{Ghf)^#TI#?#;Ij%4i?tHz01D1Ntz zr?;-R2WESl5-!Kz9Km~HjO*xX!&r*&d7~u0U-KbBf`kZ=eN%2Fq{QaBu1`ugL{-@zB_vfbtpzS1 z)MkG=Lb&c+6S?$C*S<zbT`NZgWY-asWwXE;j2YuUkw@LB> zlNf!i-_9r2TO>Sz@FIa{q>i^O$*UhEi(SC>U@p?h*|}7DhH5s{R|yP`j@*Woh-4!! z##DPS^7)wE;1{mF?wzA{(`RVN@0hHb`rAa5;CA?&Rv-99h$nuV6PvNtq|p_xZ~J6? zVdD1Mg?mJ1-1q*XLr(CKkJ`^*D>~00^Ag9vv(fvWxT~*Z+@9%%UXU?*zCxFJurL;v zOU}njV1?F*Bt>KZF1OBjhiaYmn!NPM*LQ+WKe>lWv$NCvTYtSGR`goEU)NX(OvF6> z`X|CwLs*`Y^hiM%#mAs8)YYj1ZfZ(6?rk5HB+A{)zd){M{Y6;GQdD`qQLCkWyHva` z(VVd3s4--=8e&g9Ua+6c_JxI~?kjuYN$3<0&O z?WZ>jO-fn}Cb`>sZwJ_|GvxJY4_fvWRrV%bnnx9!M z#Z86_y&Pf;o_`dUSDmXgyg%JIPm8Ilg*?q#uuw+4yXEO$hHigob2QXsn(&Gk_)ifWph@F%p4adbqr5Tr{$)A_2zU@S?o4Ga#;=w`UnoQ8kr z;1UjF3$Y$}B*F>g-oI?QFoxhQ$)_G%F3fnGx;PLmQ0r$dIL+Y%epIiH)7F; z4x)lbYuRWt>U4lUg!l>d_>?_I+fnwd>xnf*X|U=j^|#tFN;e2-Rc?ZthI8T~Dv{ds zp{J1WT}<|6Z}yduJxsv0**1rMt=_*(39#THW|B}!o=5*cEOENr@FRM|)+Bk&EHXA~ zC-ugN&+D57^nWV900yp@WUR%t(2YB^M}y_}-ui6U*@XKzU`25UCDS*!^y~0Gxg#A2 z#*f!mNi z;rF)tdKNy>4)6P1(!emi`MP55QH&DNy0rHOL4UpqT3p!w9&MUEDZkvY1`44HKW`{p^IgfWSv4vo`m zXgGRfOZ7Gbp zaB1oH!#F-__Y#)EDUFzGxHVud0RqplKQ;8KbW>yA+ez8*T4Fp2wq>r1;>1mJ(<^2T z4#P60oN8-4-6$OpSY^kcpGs(Un%3sz^{6q;SVRmIA5DMmA>Ds+2SYAq^1p4cnoDSP zJsqKYzOBP@HWtlGLo+f6pcRd;R%NtbdR6EGV*2UKZF3aQDTofBF5iP9?=*+F$h`ug2It4#kHmfS@z78B7 zd*7XCcbj;sncSajnslb#x66G|lhhJgyk|>Cb1()+jHiqvdB6z#Jp6$>;71w!7T}B) zfYyg|6>K73aXZO_L;_(Z*GLz*o$@((2g#E}=I(z7+92h;D_4=JeC>lTMAFmg@XiQ_ zLKB#^MXzq@$*_+1XS(=7zkUt;EKJSLVbJs$vKhht^aaCeZ5{~(1_7XV5kz=8Nia5C zf%DM#Nq0ypld#Y{N)wbZu_hvzSXdFd)6cQqC&nnbP^~V*=nQcAATX@7*o&~8$oqc{ z6Gm6cE8H?-LZvRrTRA$i+_O2F3U5kWEg{lCdqz=Z!D5Uw-uuJ#=-k=|yHO3HyeleK zGt}ugi%EWM`6{?#oozgNMn*^exjJIuok;|_3>MKB$fNn_Tt}0^i)&@6^7#rZjG+Sf z9ZM|!;7^hgfQC(7yR;pwI5`!?$*>r^iw~Lh4>Qy|t#u5^snyG_5a55boXQr#P(j<; zLs1=;GPs3I1mmFMJu&@LK5^j)mjs-&j3CD2W|iwPw+hlI+Ls6*115{kVcS9`%GB{| z$oaQww=GC?P)nn;knk?+(^K|V^^Zhh;Rp@+U<_T#8X|=WB*7mvqgg*`0LF_YMlY zW+DCq5Y3UCw0fmc`KxE)L!PpLAiE`lweCKjS=UNy5RsL;5<)ckeGl(S2ooozX9?QhI#tj>lBU z#%pix*ZpoT3zNoicPcDWGhUt={l21-Q>I^_d05&1sdfP_Y5rXGDd1sRc@}`rl z-uu?QGlXssYd?qYqyGMiu*ndxB!AYDh*TW<(Ju>cOT*{HAgHxSV z)DR#9nuEOe+v2v^yRta|AV#4s9QA>ECXQ2JxiRd-hFQU7`(AMadtr5=xw|8lg=@js z^U*e{zIgtom#IBv9-k5bZP)_L;M9leLT1=^Z%3bmeeaq3e{HsSLFevBZsdp?jvF%U zgT9pu^9T1b?_`FImd2%;MH6y`14@0d{SxnuoPt5i%iB(Mmn0CXR=QNDhSuJ0 z8PJ0F-~rw zqn0UPp`?GUIerBv8Xfro@Qo_kScQer+Vo!>LC?PjEv{`R2 zQhf>TUGwxW*7>35SnJMcDq)#z`-7;$=dwW4Vr(;+nsL$J#=Q_M#^`x(iRAD4#^Nn- zt?>LG)w7MN*Ox_!dYaUy?oXDO{cpXG6T4orT{YjlWs6E2feS@xz1kC!AnawJE|g?l zIeT-5qL4FIq-owUP8D`k{0Gi#^0U_#_q{8M{h88HZ)DQ*$??`7Z!{bI5=nEarX1;- zJ$1i|w7}+8wuKT8=StvR9st=9Qba*V_506HuZKA-cnw^9P|J=4eZa6!-&_5E83koyrDt1O!DI$PH2YDV)ZEH51l zHo8{ID!^fciSALcX4sT6;-ksdZO*P2dzxw1eBe(=vHq~ABj@+7F3N0!5q}AX8r?6W za}9tY*MbXB%UY%9q%o&V`0a_x^&bG&O{kQJGlVS37M?bF7NVN+0!+1cUvxO@K=EUC zg0;-cUe=}X<-=qjpL58ya_UBdSGacx1XqI4%iI3=RfLU2+Y!M-%kdv;+U+3XC}J86 zhJuZM_X}zp@_@GEalpp$n+7#(j)1ESS4Q9O6`qFkXa8GJb&?)av8*@0v{qxFYMO3Q z!Q^0$PuY*dIZea7(ROv{AdsxOHI)R&UJj5fYn{NvdUEd20{W($a*Me(MJ6K-V3)xu zrHo|4-7AA@KaUmvqaH^Bf0RG5g57y%!yac$lkT$3&2Q z2scK5FWM7eR~TH9%`U$C9833I;i|};Cj_q>lKeFLn@YH6%{*N6UM1gNGAuE+QlfG9;HA z25&DL)N|U&a{VALFD|uov+Yc1ll=x+yC~mo{6T3)_BVdlBMy=o$8|4xYHf9gK@oTrd4S?j27_|U`tp}-?l<-2e&4&Uy6+SK9+E&5 zhm!(TYbt3g6i-wqHjFiq7<7D1J1#R&A`r-Oby#bXG*HYO8PG{ zqpJiU0U;2a$0V_xz2MY1oeZ3m5YEws#@H`B;8xBmfo#^>)noYnY&6Gab-z2^wMVDo zH1in>WpS3!W;2Fs48xv-_g;gZL6ei(VXEGFQ0ai*0fu<~mBfp$H>^HpXn0aGrZon^ zK_R_T+M?QnZ26hi)Nn=*Vw;K0=z;1?FlxZn9%^tyGXZ-5unbxCsOEMOJ^-6;9R7eD$?w$UcvX z@^-Ric)TxZ$w6>vCOwf}E8SA=y;5~xJN81jL%#hL13ISUM&`_|&CS-5qg*Zwg+Ru3 zxdBvu2l!RByGS%Bll8Q0?^jDz2W6_#P5p!R$1^p(I$r6rZkNlGGM0ZEVkh1OJB#$d zwV$1Dv`HRZT@!U1BkO;N9DqJH7$$+G0>pi@8#k+JnQPbRnxjn^ft4HeACdhic(bub zbCsi`j&`WCA_vTv7dgjLC+X}(GyAq}hr6ZhdtU22WZ6YR{PA4&YZBUn3Q4lu0NouM z2ANXal7SlDy$L(lB8lrIFVIdZ1%*{*COm|~BQK3Wueq30v(kAtf~4*3pRB0a-}*OC z9AOGi&q?6Cv#r5dFYc2q?3us9 zy^ba1lG5oKR$#n6n$K@_r8xAsqs{0tqFpolm^%G~xBo)Hx)bh*%xv^3dGHqy-ZT>U zZFoX0&2?^D!teTUqTOqgv71b>99pOWb|VxIz1ks^O6;WxOK$t&8C?LrU5EKMJ)(swpi00U&w_N$o&)F{(B2A+1>Rv zb?{o3#sNG&zrk;F%R`ex`zR4AFg4ppN}&)M$o*1UTIyi2zP1>XkkD6y!6H=aH)o@x z<13?|^T18UCnbHv!!x02(PnRTE&ryF!z&KBvZ)ExK~{5Rl+ngBNLN^fZ3BOJ(W`}O zoVR|mn$V_GBXZlXzKU-M<$n-R#eEj3EZeN@lj>0`#FP7 z4?1^@=)Y+G^ZaX8p~pV`nNZx($6Xouc1A7imx|4#BR8Sor_8nIDuF>2YBH(%~g20SSAPN*VdZ{XV;+A=y2i!<1)pJ0Jsy0)@Dgng3aZ zevCQQ6F#!@Arv?Kg6gMO#c?eTJuPFQysn#4tlf9dPbs@Mu*)%dHlYz)jC#g?+CNRP z^vwcc>&Ncbvn7DB^@TpzV)noNLO>+E1HBZC(({nV*{NH_TaT%c#kFKP3uVOt+a8GMZ}ib3Mc{$~sT~|S zCTXKm7vD4@nvYamB*lXkR-)n;st^IULYxYKyk2X!QdTc00wVSL+XaP%yq}&8!@D3m z(y(2RQ=>fzNI9ciBjLY%?XwGmRDKF@F+bhZPn4!v97BhMIDtL_miE?O5itB@6yc{| zmtjBk)IRv(zK(#q&@9(lbC-I9<>N7TeHe}r71>1QGQ2S#u@>}MQt{w;2HO=(YpU8%Kr_eX@>o0WON>6#gu26B#Kp!345-% zuQ=!5GI)675Z{RaLZ}vH-IW|Y@hz?hS z%m-6@qw~LQYkfAV6%})C)1UxE<-Jktfela#w>Es1Uj1>{Y$i2ep_DQwg$-VvEPXgy z7;sk81-0!39qOrz4YbzeXFLIro=p0kV_-s|iZ$Q%>*NoC+1{W{r9Wj=ADB?Q02jDg zQb6RWPXX7_C+#(GcK+vr-5_o7-O8*FizGPAt)N1_!Az{c8dY+UFy^u^a%EWu^HX4| zJxUU%4+O#-?+P(>1ytl_1ZsmQ>FqOo5ee0K;t2QoU?f&Iumf6%ii zq>qxpJji$f3(5slxjrK`}d#a+hcA$V~sg38{FenZnE$o8cV|MNC5N``>sn%=#nkk-45}}zuqsf4 z=E>Nvb9G%+b27~y5+jjTmr!;2G5{t6e!`(lrLDj@T$`{8?oh;WE3(>xPsQx;>JJ>vHlUn(U?Nl_e~AqUAQguFzV>ycaq)i8PZ}FaxfF z-e)n^UF^pUP*8<%gJu= z+2rr+_h&1LI3AfhnMh24jd#!wn?QnpvDw{zr1q}}Ahy*l)qk8`s9F(;#_yj|71Uqu z%~}ZsGYI(zV*pM$X^7JLrp-kTbjn(ltz0xv6rJWWYK&`0q~{)TBrLn+p?1H ztL*|gJIoE7Jd5mPoyG#u_^hj?D^N(VBaQ)PkS=*w1DaQ%)lG*qIo~l{v00~;&L zlc+$(?_Ez`*{Vo@8b;M`31{KL+gW)cgF|c5vh2oOSVVF;7rF zhfBR|OyG;b7IzXV#L1k|y7ExY8WVkcP1MX(`g=$-AncFN|0K~JBdp&9Nsizk{ z4uS+hOX|b6_Uk4}-N!C+{r=MS9s_G+0-^05pf`57r@2v*l1s4&9+uD*$YT|qLfP=_ zNr{-%SfuD1dOBBo(}wbfE0YYw`iX=Pb}!K*xE!WmPSPi^h`>mecr4`yQH(9oW2d@I zf;)dB10bq_Ksh1rLh<6?5L~#jEZVtZfyfi()c$I%7CtohXgJLJ=pQg-wlY*;o?%v7 zoHfVjgJ5oqy`7RCdMb3jrt(as;Gz@wj!s+GRBilzDsHsG4Hp` z>%LvA|Kn(N?x*$>}%jP8T%+ay(t(hkMTPm70?d>7A*IXfspL8*csz#X#sn_i}sEY z1VJ2)5Z@&o`A~TPNLE0a`zwQ8-Mbp0Mg@BVs{;?Acl+RUy43rTiR((KD9y=JKKP$G za3?^Jwbp`i`JuA8i~I4%E=qS~_SrA%MktJ5+j!}OOHTA@byU^wU!`;gl1p!4*Q^Hg zy|+fnp~5Opfq#v)t16fXv(sCorep6s$WqOdz%8;~+R-!)^5=0YO^jlOHo@ zS;_s&c^%mf@cMa~+a`RH!Zn?$Fipu42kC!CT3GjFar7^VvWl?AH1eneg5YPfX|&mA z*GYgxZu6 z!HUQjus$~C$)f6B8`G0?Q&ak5PB>H#(zX;#2X$Np+W&K(mm$F3gz4Uv{s`0Cg|pDm zO!7|KPX17jwV{wS&@SJoFM{$BQ4r6-7KKF(^}6biTu87;S1b64tgP!$w?ei(Yz zpk)-J(@hUydobe78m?2-TXhH_@$4x+~16MuXjh+^!U|n!RzBrP6S%U5{ z&0aaw)K8(h{w#Zfo;Y&a-%Nli89Xq?VHv(iv1hk3(zmSU4M`>0M$`Z?ynDPChC-(` zK>}+Y?<34oaUc2@{3rMy5Q%f|&jcIqCKIYsJ;7!TG{p8tQqr}N4_`m-HBz%km2%+c z#ETA(XI|&oyqCE1+Mn_zqYHY1V9-Hs{C+PUg^jl*^pUZ#2RQD&me_-9UH3ibB(6AL z?d*Zb_!}aUP*|45d~bIzuWcyaaQnW{Xwd~M1@Q0gTeGUlO8_Y*@pp2j{BzFD>mTD| zWP4ve;I@;jTBPR(+7QJ_d8Tl3u}zgD@-k$^I7J8ReW(4$XA;AbViLx0sueciNf|eg zUD7F>5!r^*8Mb_dKz7@nF}lC}osHl?YIoXt`%Zf#B%njPe4wOMhRGq%T&=((dC>S& z{CKleIGV~2+Xf&*2?H0kS3{a(lA}3yEaM-X1a}6$74Bk>@6|K|C2yQp1fS*b_#udd z%l&Fs8W0%KLDn_?9po~gWE?7{e84d8lj@N zxc*o1Uj3;DD&7o$Wm2Giz|`{xDz6}FqUGk|r`zL8Jb7wMpz?M3`{Y_vLf9y!P?Q%0 ztE$(>L-$ju+jC)L>ds^^rbvTPclsZBcKv^){jmoSY2Kf$NkTr|=Km^^|88n1pzJH; z^dU;I_*5!B{`Sjx=U9Uy?pB2Z zv)G(!wyFNPZO~7fh_DSE@KZv{W|0Jl-FBM3O3%u2a(yqBf6bL^rW$Ul?zw1Zxk9k_ z9>!A?YoapcX+)0w?K;G1Jpq%htmT~u@J5BEidmCG4m^scsE&-C;mR#BQ?5{Ule z(&+YQ%7Ecu9|SxBJJ_y-aE-q|Ago|@DgB3~6}ei2L#-c8?PRbmhR51VN!HbUSSDe< zB!>}R{$EyJ?*E^a_p=AS+XN5y9ZkzgVd&bRW^?3ki#BB*=-oj*04( zMGR_uL*irbc1+u(oW1K~;x<(hM#Jv+nH31WFvG^RnAjinWGnFjW)?Jft}yX=9?4DG z78WK>xzK?oD#zB^Tmz6%4woW<1MsuUV$MRd*Ow=yPkSI6SpcTPkwZR zJ=@{>8z?{HEocN}2%4B!-ShRzw%|*rD2v?7+to*xtzPJeKHqZ#MQNUpQSSFdIkV#F z&-3V*nAle*O+<}~iU&)tSW_iF5C5mBuZ(MJd!ogm6!+pzkpiVSl;BWkvEuITuEC*L zvEp6`T3m~}JH?&gPO#uFz4!j#d-;-l%I}=L&z>{0X3bhtOy8egoR#CDMo`wGj(zv4 zvxw%7zHt7(>TGi63%+GG_)JbSuG#F7(v7fxfYVXG@@l%R35|HF+>l z#P>qQ0k!X`9@O8I7D!bmN}b7z0l5}ZN@rH_g13y{Mq12$(R6VNr=TMIx0qk%K8Hkc6u*ThOj#U2 zaLfPIK1}nsm?z`U?a*yYa$(u(l(KX8Vt;9+-!#LV+>C;q7Z%j=(4R+q6|b9AZnHJc zC6%8AvZ<>}(6lK6uv)L+1w{`^N?ebjubTbWMZ`1-YbvFrG(u7$e9;)5cWZ_=YxEic z`lZ(PYpu*;fBbV!?i&}`e(qCJAw+tpNP#)3kCb*0tTcA6-7tTo1lA$HOJlmbr+7P= zH;kmxq3=O`r?%?-TL#ZP07cuSrTWwl4r|D+i00Qec6Xjiy+NCbws%zgk^a5?kwT=Q z!znBjOfD$*6q`J_F11Z$vb{OP?)l-PORj_#*3>RJ~|p~PxyIf2Ly-bnI^sy!%*bdk0iE(Z2;eznOj~w!ie#)4OhsKB}fbL zN{82rz`&)g7dK`6Ou}H5w;%Ez#rH7Z;cLVc3Nzw)xl6Fzp5W#7`3LTg|{Hl#@k| zxQ5e(cUn5IE~|+&Ry_EqlF-0{sZqF*1vdX%Rqn#?bIt_Qu>46rE~r4pYv(p%Vvm9P zXvKvv6|zsx_F^lZXtYG@I#PkYSO7HvRtQ^ou|Pm8|`m7K;&F&{h2ruTsAB#g*zrwgR!s!h4(@rZ1_~ z?w*$H0~acDuaQIRtjDz9^T2pU+3M9`v;Sa*3{-{5!}=rNKexS$$8SD*^YQw?Hw37o+oF~zYq5P;Knzm#DMh}jKiJWZ> zqL*WF(-7jqQG8}Nj}80;M~d&?8WJm!OE3s^Tgw7J-``_hpV3aILeWKLjvMYjV{ zv*pvCE|g;W$`yhAlo%7&?*Y+Od%BXQp{sEgq(3h*HBc6mOmHWS)Qb7a6Uv?mH-0iK zNBX#TFpIO-+u6Y5qsIPN|HG7>)hZoB@>wRfI`~g|%%9&Tfd5u9@#|;f(ds@kq1dU>dg%`>7uo5U1M;(cjX8w##q-QY&&8IH`%&X9 z6YbFHJ&$j#+1qP{ZhLDS(X)}a|FVvjRm_Bs#2@}{rr9HGFMDbg+kqX~Ze@^I2upyt zX~>Zt2P9NzGt%iSJ`{5W+>K0AuQIa);CJK7(D!??1HRGdaJzZAbO6$m|8~A6oh{J| z50oL;+0Fu|O-Zw~dPY3oSO5wbM&>62gJD3*AO^>dW_D;FPc%rYvQ_joQF$)cO{D+9 zoyC5SV*5r~(vFre@L2Y6wwCqjk^?AJVz)eL(8?d0CATLezX>zb8wt8*e>ylqo<_Yi z;)kn(ciepKTI}kdse!@#BMSDW{t$%DiOn*-ki0UmkJ=~-Zhx->#DLwf|*NoqW zJ!^}YP~G0s=?`Bn!ZJCf+$2d@_k~>VRbTx?AphvukJJUtAdZg!Eh()JjLSqvlIgGnD3x3( zNK`G@hr&>{`D5tA%W@0ktTc+vKM?NIf(P2G5QbwMNnJ-VBuN|)Htok5^vIJ1n5)#) z=)oPI`R-`uossv&f{S-`{W7waYNxaqk(HFGT0=mDKJc7k7hGTG?0KaN=I z4c(dIfD=W7)!px#Tt(}5qscxbNJEl`@zzATh+ePtz4T4!69|%QbcxkduC`1sx~$8S zVnvq--L87QdcIErOnU)&#xiN*umYECLGvzsYw=FbF^FR8<8ZK~>#6_s7tGWXfk#-Uh(<_{A zO&EXhh?D+`F8(EUC&;gV;JEaq%1#}XC`Jc~sly3@@|MqVsHULlTUZL_u7tEq8PDf0 zZELMwQO&L=qYpW!ZaO%WcQr#lq=H)q%3fF1lUH$NMUpE)$m|IX`H3E{IyZF z3#*Qb9lAZZC?j3`Lxw3?#x(z+NM{_n!lGlV(`gh1D~>`tH5GdTLwl=}SC>U`F@1qK zd3=k8YO$H_Ar@`#t6PXu{xYWtikudVxGAS&foF09i(88z`@;y8Fx+*(Se zZW>4wE9$4g510EQA--3L4wu5QC0^x@{_Ua5`Jth94`&BG!jA+YOf*V{IssjwEuaRs z^@w$$xMmahYXeo#R6+OIvQ@;ffmE9}6FcEFA2}+0S8Tf3m6GuX%_0ZH>fRKKm5Gxe zSi><Es|69a8wDUKG2i1Z>KRt zt5ZU9jC1Yo_1V7*eZAiqh-iF^(%|t7N#R4rRb!+z@PFJ#m%Ryy8h15~-J_T|Fveqb z1Lj|t6}WKn*^c835+W#3xH^1l{0HXII!k_iI>y}&e^92oV@pisj4$|JE$op_Z}WJ#fWc~xMuHF-pa4NK z6aTQNsLGvdB#Bi6KmIDAS2)EaCoF(wavCSVj?|5l9<{7niDpGWW-wy^T5HnH#0Bp# zlg+8x6cF@-{VRYwI9smMYlZ-O*Q{sE>?^;Dk@-QGsJsMR z4bp4EILxG^u4)7YN4XFQ2{*XO?1yJ@C>X^FP}#mP^se^W%yKP)C06Pk64LL#Qk6s&g-~d1S$ycGLTNU9!>#x7 z`Zan8O5wu=PTw8MC|PUTH~wguEf)Bdq97X%^i)c(`9*D>amfwr#@?S5kBQVkfiToa*dEhB)iZnSvT>7ar05*k z8-$2D{H{|8r+q^nvl0AL;#s5j@^FedcDSBwWc?-JJEd8R(wd`x;Mw_N*B)cTH^0>7 zZinYqFI6?QzCz;Us)%qWS3ZMBRH3g*?77q%4m-oxB>_nxp%WkFseb87h2Ndheui1T z6-7eMr_y<@gmucF4EtCbq};ywOhpzdX2@j;x)pe&uqAmqIr-Z!(}gU%cD;}oSU16V zzOKPZbWDKB2gyCj=#1dO3$thzmPmi&p``(6l9tEqaF7(hh&AiMdZJ72Z!A&AogAX@ zH{-2vga(O`;=FwgYz_mrE9Q{Qp^8vm#^q7>c#>(moY(}}_L`?t0{;crT z9lrAIDWrQT)Ie4LPB!Wnu!jmPf%+P?QvdhoJKxJH{x1`bk8T@2O_|J>tTgg|XpKWQ zW06u!f)hk#gja^LE_FQhHtXL@J*D#5!5wa7EAVsi4rK0g70SQYU6tz?`rPLFrX+rq z4kEoe#57LWo}L1(@PKdSlTe|g?g7YpU$e!GGo`JLj+W(Q{BY|aVWP>nvb>A&g^|JP z#EQY4&fRzf5m$0Yp0zBvI6}A#xJG2Jc)xQgzg-azL<(d$265GW^4y>^#BT^jtcqsY zUgCWBns&QWL|I8eMU+Wp)oY1n-d>~s&|?ywtYws?Vwvi3$K6Tbs0ejZvUjl4cY%=vuOF_v7-ab8ccWN*Ib>2=+*NcUzC#mBuo z>#Uy8wL*U$r%vPabn`8w?&)x($%vFVC87I`)7V!7t{Nzf#5GWO$60{*1&szEoiFTL+6`o#l^aHg;M97PZ`a%$eP=S@7r98=A&<3qp zh|*vWZ;;<$xEInd2At$qEN~Rl^s5}i1v*dg4H!6_c*5G8&p~0)CA$L8lYlgQv=9US zBF}ZeEm?OeRTFAy$H@X&EM_aH_V>$EJmFBH|`v9$kpx5G^e{NY*F&km%U>yn<%}# zLz$PmIfXKH=_($86@A=IWe*YcX;_@Ai4Mp}RFI`dQ>~DZj6*}keGlQpG!3m2r+m9a zsR%*($%><^oBS#sC6sRT^}f_(K=>d?lxCy2Fu0xYrPuko*P@4+FzzRK#h-+Vdz8~rGFNn*Li(;-kW)}Sgn0lFkTeu5OnkyTsfY?L7MEv-e-)SMO2#4As7BI4zs?H0jiJwz21<3j7NKYLHLbs zSsCF|@-`v*^dBhL-t0e=)TdKZ1{AC}u?HlcMCGWnUT7Fyk0lInqyq2@w2q_j@NMXz zRxL{E{LXMjdqGNZVaNn9>#Hcp_qD@V#}AKhUQ?26BBl<=CQ|xy^)x94is!kYxF8v& zaoP(G*Tr*hfBKC0O@Nj!d?otA>$k7QaLOwhz@H?<0Sm!%?5rX9TNGn0!Kx4xtha?X zwg%7JB{Ovv1qgCK*D&D95cy$cLX+dz{@C-Dy}F3mWV}@jF~0lq9=rur$H)TlC(_e9AQ`Bft~z z@o}T=@o-A2wAnq2QGrATJP=a|crmNiv>ovdeINFr@FVTqQF0|zhi%~JJKVrGien|! z%Vo)3-xPPpUlF1Gk$nr@{DyD&Q$n~@HkcS0-X59CEy(vpj?+%iaE2(|(-k&(==XB^|6but#Nnjoj`1TzKhy$j;;2(&OI zEJJN4=RZ$yIp0*pY5d|St6i^HK5V(Z=e>>`epmbZSFV0}S)QZK-1cdkh49IvHTFBL zc9mioERKAO-SI+Yy6~9>iWch)rI+Ih+X^BSmh(Y;k3zvhPxEJxmiC*pAw!c$#)SqkGc^WyxRMiAnse|7*|-+m9r`rC5-9Q zcSwPOoiLa2m5y_NqEldZKo6# z!--LdBbo)iwCv~&#Sl<2(F9vC(y{|&H$4B44h3@7-&4qSii?K<`a{sx3~f0%x6;p` zUy()kpDrx#?nDGwzs6_p?>SJx!|sIONJM5TfNtv*N*3TCKB@qL^5_?qjX@ z7z&GJj^c#y#|)HYf*BfhQSa+x1rWp2!D_jX^Xm|&4ls^vp>DxfY3oB#!LD2{7Rk=n zRuN90zIX=M05jE>fBMdP94Ls^C#c~wL9ZwEWe413gc0wpgT5eVDVFh|@*tauwQEyj}a4&C!2AtMmTlV!dM*9>WJpVadAw99~N!1w%cj^FFRrS$#0r!e_?SfO+ZI zGlp~{qK2CP8RSwHl#V6s;(Jl6!P`Dmp@fx5*V5F`(4rtQq|ADYSf3t@I%^fr_d=!{b19^TfU!4(d-Ja`iQ8$CEAPC)bD3l;z_3n zPA@cjbVl3j9+C?;Fk)vJVwi~Xl~_kD6G>*dKery}eYF!}heyt~+G^HPU?PN!L7oA=y5v6WG+$84U(l3_6SzUS?}GUtAF?Qc3zeR>#pM0+^-LewX@*KzN( zTf~|L2fY4>u%6E-zN0}L4;66n7-SAz>Z)W8cMLpU)tg`iUhaoVBh+RT2{_g8N z3G?0^=>%heFUBAVp5Dy4MEqT1c3s-HulY4#avT<_T3$*0(Ub~$(13$I1KTpStOdHz zmLa|uw}YiL%B)9G=^a)tLXf|*0jbhT&UXp`jn4bG>Cxbk^Wa?Xq5A$Ak2ff<0Scc^Ua(P>R%d^D4)=bKmCpTu>*rW#j_LZ4&S5+ z&@Mha(kV@ch_@o7dkU*f2^l|LNPchB03YT*q4nGiOP5yR>_USlTrGQCbiZOPfT<54 z*y=MTU#SXH415)=|5~JV`rx7i#VZ1`ln7-@l;Wm%-zDOAjbsfa8Od79LTpE8Pl2T=> zG=8YDy@Dv!ahCiYpk!qQ#`f!f#0mdRJPPQe8AZ&>PnZaCeRsCA$F*Q>xmdM~%5pOU ztD-jTLJJ?_dexSLFB<=G-2;qLJ}L>X=POb_#O?tTzuv zEG>0pGi)JeczT$!FtFtb&7YIi4z#7iA#U2JMBvlXOGgDPN_>Gji4Dv@RY9!kqajYN zxEuvG*|P=|@O>!l#wDuhVFRI?v4r=@e9x|I`>hZ#>CF>A1;jP_&K2_w5vYgf=LL68 z*s){9k)Y!S4jJJxK7Zf9?3T+Z3voly>8|4A4P$iLYG(DwxzHSgA* zrCeX)-dsL%LjGtyg>?XUNnIY@wrYc={Jd-9Ki!I;ED?GLQpI^(?tT&U-lEqt?n#6V zdO39%05z><6_c5Kl{ygca2_7(eN7&GZzE@j$XaN|K)`y#CEa_ICrf>_5b?J$0V;Wg zBJyY`G()io0Wz}0_@1u@k?Yj`1M)X>An-5(@6+f0oalNKO8+PC+d{B!*FGW81rID} z?a)1#f(AkNeCY6BZ?D^EU?cCF^-Jg5J)6JM<#Xq+KYAPE!8b{GnEOqBI zO5StA%E;Xa*p|%xkq2oQ9Pm`M7tU|bCyD4QfDh+YD|i3<$@-H1*gQQjVx{|(emMKz zPrn_5L<5a`Pl1>+gRgDrXEP6*rgwG=gWI2hP>-{@7=8cCcg@b%*2SEbTG#cD7=RkkNkH?{*p{ePs#jCOOM!GMcGO5!5n&gX!4I@-Bt( zzVknOQr&(7x|Bmz_trcMIy4)H)fO;7t`qik7}NO?pYdDw1!kqX=;q)by9FpSOsq2y z@*3T8Kdy`0g=6+n-E6)>@1S=m@oI?a=tDUdo#46MdWD~K-NCo* z)1;<`q>6x@HwZ9@%@BqlhKX7u-4hc|$?DrR`QD+Izg*4y39)jnsCgBZCFC*H7e#Ef z=`sPiCZ#*LoZ$QFAkumdy&5R~ww@4zS94ibX*rf&-+dtSaxTI0j^ZsV%gfD(Kj^Rg z>)v>l)%4Tt1?Ik9$owux!(_iA-^GnQhj!D3mN&T4Vfy{rbKpZ)CKKqmMLzkHE?^h% zAvO$yk^tg&bmHN8G_cB7$ZgcJptw0Ry z28}pj{Hco^nBk0FzR;E-9YgvFCRb+GljLJcRz&BJwT(R2r2Kv<+ZMOGymkAlkcdOg zeSRz`2PiRBK{cK+;MXQS;`xAlQ&A|)l}7m8X61XV)$<2M7oCdf>76rW*TSAX!@tPF ze;Z$n3ora_;GCtmibi5T%gp!auHX~oe67Kx$kyf0AT=U_uHjOs23w@OT(L|n<<$e= zIfDHheQ@Y&kteb-CnhT^J_roG0N2z6^i-}_x!E@Pzf8O&)Y4E0xfR&yG*0R5?D)FL z;N}ntWQdJ@-|mgTSM5W`Sp6ASY0wn1Jlp2O=e;xgVuF}8z;JZ@+r=405(3p7anScl zQh+olX0y8@q2~FC5b^%+F~tbvMl*acBy$LkrVf!pGf~?W+t(Ea?pwgpJK~HmuL8nuI;zp ze5C<4Ar`^<#7St+9G1FIu4CuW>o zw0qoDRbmqFztf5lh=JSGhkfqmYj}mXzE}^OSwEn42>&zdX3CITSNEeo`puVGa}jn{ zLZ5}Xe)qKsf!=UF4i}1AFDZ~g2awxP^i|vAbkxa-x{;|2cr7qr$qAr5ID-!_gu|41>o3HzKbo?FoL zb_E>SNKCqS+GcCtfHI%&qv3szsyKNcle4UL#bao;h#4i?V4r5Upsr&VCfY;ixC80? z(KxzW%F}a~+3O@S_^PZRt;tu!2Y%+j=Vta%cR0krqWxiqk(D-W;dK8`2|fqMibB(^ z)KO=t6frQ1NQa6?fP}S2AfC1LFn%~sPt7+BF;aGghC_HJUalpAxH)mlOaf&}4-5lr zmUipS$}5xDh-o$#s=vNrrpQH(YZyVIADt!s2fv8#D>ak1DR_?nJMB%ixcvQP2+yGo zJoQ8tAC(w&V1V{8uJrU0)K}9tB>Pl6ny*K_Z945!WjoTfU^aXdA&O=(l0%{;J=|1HtU zon*COYFeKWl^TEC_jg1t|2t0sG)n$Rk_V2-g6TO~-z8w0z4~SEw(Sz#$VBqXU_cP6 z!sXI-HQtu}>?MuxI4iYRE5!%vUe0^#MjyYX9~uByV5^tvY*4X|N}c-K9+VdqwNDFe zo+3ZfU(|3?YLGrp$8ON6Fz67ogI+I)ff(vM45I>fcE;lzjk(iE1N_(pqVIvd!S2;aXxu6&URh z6%!(CicM=LSr_&;bz$ppF6eu0JV*S=t5VWW(X02i`*2e2HuArBq9s3)xDdscDGYCR zLzo;5!^uK@MojSaPaC!Q{qx3kNCrF4a>0a@PIS?~$qlRtnu!DT&$`yZ^w#E6gM)oO MNhwHHh#Lm|9}}s57ytkO literal 0 HcmV?d00001 diff --git a/docs/images/test-framework2.png b/docs/images/test-framework2.png new file mode 100644 index 0000000000000000000000000000000000000000..62610bae4658722c1db1bafe69e3a58407fee213 GIT binary patch literal 151062 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

2aVp=&gufsLunsHqqR*C>n*JsMK^5gW3 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

OF#eW5;ygiAG~lpo&LOh>(Tf9C76}tC6OlCQ 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 WwE|X4MNg3a)b4BFE4XX<;(q`LZaDe? literal 0 HcmV?d00001 diff --git a/docs/images/xdebug-php.png b/docs/images/xdebug-php.png new file mode 100644 index 0000000000000000000000000000000000000000..7f0ffb97d95a6c4a29c1a6262ec8f9e80905b5d0 GIT binary patch literal 143142 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 '', 'password' => 'mypassword', ] - )->assertStatus(Response::HTTP_UNPROCESSABLE_ENTITY); + )->assertStatus(ResponseAlias::HTTP_UNPROCESSABLE_ENTITY); $decoded = json_decode($response->getContent(), true); @@ -41,7 +41,7 @@ public function it_responds_with_an_error_if_the_user_email_is_null() 'POST', '/api/v1/auth/login', [ 'password' => 'mypassword', ] - )->assertStatus(Response::HTTP_UNPROCESSABLE_ENTITY); + )->assertStatus(ResponseAlias::HTTP_UNPROCESSABLE_ENTITY); $decoded = json_decode($response->getContent(), true); @@ -59,7 +59,7 @@ public function it_responds_with_an_error_if_the_user_password_is_empty() 'email' => 'sally@foo.com', 'password' => '', ] - )->assertStatus(Response::HTTP_UNPROCESSABLE_ENTITY); + )->assertStatus(ResponseAlias::HTTP_UNPROCESSABLE_ENTITY); $decoded = json_decode($response->getContent(), true); @@ -76,7 +76,7 @@ public function it_responds_with_an_error_if_the_user_password_is_null() 'POST', '/api/v1/auth/login', [ 'email' => 'sally@foo.com', ] - )->assertStatus(Response::HTTP_UNPROCESSABLE_ENTITY); + )->assertStatus(ResponseAlias::HTTP_UNPROCESSABLE_ENTITY); $decoded = json_decode($response->getContent(), true); @@ -91,7 +91,7 @@ public function it_responds_with_an_error_if_the_request_does_not_contain_email_ { $response = $this->json( 'POST', '/api/v1/auth/login', [] - )->assertStatus(Response::HTTP_UNPROCESSABLE_ENTITY); + )->assertStatus(ResponseAlias::HTTP_UNPROCESSABLE_ENTITY); $decoded = json_decode($response->getContent(), true); @@ -176,7 +176,7 @@ public function it_responds_with_a_404_when_attempting_to_signin_a_user_that_doe 'email' => 'sally@foo.com', 'password' => 'invalidpassword', ] - )->assertStatus(Response::HTTP_NOT_FOUND); + )->assertStatus(ResponseAlias::HTTP_NOT_FOUND); } /** @@ -220,14 +220,14 @@ public function it_can_logout_an_existing_user() ] ); - $respose = $this->json( + $response = $this->json( 'POST', '/api/v1/auth/login', [ 'email' => $email, 'password' => $password, ] ); - $decoded = json_decode($respose->getContent(), true); + $decoded = json_decode($response->getContent(), true); $this->json( 'GET', '/api/v1/auth/logout', [], [ @@ -260,7 +260,7 @@ public function logout_responds_with_an_error_if_token_is_invalid() ] ] ) - ->assertStatus(Response::HTTP_BAD_REQUEST) + ->assertStatus(ResponseAlias::HTTP_BAD_REQUEST) ->assertExactJson([ 'Not found or Invalid Credentials.' ]); @@ -282,14 +282,14 @@ public function it_can_validate_access_token_success() ] ); - $respose = $this->json( + $response = $this->json( 'POST', '/api/v1/auth/login', [ 'email' => $email, 'password' => $password, ] ); - $decoded = json_decode($respose->getContent(), true); + $decoded = json_decode($response->getContent(), true); $this ->json( @@ -297,7 +297,7 @@ public function it_can_validate_access_token_success() 'Authorization' => 'Bearer ' . $decoded['token'] ] ) - ->assertStatus(Response::HTTP_OK) + ->assertStatus(ResponseAlias::HTTP_OK) ->assertExactJson([ 'validated' => true ]); @@ -314,9 +314,9 @@ public function it_can_validate_access_token_fails() 'Authorization' => 'Bearer invalid-token' ] ) - ->assertStatus(Response::HTTP_UNAUTHORIZED) + ->assertStatus(ResponseAlias::HTTP_UNAUTHORIZED) ->assertExactJson([ - 'error' => 'Expired or Tnvalid token.' + 'error' => 'Expired or Invalid token.' ]); } } diff --git a/tests/Feature/CommentTest.php b/tests/Feature/CommentTest.php index 32a8b0d9..d83d8ec9 100644 --- a/tests/Feature/CommentTest.php +++ b/tests/Feature/CommentTest.php @@ -223,7 +223,7 @@ public function it_cannot_destroy_user_not_owned_comment() 'Authorization' => 'Bearer ' . $token ] )->assertExactJson([ - 'error' => 'You are not suthorized to perfrom this action.' + 'error' => 'You are not authorized to perform this action.' ])->assertStatus(Response::HTTP_UNAUTHORIZED); } @@ -375,7 +375,7 @@ public function handles_when_not_user_and_not_own_comment() 'Authorization' => 'Bearer ' . $token ] )->assertExactJson([ - 'error' => 'You are not suthorized to perfrom this action.' + 'error' => 'You are not authorized to perform this action.' ])->assertStatus(Response::HTTP_UNAUTHORIZED); } } diff --git a/tests/Feature/CookbookTest.php b/tests/Feature/CookbookTest.php index 8beef875..ac61f228 100755 --- a/tests/Feature/CookbookTest.php +++ b/tests/Feature/CookbookTest.php @@ -6,11 +6,13 @@ use App\Models\Cookbook; use App\Models\User; +use Illuminate\Hashing\BcryptHasher; use Illuminate\Http\Response; +use Symfony\Component\HttpFoundation\Response as ResponseAlias; class CookbookTest extends \TestCase { - protected string $bookcoverImageUrl = + protected string $bookCoverImageUrl = "https://www.glamox.com/public/images/image-default.png?scale=canvas&width=640&height=480"; public function setUp(): void @@ -25,7 +27,7 @@ public function setUp(): void public function it_can_retrieve_all_cookbooks_and_respond_with_a_200_status_code() { $this->json('GET', '/api/v1/cookbooks') - ->assertStatus(Response::HTTP_OK) + ->assertStatus(ResponseAlias::HTTP_OK) ->assertJsonStructure([ 'data' => [ [ @@ -41,9 +43,11 @@ public function it_can_retrieve_all_cookbooks_and_respond_with_a_200_status_code 'is_locked', 'alt_text', 'tags', - '_links', + 'recipes', 'recipes_count', 'categories', + 'users', + 'flag', 'author' ] ] @@ -56,7 +60,7 @@ public function it_can_retrieve_all_cookbooks_and_respond_with_a_200_status_code public function it_responds_with_a_404_when_retrieving_a_cookbook_that_does_not_exist() { $this->json('GET', '/api/v1/cookbooks/0') - ->assertStatus(Response::HTTP_NOT_FOUND) + ->assertStatus(ResponseAlias::HTTP_NOT_FOUND) ->assertExactJson([ "error" => "Record Not found." ]); @@ -86,9 +90,11 @@ public function it_responds_with_a_200_when_retrieving_a_cookbook_by_id() 'is_locked', 'alt_text', 'tags', - '_links', + 'recipes', 'recipes_count', 'categories', + 'users', + 'flag', 'author' ] ] @@ -119,9 +125,11 @@ public function it_responds_with_a_200_when_retrieving_a_cookbook_by_slug() 'is_locked', 'alt_text', 'tags', - '_links', + 'recipes', 'recipes_count', 'categories', + 'users', + 'flag', 'author' ] ] @@ -152,7 +160,7 @@ public function it_responds_with_a_200_if_the_user_is_authorized_to_view_their_c $this->json('GET', '/api/v1/my/cookbooks', [], [ 'HTTP_Authorization' => 'Bearer ' . $decoded['token'] - ])->assertStatus(Response::HTTP_OK); + ])->assertStatus(ResponseAlias::HTTP_OK); } /** @@ -180,14 +188,14 @@ public function it_allows_a_user_with_valid_token_to_create_a_cookbook_resource( $this->json('POST', '/api/v1/cookbooks', [ 'name' => 'test cookbook', 'description' => fake()->sentence(150), - 'bookCoverImg' => $this->bookcoverImageUrl, + 'bookCoverImg' => $this->bookCoverImageUrl, 'category_id' => 1, 'categories' => 'keto,vegan,test', 'flag_id' => 'ng', 'slug' => 'test-cookbook' ], [ 'HTTP_Authorization' => 'Bearer ' . $decoded['token'] - ]); + ])->assertOk()->assertJsonStructure(['response' => ['created', 'data']]); $this->assertDatabaseHas('cookbooks', [ 'name' => 'test cookbook', @@ -223,7 +231,7 @@ public function it_does_not_allow_a_user_with_valid_token_update_a_cookbook_reso $cookbook = Cookbook::factory()->make([ 'user_id' => $otherUser->id, - 'bookCoverImg' => $this->bookcoverImageUrl, + 'bookCoverImg' => $this->bookCoverImageUrl, ]); $cookbook->save(); @@ -235,7 +243,7 @@ public function it_does_not_allow_a_user_with_valid_token_update_a_cookbook_reso "alt_text" => "this is an updated alt text" ], [ 'HTTP_Authorization' => 'Bearer ' . $decoded['token'] - ]); + ])->assertStatus(Response::HTTP_UNAUTHORIZED); $decoded = json_decode($response->getContent(), true); @@ -246,7 +254,49 @@ public function it_does_not_allow_a_user_with_valid_token_update_a_cookbook_reso /** * @test */ - public function it_forbids_lesser_beings_from_deleting_a_cookbook_resource() + public function it_allows_a_user_with_valid_token_update_a_cookbook_resource_they_own() + { + $user = User::factory() + ->make([ + 'email' => 'sally@example.com', + 'password' => (new BcryptHasher)->make('saltyL@k3'), + ]); + $user->save(); + $user = $user->refresh(); + + $loginResponse = $this->json( + 'POST', '/api/v1/auth/login', [ + 'email' => 'sally@example.com', + 'password' => 'saltyL@k3', + ] + ); + + $decoded = json_decode($loginResponse->getContent(), true); + + $cookbook = Cookbook::factory()->make([ + 'user_id' => $user->id, + 'bookCoverImg' => $this->bookCoverImageUrl, + 'slug' => 'my-new-cookbook' + ]); + + $cookbook->save(); + $cookbook = $cookbook->refresh(); + + //update the cookbook + $this->json('POST', '/api/v1/cookbooks/' . $cookbook->id . '/edit', [ + 'slug' => 'updated-slug' + ], [ + 'HTTP_Authorization' => 'Bearer ' . $decoded['token'] + ])->assertOK(); + + $this->assertDatabaseHas('cookbooks', ['id' => $cookbook->id, 'slug' => 'updated-slug']); + } + + /** + * This is intentional and a temporary measure + * @test + */ + public function it_forbids_everyone_from_deleting_a_cookbook_resource() { $this->json( 'POST', '/api/v1/auth/register', [ diff --git a/tests/Feature/RecipeTest.php b/tests/Feature/RecipeTest.php index 6d4a5460..acf989b6 100755 --- a/tests/Feature/RecipeTest.php +++ b/tests/Feature/RecipeTest.php @@ -13,6 +13,7 @@ use Illuminate\Http\Response; use Illuminate\Support\Facades\Auth; use Illuminate\Support\Facades\Log; +use Symfony\Component\HttpFoundation\Response as ResponseAlias; class RecipeTest extends \TestCase { @@ -166,6 +167,50 @@ public function it_cannot_clap_for_a_recipe_that_does_not_exist() ]); } + /** + * @test + */ + public function it_can_show_a_recipe_by_id_or_slug() + { + $user = User::factory()->make([ + 'email' => 'evan.reid@123.com', + 'password' => (new BcryptHasher)->make('pass123'), + ]); + $user->save(); + + $token = Auth::attempt([ + 'email' => 'evan.reid@123.com', + 'password' => 'pass123' + ]); + + $cookbook = Cookbook::factory()->make([ + 'user_id' => $user->getKey() + ]); + + $cookbook->save(); + + $recipe = Recipe::factory()->make([ + 'cookbook_id' => $cookbook->refresh()->getKey(), + 'user_id' => $user->getKey() + ]); + + $recipe->save(); + $recipe = $recipe->refresh(); + + $searchBy = ['id', 'slug']; + + foreach ($searchBy as $key) { + $this->json( + 'GET', + '/api/v1/recipes/' . $recipe->$key, + [], + [ + 'Authorization' => 'Bearer ' . $token + ] + )->assertStatus(ResponseAlias::HTTP_OK)->assertJsonStructure(['data']); + } + } + /** * @test */ @@ -366,7 +411,7 @@ public function only_supers_can_destroy_a_recipe() [ 'Authorization' => 'Bearer ' . $token ] - )->assertStatus(Response::HTTP_ACCEPTED) + )->assertStatus(ResponseAlias::HTTP_OK) ->assertExactJson([ "deleted" => true ]); @@ -579,31 +624,33 @@ public function it_can_create_a_new_recipe() ]); $flag->save(); + $payload = [ + 'is_draft' => 'false', + 'name' => $faker->jobTitle, + 'cookbook_id' => $cookbook->refresh()->getKey(), + 'description' => implode(" ", $faker->words(150)), + 'summary' => implode(" ", $faker->words(55)), + 'imgUrl' => $faker->imageUrl(), + 'ingredients' => [ + [ + 'name' => $faker->jobTitle, + 'unit' => '2', + 'thumbnail' => $faker->imageUrl(), + ] + ], + 'nationality' => $flag->refresh()->flag, + 'cuisine' => 'spanich', + 'tags' => [] + ]; + $this->json( 'POST', '/api/v1/recipes/', - [ - 'is_draft' => 'false', - 'name' => $faker->jobTitle, - 'cookbook_id' => $cookbook->refresh()->getKey(), - 'description' => implode(" ", $faker->words(150)), - 'summary' => implode(" ", $faker->words(55)), - 'imgUrl' => $faker->imageUrl(), - 'ingredients' => [ - [ - 'name' => $faker->jobTitle, - 'unit' => '2', - 'thumbnail' => $faker->imageUrl(), - ] - ], - 'nationality' => $flag->refresh()->flag, - 'cuisine' => 'spanich', - 'tags' => [] - ], + $payload, [ 'Authorization' => 'Bearer ' . $token ] - )->assertStatus(Response::HTTP_CREATED) + )->assertStatus(ResponseAlias::HTTP_CREATED) ->assertExactJson([ "created" => true ]); diff --git a/tests/Unit/Controllers/ControllerTest.php b/tests/Unit/Controllers/ControllerTest.php index 72c4c21d..e9e714a6 100644 --- a/tests/Unit/Controllers/ControllerTest.php +++ b/tests/Unit/Controllers/ControllerTest.php @@ -18,7 +18,7 @@ public function test_it_is_instantiable() $this->assertInstanceOf(Controller::class, $cookbookController); } - public function test_it_can_retrieve_all_cokbooks() + public function test_it_can_retrieve_all_cookbooks() { $service = $this->mock(CookbookService::class); $expectedResponse = new JsonResponse([]); @@ -29,7 +29,7 @@ public function test_it_can_retrieve_all_cokbooks() $controller = new CookbookController($service); - $this->assertSame($expectedResponse, $controller->index()); + $this->assertSame($expectedResponse->getStatusCode(), $controller->index()->getStatusCode()); } public function test_it_will_throw_cookbook_model_not_found_exception_if_cookbook_does_not_exist() @@ -58,6 +58,6 @@ public function test_it_can_retrieve_cookbook_by_id() ->andReturn($expectedResponse); $controller = new CookbookController($service); - $this->assertSame($expectedResponse, $controller->show($cookbookId)); + $this->assertSame($expectedResponse->getStatusCode(), $controller->show($cookbookId)->getStatusCode()); } } From ca0608aa9f8fa791efc73ae83c002e79124291a1 Mon Sep 17 00:00:00 2001 From: fokosun Date: Sat, 9 Sep 2023 21:04:30 -0400 Subject: [PATCH 16/17] fix whotofolloe --- app/Http/Controllers/UserController.php | 7 ++++--- app/Services/UserService.php | 6 +++--- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/app/Http/Controllers/UserController.php b/app/Http/Controllers/UserController.php index a6371868..379dfca7 100755 --- a/app/Http/Controllers/UserController.php +++ b/app/Http/Controllers/UserController.php @@ -21,6 +21,7 @@ use Illuminate\Support\Facades\Mail; use Symfony\Component\HttpFoundation\Response as ResponseAlias; use Tymon\JWTAuth\Facades\JWTAuth; +use Tymon\JWTAuth\JWT; class UserController extends Controller { @@ -119,11 +120,11 @@ public function followUser(Request $request) * The logic to get who to follow is undecided yet * For now, this just returns the latest five unfollowed users in the database */ - public function getWhoToFollow() + public function getWhoToFollow(Request $request, JWT $jwtAuth) { /** @phpstan-ignore-next-line */ - return ($user = JWTAuth::parseToken()->user()) ? - $this->getWhoToFollowData($user) : + return ($jwtAuth->parseToken()->check()) ? + $this->getWhoToFollowData($request->user()) : $this->unauthorizedResponse(); } diff --git a/app/Services/UserService.php b/app/Services/UserService.php index 02bd40d8..ae3f2051 100755 --- a/app/Services/UserService.php +++ b/app/Services/UserService.php @@ -109,8 +109,8 @@ public function update(Request $request, string $option) public function findWhere($q) { return User::with(['cookbooks', 'recipes']) - ->where('id', $q) - ->orWhere('email', $q) - ->orWhere('name_slug', $q); + ->where('id', '=', $q) + ->orWhere('email', '=', $q) + ->orWhere('name_slug', '=', $q); } } From d0060b61b9d23210dd8b3a7a844d6481dc0e9818 Mon Sep 17 00:00:00 2001 From: fokosun Date: Sat, 9 Sep 2023 21:06:30 -0400 Subject: [PATCH 17/17] static analysis fix --- app/Http/Controllers/UserController.php | 1 - 1 file changed, 1 deletion(-) diff --git a/app/Http/Controllers/UserController.php b/app/Http/Controllers/UserController.php index 379dfca7..f35df16d 100755 --- a/app/Http/Controllers/UserController.php +++ b/app/Http/Controllers/UserController.php @@ -122,7 +122,6 @@ public function followUser(Request $request) */ public function getWhoToFollow(Request $request, JWT $jwtAuth) { - /** @phpstan-ignore-next-line */ return ($jwtAuth->parseToken()->check()) ? $this->getWhoToFollowData($request->user()) : $this->unauthorizedResponse();