mirror of
https://github.com/KevinMidboe/immich.git
synced 2025-10-29 17:40:28 +00:00
chore(server,mobile): remove device info entity (#1527)
* chore(server): remove unused device info code * chore: generate open api * remove any DeviceTypeEnum usage from mobile * chore: coverage * fix: drop device info table --------- Co-authored-by: Fynn Petersen-Frey <zody22@gmail.com>
This commit is contained in:
4
mobile/openapi/lib/api.dart
generated
4
mobile/openapi/lib/api.dart
generated
@@ -32,7 +32,6 @@ part 'api/api_key_api.dart';
|
||||
part 'api/album_api.dart';
|
||||
part 'api/asset_api.dart';
|
||||
part 'api/authentication_api.dart';
|
||||
part 'api/device_info_api.dart';
|
||||
part 'api/job_api.dart';
|
||||
part 'api/o_auth_api.dart';
|
||||
part 'api/search_api.dart';
|
||||
@@ -76,8 +75,6 @@ part 'model/curated_objects_response_dto.dart';
|
||||
part 'model/delete_asset_dto.dart';
|
||||
part 'model/delete_asset_response_dto.dart';
|
||||
part 'model/delete_asset_status.dart';
|
||||
part 'model/device_info_response_dto.dart';
|
||||
part 'model/device_type_enum.dart';
|
||||
part 'model/download_files_dto.dart';
|
||||
part 'model/edit_shared_link_dto.dart';
|
||||
part 'model/exif_response_dto.dart';
|
||||
@@ -127,7 +124,6 @@ part 'model/update_album_dto.dart';
|
||||
part 'model/update_asset_dto.dart';
|
||||
part 'model/update_tag_dto.dart';
|
||||
part 'model/update_user_dto.dart';
|
||||
part 'model/upsert_device_info_dto.dart';
|
||||
part 'model/usage_by_user_dto.dart';
|
||||
part 'model/user_count_response_dto.dart';
|
||||
part 'model/user_response_dto.dart';
|
||||
|
||||
65
mobile/openapi/lib/api/device_info_api.dart
generated
65
mobile/openapi/lib/api/device_info_api.dart
generated
@@ -1,65 +0,0 @@
|
||||
//
|
||||
// AUTO-GENERATED FILE, DO NOT MODIFY!
|
||||
//
|
||||
// @dart=2.12
|
||||
|
||||
// ignore_for_file: unused_element, unused_import
|
||||
// ignore_for_file: always_put_required_named_parameters_first
|
||||
// ignore_for_file: constant_identifier_names
|
||||
// ignore_for_file: lines_longer_than_80_chars
|
||||
|
||||
part of openapi.api;
|
||||
|
||||
|
||||
class DeviceInfoApi {
|
||||
DeviceInfoApi([ApiClient? apiClient]) : apiClient = apiClient ?? defaultApiClient;
|
||||
|
||||
final ApiClient apiClient;
|
||||
|
||||
/// Performs an HTTP 'PUT /device-info' operation and returns the [Response].
|
||||
/// Parameters:
|
||||
///
|
||||
/// * [UpsertDeviceInfoDto] upsertDeviceInfoDto (required):
|
||||
Future<Response> upsertDeviceInfoWithHttpInfo(UpsertDeviceInfoDto upsertDeviceInfoDto,) async {
|
||||
// ignore: prefer_const_declarations
|
||||
final path = r'/device-info';
|
||||
|
||||
// ignore: prefer_final_locals
|
||||
Object? postBody = upsertDeviceInfoDto;
|
||||
|
||||
final queryParams = <QueryParam>[];
|
||||
final headerParams = <String, String>{};
|
||||
final formParams = <String, String>{};
|
||||
|
||||
const contentTypes = <String>['application/json'];
|
||||
|
||||
|
||||
return apiClient.invokeAPI(
|
||||
path,
|
||||
'PUT',
|
||||
queryParams,
|
||||
postBody,
|
||||
headerParams,
|
||||
formParams,
|
||||
contentTypes.isEmpty ? null : contentTypes.first,
|
||||
);
|
||||
}
|
||||
|
||||
/// Parameters:
|
||||
///
|
||||
/// * [UpsertDeviceInfoDto] upsertDeviceInfoDto (required):
|
||||
Future<DeviceInfoResponseDto?> upsertDeviceInfo(UpsertDeviceInfoDto upsertDeviceInfoDto,) async {
|
||||
final response = await upsertDeviceInfoWithHttpInfo(upsertDeviceInfoDto,);
|
||||
if (response.statusCode >= HttpStatus.badRequest) {
|
||||
throw ApiException(response.statusCode, await _decodeBodyBytes(response));
|
||||
}
|
||||
// When a remote server returns no body with a status of 204, we shall not decode it.
|
||||
// At the time of writing this, `dart:convert` will throw an "Unexpected end of input"
|
||||
// FormatException when trying to decode an empty string.
|
||||
if (response.body.isNotEmpty && response.statusCode != HttpStatus.noContent) {
|
||||
return await apiClient.deserializeAsync(await _decodeBodyBytes(response), 'DeviceInfoResponseDto',) as DeviceInfoResponseDto;
|
||||
|
||||
}
|
||||
return null;
|
||||
}
|
||||
}
|
||||
6
mobile/openapi/lib/api_client.dart
generated
6
mobile/openapi/lib/api_client.dart
generated
@@ -249,10 +249,6 @@ class ApiClient {
|
||||
return DeleteAssetResponseDto.fromJson(value);
|
||||
case 'DeleteAssetStatus':
|
||||
return DeleteAssetStatusTypeTransformer().decode(value);
|
||||
case 'DeviceInfoResponseDto':
|
||||
return DeviceInfoResponseDto.fromJson(value);
|
||||
case 'DeviceTypeEnum':
|
||||
return DeviceTypeEnumTypeTransformer().decode(value);
|
||||
case 'DownloadFilesDto':
|
||||
return DownloadFilesDto.fromJson(value);
|
||||
case 'EditSharedLinkDto':
|
||||
@@ -351,8 +347,6 @@ class ApiClient {
|
||||
return UpdateTagDto.fromJson(value);
|
||||
case 'UpdateUserDto':
|
||||
return UpdateUserDto.fromJson(value);
|
||||
case 'UpsertDeviceInfoDto':
|
||||
return UpsertDeviceInfoDto.fromJson(value);
|
||||
case 'UsageByUserDto':
|
||||
return UsageByUserDto.fromJson(value);
|
||||
case 'UserCountResponseDto':
|
||||
|
||||
3
mobile/openapi/lib/api_helper.dart
generated
3
mobile/openapi/lib/api_helper.dart
generated
@@ -61,9 +61,6 @@ String parameterToString(dynamic value) {
|
||||
if (value is DeleteAssetStatus) {
|
||||
return DeleteAssetStatusTypeTransformer().encode(value).toString();
|
||||
}
|
||||
if (value is DeviceTypeEnum) {
|
||||
return DeviceTypeEnumTypeTransformer().encode(value).toString();
|
||||
}
|
||||
if (value is JobCommand) {
|
||||
return JobCommandTypeTransformer().encode(value).toString();
|
||||
}
|
||||
|
||||
151
mobile/openapi/lib/model/device_info_response_dto.dart
generated
151
mobile/openapi/lib/model/device_info_response_dto.dart
generated
@@ -1,151 +0,0 @@
|
||||
//
|
||||
// AUTO-GENERATED FILE, DO NOT MODIFY!
|
||||
//
|
||||
// @dart=2.12
|
||||
|
||||
// ignore_for_file: unused_element, unused_import
|
||||
// ignore_for_file: always_put_required_named_parameters_first
|
||||
// ignore_for_file: constant_identifier_names
|
||||
// ignore_for_file: lines_longer_than_80_chars
|
||||
|
||||
part of openapi.api;
|
||||
|
||||
class DeviceInfoResponseDto {
|
||||
/// Returns a new [DeviceInfoResponseDto] instance.
|
||||
DeviceInfoResponseDto({
|
||||
required this.id,
|
||||
required this.deviceType,
|
||||
required this.userId,
|
||||
required this.deviceId,
|
||||
required this.createdAt,
|
||||
required this.isAutoBackup,
|
||||
});
|
||||
|
||||
int id;
|
||||
|
||||
DeviceTypeEnum deviceType;
|
||||
|
||||
String userId;
|
||||
|
||||
String deviceId;
|
||||
|
||||
String createdAt;
|
||||
|
||||
bool isAutoBackup;
|
||||
|
||||
@override
|
||||
bool operator ==(Object other) => identical(this, other) || other is DeviceInfoResponseDto &&
|
||||
other.id == id &&
|
||||
other.deviceType == deviceType &&
|
||||
other.userId == userId &&
|
||||
other.deviceId == deviceId &&
|
||||
other.createdAt == createdAt &&
|
||||
other.isAutoBackup == isAutoBackup;
|
||||
|
||||
@override
|
||||
int get hashCode =>
|
||||
// ignore: unnecessary_parenthesis
|
||||
(id.hashCode) +
|
||||
(deviceType.hashCode) +
|
||||
(userId.hashCode) +
|
||||
(deviceId.hashCode) +
|
||||
(createdAt.hashCode) +
|
||||
(isAutoBackup.hashCode);
|
||||
|
||||
@override
|
||||
String toString() => 'DeviceInfoResponseDto[id=$id, deviceType=$deviceType, userId=$userId, deviceId=$deviceId, createdAt=$createdAt, isAutoBackup=$isAutoBackup]';
|
||||
|
||||
Map<String, dynamic> toJson() {
|
||||
final json = <String, dynamic>{};
|
||||
json[r'id'] = this.id;
|
||||
json[r'deviceType'] = this.deviceType;
|
||||
json[r'userId'] = this.userId;
|
||||
json[r'deviceId'] = this.deviceId;
|
||||
json[r'createdAt'] = this.createdAt;
|
||||
json[r'isAutoBackup'] = this.isAutoBackup;
|
||||
return json;
|
||||
}
|
||||
|
||||
/// Returns a new [DeviceInfoResponseDto] instance and imports its values from
|
||||
/// [value] if it's a [Map], null otherwise.
|
||||
// ignore: prefer_constructors_over_static_methods
|
||||
static DeviceInfoResponseDto? fromJson(dynamic value) {
|
||||
if (value is Map) {
|
||||
final json = value.cast<String, dynamic>();
|
||||
|
||||
// Ensure that the map contains the required keys.
|
||||
// Note 1: the values aren't checked for validity beyond being non-null.
|
||||
// Note 2: this code is stripped in release mode!
|
||||
assert(() {
|
||||
requiredKeys.forEach((key) {
|
||||
assert(json.containsKey(key), 'Required key "DeviceInfoResponseDto[$key]" is missing from JSON.');
|
||||
assert(json[key] != null, 'Required key "DeviceInfoResponseDto[$key]" has a null value in JSON.');
|
||||
});
|
||||
return true;
|
||||
}());
|
||||
|
||||
return DeviceInfoResponseDto(
|
||||
id: mapValueOfType<int>(json, r'id')!,
|
||||
deviceType: DeviceTypeEnum.fromJson(json[r'deviceType'])!,
|
||||
userId: mapValueOfType<String>(json, r'userId')!,
|
||||
deviceId: mapValueOfType<String>(json, r'deviceId')!,
|
||||
createdAt: mapValueOfType<String>(json, r'createdAt')!,
|
||||
isAutoBackup: mapValueOfType<bool>(json, r'isAutoBackup')!,
|
||||
);
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
static List<DeviceInfoResponseDto>? listFromJson(dynamic json, {bool growable = false,}) {
|
||||
final result = <DeviceInfoResponseDto>[];
|
||||
if (json is List && json.isNotEmpty) {
|
||||
for (final row in json) {
|
||||
final value = DeviceInfoResponseDto.fromJson(row);
|
||||
if (value != null) {
|
||||
result.add(value);
|
||||
}
|
||||
}
|
||||
}
|
||||
return result.toList(growable: growable);
|
||||
}
|
||||
|
||||
static Map<String, DeviceInfoResponseDto> mapFromJson(dynamic json) {
|
||||
final map = <String, DeviceInfoResponseDto>{};
|
||||
if (json is Map && json.isNotEmpty) {
|
||||
json = json.cast<String, dynamic>(); // ignore: parameter_assignments
|
||||
for (final entry in json.entries) {
|
||||
final value = DeviceInfoResponseDto.fromJson(entry.value);
|
||||
if (value != null) {
|
||||
map[entry.key] = value;
|
||||
}
|
||||
}
|
||||
}
|
||||
return map;
|
||||
}
|
||||
|
||||
// maps a json object with a list of DeviceInfoResponseDto-objects as value to a dart map
|
||||
static Map<String, List<DeviceInfoResponseDto>> mapListFromJson(dynamic json, {bool growable = false,}) {
|
||||
final map = <String, List<DeviceInfoResponseDto>>{};
|
||||
if (json is Map && json.isNotEmpty) {
|
||||
json = json.cast<String, dynamic>(); // ignore: parameter_assignments
|
||||
for (final entry in json.entries) {
|
||||
final value = DeviceInfoResponseDto.listFromJson(entry.value, growable: growable,);
|
||||
if (value != null) {
|
||||
map[entry.key] = value;
|
||||
}
|
||||
}
|
||||
}
|
||||
return map;
|
||||
}
|
||||
|
||||
/// The list of required keys that must be present in a JSON.
|
||||
static const requiredKeys = <String>{
|
||||
'id',
|
||||
'deviceType',
|
||||
'userId',
|
||||
'deviceId',
|
||||
'createdAt',
|
||||
'isAutoBackup',
|
||||
};
|
||||
}
|
||||
|
||||
88
mobile/openapi/lib/model/device_type_enum.dart
generated
88
mobile/openapi/lib/model/device_type_enum.dart
generated
@@ -1,88 +0,0 @@
|
||||
//
|
||||
// AUTO-GENERATED FILE, DO NOT MODIFY!
|
||||
//
|
||||
// @dart=2.12
|
||||
|
||||
// ignore_for_file: unused_element, unused_import
|
||||
// ignore_for_file: always_put_required_named_parameters_first
|
||||
// ignore_for_file: constant_identifier_names
|
||||
// ignore_for_file: lines_longer_than_80_chars
|
||||
|
||||
part of openapi.api;
|
||||
|
||||
|
||||
class DeviceTypeEnum {
|
||||
/// Instantiate a new enum with the provided [value].
|
||||
const DeviceTypeEnum._(this.value);
|
||||
|
||||
/// The underlying value of this enum member.
|
||||
final String value;
|
||||
|
||||
@override
|
||||
String toString() => value;
|
||||
|
||||
String toJson() => value;
|
||||
|
||||
static const IOS = DeviceTypeEnum._(r'IOS');
|
||||
static const ANDROID = DeviceTypeEnum._(r'ANDROID');
|
||||
static const WEB = DeviceTypeEnum._(r'WEB');
|
||||
|
||||
/// List of all possible values in this [enum][DeviceTypeEnum].
|
||||
static const values = <DeviceTypeEnum>[
|
||||
IOS,
|
||||
ANDROID,
|
||||
WEB,
|
||||
];
|
||||
|
||||
static DeviceTypeEnum? fromJson(dynamic value) => DeviceTypeEnumTypeTransformer().decode(value);
|
||||
|
||||
static List<DeviceTypeEnum>? listFromJson(dynamic json, {bool growable = false,}) {
|
||||
final result = <DeviceTypeEnum>[];
|
||||
if (json is List && json.isNotEmpty) {
|
||||
for (final row in json) {
|
||||
final value = DeviceTypeEnum.fromJson(row);
|
||||
if (value != null) {
|
||||
result.add(value);
|
||||
}
|
||||
}
|
||||
}
|
||||
return result.toList(growable: growable);
|
||||
}
|
||||
}
|
||||
|
||||
/// Transformation class that can [encode] an instance of [DeviceTypeEnum] to String,
|
||||
/// and [decode] dynamic data back to [DeviceTypeEnum].
|
||||
class DeviceTypeEnumTypeTransformer {
|
||||
factory DeviceTypeEnumTypeTransformer() => _instance ??= const DeviceTypeEnumTypeTransformer._();
|
||||
|
||||
const DeviceTypeEnumTypeTransformer._();
|
||||
|
||||
String encode(DeviceTypeEnum data) => data.value;
|
||||
|
||||
/// Decodes a [dynamic value][data] to a DeviceTypeEnum.
|
||||
///
|
||||
/// If [allowNull] is true and the [dynamic value][data] cannot be decoded successfully,
|
||||
/// then null is returned. However, if [allowNull] is false and the [dynamic value][data]
|
||||
/// cannot be decoded successfully, then an [UnimplementedError] is thrown.
|
||||
///
|
||||
/// The [allowNull] is very handy when an API changes and a new enum value is added or removed,
|
||||
/// and users are still using an old app with the old code.
|
||||
DeviceTypeEnum? decode(dynamic data, {bool allowNull = true}) {
|
||||
if (data != null) {
|
||||
switch (data) {
|
||||
case r'IOS': return DeviceTypeEnum.IOS;
|
||||
case r'ANDROID': return DeviceTypeEnum.ANDROID;
|
||||
case r'WEB': return DeviceTypeEnum.WEB;
|
||||
default:
|
||||
if (!allowNull) {
|
||||
throw ArgumentError('Unknown enum value to decode: $data');
|
||||
}
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
/// Singleton [DeviceTypeEnumTypeTransformer] instance.
|
||||
static DeviceTypeEnumTypeTransformer? _instance;
|
||||
}
|
||||
|
||||
136
mobile/openapi/lib/model/upsert_device_info_dto.dart
generated
136
mobile/openapi/lib/model/upsert_device_info_dto.dart
generated
@@ -1,136 +0,0 @@
|
||||
//
|
||||
// AUTO-GENERATED FILE, DO NOT MODIFY!
|
||||
//
|
||||
// @dart=2.12
|
||||
|
||||
// ignore_for_file: unused_element, unused_import
|
||||
// ignore_for_file: always_put_required_named_parameters_first
|
||||
// ignore_for_file: constant_identifier_names
|
||||
// ignore_for_file: lines_longer_than_80_chars
|
||||
|
||||
part of openapi.api;
|
||||
|
||||
class UpsertDeviceInfoDto {
|
||||
/// Returns a new [UpsertDeviceInfoDto] instance.
|
||||
UpsertDeviceInfoDto({
|
||||
required this.deviceType,
|
||||
required this.deviceId,
|
||||
this.isAutoBackup,
|
||||
});
|
||||
|
||||
DeviceTypeEnum deviceType;
|
||||
|
||||
String deviceId;
|
||||
|
||||
///
|
||||
/// Please note: This property should have been non-nullable! Since the specification file
|
||||
/// does not include a default value (using the "default:" property), however, the generated
|
||||
/// source code must fall back to having a nullable type.
|
||||
/// Consider adding a "default:" property in the specification file to hide this note.
|
||||
///
|
||||
bool? isAutoBackup;
|
||||
|
||||
@override
|
||||
bool operator ==(Object other) => identical(this, other) || other is UpsertDeviceInfoDto &&
|
||||
other.deviceType == deviceType &&
|
||||
other.deviceId == deviceId &&
|
||||
other.isAutoBackup == isAutoBackup;
|
||||
|
||||
@override
|
||||
int get hashCode =>
|
||||
// ignore: unnecessary_parenthesis
|
||||
(deviceType.hashCode) +
|
||||
(deviceId.hashCode) +
|
||||
(isAutoBackup == null ? 0 : isAutoBackup!.hashCode);
|
||||
|
||||
@override
|
||||
String toString() => 'UpsertDeviceInfoDto[deviceType=$deviceType, deviceId=$deviceId, isAutoBackup=$isAutoBackup]';
|
||||
|
||||
Map<String, dynamic> toJson() {
|
||||
final json = <String, dynamic>{};
|
||||
json[r'deviceType'] = this.deviceType;
|
||||
json[r'deviceId'] = this.deviceId;
|
||||
if (this.isAutoBackup != null) {
|
||||
json[r'isAutoBackup'] = this.isAutoBackup;
|
||||
} else {
|
||||
// json[r'isAutoBackup'] = null;
|
||||
}
|
||||
return json;
|
||||
}
|
||||
|
||||
/// Returns a new [UpsertDeviceInfoDto] instance and imports its values from
|
||||
/// [value] if it's a [Map], null otherwise.
|
||||
// ignore: prefer_constructors_over_static_methods
|
||||
static UpsertDeviceInfoDto? fromJson(dynamic value) {
|
||||
if (value is Map) {
|
||||
final json = value.cast<String, dynamic>();
|
||||
|
||||
// Ensure that the map contains the required keys.
|
||||
// Note 1: the values aren't checked for validity beyond being non-null.
|
||||
// Note 2: this code is stripped in release mode!
|
||||
assert(() {
|
||||
requiredKeys.forEach((key) {
|
||||
assert(json.containsKey(key), 'Required key "UpsertDeviceInfoDto[$key]" is missing from JSON.');
|
||||
assert(json[key] != null, 'Required key "UpsertDeviceInfoDto[$key]" has a null value in JSON.');
|
||||
});
|
||||
return true;
|
||||
}());
|
||||
|
||||
return UpsertDeviceInfoDto(
|
||||
deviceType: DeviceTypeEnum.fromJson(json[r'deviceType'])!,
|
||||
deviceId: mapValueOfType<String>(json, r'deviceId')!,
|
||||
isAutoBackup: mapValueOfType<bool>(json, r'isAutoBackup'),
|
||||
);
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
static List<UpsertDeviceInfoDto>? listFromJson(dynamic json, {bool growable = false,}) {
|
||||
final result = <UpsertDeviceInfoDto>[];
|
||||
if (json is List && json.isNotEmpty) {
|
||||
for (final row in json) {
|
||||
final value = UpsertDeviceInfoDto.fromJson(row);
|
||||
if (value != null) {
|
||||
result.add(value);
|
||||
}
|
||||
}
|
||||
}
|
||||
return result.toList(growable: growable);
|
||||
}
|
||||
|
||||
static Map<String, UpsertDeviceInfoDto> mapFromJson(dynamic json) {
|
||||
final map = <String, UpsertDeviceInfoDto>{};
|
||||
if (json is Map && json.isNotEmpty) {
|
||||
json = json.cast<String, dynamic>(); // ignore: parameter_assignments
|
||||
for (final entry in json.entries) {
|
||||
final value = UpsertDeviceInfoDto.fromJson(entry.value);
|
||||
if (value != null) {
|
||||
map[entry.key] = value;
|
||||
}
|
||||
}
|
||||
}
|
||||
return map;
|
||||
}
|
||||
|
||||
// maps a json object with a list of UpsertDeviceInfoDto-objects as value to a dart map
|
||||
static Map<String, List<UpsertDeviceInfoDto>> mapListFromJson(dynamic json, {bool growable = false,}) {
|
||||
final map = <String, List<UpsertDeviceInfoDto>>{};
|
||||
if (json is Map && json.isNotEmpty) {
|
||||
json = json.cast<String, dynamic>(); // ignore: parameter_assignments
|
||||
for (final entry in json.entries) {
|
||||
final value = UpsertDeviceInfoDto.listFromJson(entry.value, growable: growable,);
|
||||
if (value != null) {
|
||||
map[entry.key] = value;
|
||||
}
|
||||
}
|
||||
}
|
||||
return map;
|
||||
}
|
||||
|
||||
/// The list of required keys that must be present in a JSON.
|
||||
static const requiredKeys = <String>{
|
||||
'deviceType',
|
||||
'deviceId',
|
||||
};
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user