diff --git a/pets-api/app/Http/Controllers/PetImageController.php b/pets-api/app/Http/Controllers/PetImageController.php index 7e3c3e1..2665234 100644 --- a/pets-api/app/Http/Controllers/PetImageController.php +++ b/pets-api/app/Http/Controllers/PetImageController.php @@ -5,11 +5,13 @@ use App\Models\Pet; use Illuminate\Http\Request; use Illuminate\Support\Facades\Storage; +use Spatie\LaravelImageOptimizer\Middlewares\OptimizeImages; class PetImageController extends Controller { public function __construct() { + $this->middleware(OptimizeImages::class)->only('update'); $this->authorizeResource(Pet::class, 'pet'); } diff --git a/pets-api/composer.json b/pets-api/composer.json index e6d6b84..58ef4e7 100644 --- a/pets-api/composer.json +++ b/pets-api/composer.json @@ -14,6 +14,7 @@ "laravel/tinker": "^2.8", "league/flysystem-aws-s3-v3": "^3.0", "sentry/sentry-laravel": "^3.8", + "spatie/laravel-image-optimizer": "^1.7", "spiral/roadrunner-cli": "^2.5", "spiral/roadrunner-http": "^3.0" }, diff --git a/pets-api/composer.lock b/pets-api/composer.lock index 5e60290..3abf0a2 100644 --- a/pets-api/composer.lock +++ b/pets-api/composer.lock @@ -4,7 +4,7 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "eaf3ebb81bca20faa2769f3037dde9d5", + "content-hash": "25ec6eb4472b2321adcdce36dc77075c", "packages": [ { "name": "aws/aws-crt-php", @@ -4924,6 +4924,129 @@ ], "time": "2023-09-05T11:02:34+00:00" }, + { + "name": "spatie/image-optimizer", + "version": "1.7.2", + "source": { + "type": "git", + "url": "https://github.com/spatie/image-optimizer.git", + "reference": "62f7463483d1bd975f6f06025d89d42a29608fe1" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/spatie/image-optimizer/zipball/62f7463483d1bd975f6f06025d89d42a29608fe1", + "reference": "62f7463483d1bd975f6f06025d89d42a29608fe1", + "shasum": "" + }, + "require": { + "ext-fileinfo": "*", + "php": "^7.3|^8.0", + "psr/log": "^1.0 | ^2.0 | ^3.0", + "symfony/process": "^4.2|^5.0|^6.0|^7.0" + }, + "require-dev": { + "pestphp/pest": "^1.21", + "phpunit/phpunit": "^8.5.21|^9.4.4", + "symfony/var-dumper": "^4.2|^5.0|^6.0|^7.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Spatie\\ImageOptimizer\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Freek Van der Herten", + "email": "freek@spatie.be", + "homepage": "https://spatie.be", + "role": "Developer" + } + ], + "description": "Easily optimize images using PHP", + "homepage": "https://github.com/spatie/image-optimizer", + "keywords": [ + "image-optimizer", + "spatie" + ], + "support": { + "issues": "https://github.com/spatie/image-optimizer/issues", + "source": "https://github.com/spatie/image-optimizer/tree/1.7.2" + }, + "time": "2023-11-03T10:08:02+00:00" + }, + { + "name": "spatie/laravel-image-optimizer", + "version": "1.7.1", + "source": { + "type": "git", + "url": "https://github.com/spatie/laravel-image-optimizer.git", + "reference": "cd8945e47b9fd01bc7b770eecd57c56f46c47422" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/spatie/laravel-image-optimizer/zipball/cd8945e47b9fd01bc7b770eecd57c56f46c47422", + "reference": "cd8945e47b9fd01bc7b770eecd57c56f46c47422", + "shasum": "" + }, + "require": { + "laravel/framework": "^8.0|^9.0|^10.0", + "php": "^8.0", + "spatie/image-optimizer": "^1.2.0" + }, + "require-dev": { + "orchestra/testbench": "^6.23|^7.0|^8.0", + "phpunit/phpunit": "^9.4" + }, + "type": "library", + "extra": { + "laravel": { + "providers": [ + "Spatie\\LaravelImageOptimizer\\ImageOptimizerServiceProvider" + ], + "aliases": { + "ImageOptimizer": "Spatie\\LaravelImageOptimizer\\Facades\\ImageOptimizer" + } + } + }, + "autoload": { + "psr-4": { + "Spatie\\LaravelImageOptimizer\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Freek Van der Herten", + "email": "freek@spatie.be", + "homepage": "https://spatie.be", + "role": "Developer" + } + ], + "description": "Optimize images in your Laravel app", + "homepage": "https://github.com/spatie/laravel-image-optimizer", + "keywords": [ + "laravel-image-optimizer", + "spatie" + ], + "support": { + "source": "https://github.com/spatie/laravel-image-optimizer/tree/1.7.1" + }, + "funding": [ + { + "url": "https://spatie.be/open-source/support-us", + "type": "custom" + } + ], + "time": "2023-01-24T23:44:33+00:00" + }, { "name": "spiral/core", "version": "3.7.1", @@ -12801,5 +12924,5 @@ "php": "^8.1" }, "platform-dev": [], - "plugin-api-version": "2.3.0" + "plugin-api-version": "2.6.0" } diff --git a/pets/lib/main.dart b/pets/lib/main.dart index ec56dce..b2fcd83 100644 --- a/pets/lib/main.dart +++ b/pets/lib/main.dart @@ -12,7 +12,6 @@ import 'package:sentry_logging/sentry_logging.dart'; import 'package:timezone/data/latest_all.dart' as tz; import 'package:timezone/timezone.dart' as tz; import 'package:flutter_timezone/flutter_timezone.dart'; -import 'package:sentry_logging/sentry_logging.dart'; import 'notifications.dart'; @@ -40,12 +39,14 @@ void main() async { await FastCachedImageConfig.init(); - await SentryFlutter.init( - (options) => options..addIntegration(LoggingIntegration()), - appRunner: () => runApp( - const ProviderScope( - child: App(), - ), - ), - ); + appRunner() => runApp(const ProviderScope(child: App())); + + if (kReleaseMode) { + await SentryFlutter.init( + (options) => options..addIntegration(LoggingIntegration()), + appRunner: appRunner, + ); + } else { + appRunner(); + } } diff --git a/pets/lib/provider/pet_provider.dart b/pets/lib/provider/pet_provider.dart index 06a82d8..ef7c5cc 100644 --- a/pets/lib/provider/pet_provider.dart +++ b/pets/lib/provider/pet_provider.dart @@ -18,12 +18,8 @@ Future> petsOrderedByUpdate(PetsOrderedByUpdateRef ref) async { final pets = ref.watch(petsProvider); return pets.when( - data: (pets) => pets.values.toList() - ..sort( - (a, b) => a.updatedAt is String - ? DateTime.parse(a.updatedAt ?? '').microsecondsSinceEpoch - : DateTime.parse(a.createdAt ?? '').microsecondsSinceEpoch, - ), + data: (pets) => + pets.values.toList()..sort((a, b) => a.nome.compareTo(b.nome)), error: (e, s) => throw e, loading: () => [], ); @@ -54,7 +50,6 @@ class Pets extends _$Pets { savedPet = savedPet.copyWith(imagemUrl: imageUrl); } - await future; return savedPet; } finally { ref.invalidateSelf(); diff --git a/pets/lib/provider/pet_provider.g.dart b/pets/lib/provider/pet_provider.g.dart index bcecd30..0b087dc 100644 --- a/pets/lib/provider/pet_provider.g.dart +++ b/pets/lib/provider/pet_provider.g.dart @@ -22,7 +22,7 @@ final petRepositoryProvider = AutoDisposeProvider.internal( typedef PetRepositoryRef = AutoDisposeProviderRef; String _$petsOrderedByUpdateHash() => - r'bc87d500f9808e78dce386b4946671544b515804'; + r'51bab452a360a4f9df8e79fcfac180d1051e4562'; /// See also [petsOrderedByUpdate]. @ProviderFor(petsOrderedByUpdate) @@ -38,7 +38,7 @@ final petsOrderedByUpdateProvider = ); typedef PetsOrderedByUpdateRef = AutoDisposeFutureProviderRef>; -String _$petsHash() => r'7a063aed61dda8977db22298a83c860266335acf'; +String _$petsHash() => r'fdc076b1ff48010caff3ecd5c6ac1b442a42f406'; /// See also [Pets]. @ProviderFor(Pets) diff --git a/pets/pubspec.yaml b/pets/pubspec.yaml index 61d622b..df5e1a9 100644 --- a/pets/pubspec.yaml +++ b/pets/pubspec.yaml @@ -16,7 +16,7 @@ publish_to: 'none' # Remove this line if you wish to publish to pub.dev # https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html # In Windows, build-name is used as the major, minor, and patch parts # of the product and file versions while build-number is used as the build suffix. -version: 1.8.2+39 +version: 1.8.3+40 environment: sdk: '>=3.0.0 <4.0.0'