mirror of
https://github.com/immich-app/immich.git
synced 2024-11-19 11:58:57 -07:00
a8220172f8
* refactor microservices to machine-learning * Update tGithub issue template with correct task syntax * Added microservices container * Communicate between service based on queue system * added dependency * Fixed problem with having to import BullQueue into the individual service * Added todo * refactor server into monorepo with microservices * refactor database and entity to library * added simple migration * Move migrations and database config to library * Migration works in library * Cosmetic change in logging message * added user dto * Fixed issue with testing not able to find the shared library * Clean up library mapping path * Added webp generator to microservices * Update Github Action build latest * Fixed issue NPM cannot install due to conflict witl Bull Queue * format project with prettier * Modified docker-compose file * Add GH Action for Staging build: * Fixed GH action job name * Modified GH Action to only build & push latest when pushing to main * Added Test 2e2 Github Action * Added Test 2e2 Github Action * Implemented microservice to extract exif * Added cronjob to scan and generate webp thumbnail at midnight * Refactor to ireduce hit time to database when running microservices * Added error handling to asset services that handle read file from disk * Added video transcoding queue to process one video at a time * Fixed loading spinner on web while loading covering the info panel * Add mechanism to show new release announcement to web and mobile app (#209) * Added changelog page * Fixed issues based on PR comments * Fixed issue with video transcoding run on the server * Change entry point content for backward combatibility when starting up server * Added announcement box * Added error handling to failed silently when the app version checking is not able to make the request to GITHUB * Added new version announcement overlay * Update message * Added messages * Added logic to check and show announcement * Add method to handle saving new version * Added button to dimiss the acknowledge message * Up version for deployment to the app store
81 lines
2.6 KiB
Dart
81 lines
2.6 KiB
Dart
import 'package:hooks_riverpod/hooks_riverpod.dart';
|
|
|
|
import 'package:immich_mobile/shared/models/mapbox_info.model.dart';
|
|
import 'package:immich_mobile/shared/models/server_info_state.model.dart';
|
|
import 'package:immich_mobile/shared/models/server_version.model.dart';
|
|
import 'package:immich_mobile/shared/services/server_info.service.dart';
|
|
import 'package:package_info_plus/package_info_plus.dart';
|
|
|
|
class ServerInfoNotifier extends StateNotifier<ServerInfoState> {
|
|
ServerInfoNotifier()
|
|
: super(
|
|
ServerInfoState(
|
|
mapboxInfo: MapboxInfo(isEnable: false, mapboxSecret: ""),
|
|
serverVersion: ServerVersion(major: 0, patch: 0, minor: 0, build: 0),
|
|
isVersionMismatch: false,
|
|
versionMismatchErrorMessage: "",
|
|
),
|
|
);
|
|
|
|
final ServerInfoService _serverInfoService = ServerInfoService();
|
|
|
|
getServerVersion() async {
|
|
ServerVersion? serverVersion = await _serverInfoService.getServerVersion();
|
|
|
|
if (serverVersion == null) {
|
|
state = state.copyWith(
|
|
isVersionMismatch: true,
|
|
versionMismatchErrorMessage:
|
|
"Server is out of date. Some functionalities might not working correctly. Download and rebuild server",
|
|
);
|
|
return;
|
|
}
|
|
|
|
state = state.copyWith(serverVersion: serverVersion);
|
|
|
|
PackageInfo packageInfo = await PackageInfo.fromPlatform();
|
|
|
|
Map<String, int> appVersion = _getDetailVersion(packageInfo.version);
|
|
|
|
if (appVersion["major"]! > serverVersion.major) {
|
|
state = state.copyWith(
|
|
isVersionMismatch: true,
|
|
versionMismatchErrorMessage:
|
|
"Server is out of date in major version. Some functionalities might not work correctly. Download and rebuild server",
|
|
);
|
|
|
|
return;
|
|
}
|
|
|
|
if (appVersion["minor"]! > serverVersion.minor) {
|
|
state = state.copyWith(
|
|
isVersionMismatch: true,
|
|
versionMismatchErrorMessage:
|
|
"Server is out of date in minor version. Some functionalities might not work correctly. Consider download and rebuild server",
|
|
);
|
|
|
|
return;
|
|
}
|
|
|
|
state = state.copyWith(isVersionMismatch: false, versionMismatchErrorMessage: "");
|
|
}
|
|
|
|
Map<String, int> _getDetailVersion(String version) {
|
|
List<String> detail = version.split(".");
|
|
|
|
var major = detail[0];
|
|
var minor = detail[1];
|
|
var patch = detail[2];
|
|
|
|
return {
|
|
"major": int.parse(major),
|
|
"minor": int.parse(minor),
|
|
"patch": int.parse(patch),
|
|
};
|
|
}
|
|
}
|
|
|
|
final serverInfoProvider = StateNotifierProvider<ServerInfoNotifier, ServerInfoState>((ref) {
|
|
return ServerInfoNotifier();
|
|
});
|