mirror of
https://github.com/immich-app/immich.git
synced 2025-12-16 01:10:57 +03:00
feat: db insertions for edits feat: get asset edits endpoint feat: wip apply edits feat: finish asset files changes feat: wip feat: wip fix: openapi fix: tests the failing tests were so scuffed. Simply solved by adding [] to the param list feat: more wip feat: more wip feat: some more tests and fixes chore: fix default for getting thumbnail and add todo for tests feat: LRTB validation chore: code cleanup chore: more test checks for cleanup feat: show edit pane fix: state issues chore: restructure web editor feat: restructure edit manager feat: refactor cropManager chore: combine all editing chore: web editing improvements fix: handling when no crops fix: openapi enum chore: more edit refactoring fix: make image decoding more efficient chore: more refactoring fix: getCrop LRTB algorithm fix: missing await chore: use relative coordinates for edit chore: update sql fix: use resize observer instead of svelte:doc resize hook chore: simplify quad box generation fix: light mode styling chore: refactor to not be a recursive job call this simplifies the logic and the job only completes once thumbhash and others are properly updated chore: more refactoring feat: use affine transforms for most operations feat: bounding box edit transformation feat: tests chore: sql and openapi sync fix: medium tests fix: rotated OCR chore: cleanup transform test fix: remove rebase issue fix(server): block edits for live photos, gifs, panoramic photos fix: openapi enum validation chore: rename edit endpoint chore: remove public modifiers feat: delete endpoint chore: use === and !== explicitly fix: require 1 edit for the editAsset endpoint fix: remove thumbnail edit notification and use on_upload_success instead fix: primary key on asset edit table chore: refactor to isPanorama chore: rename editRepository to assetEditRepository fix: missing toLowerCase fix: db migrations chore: update sql files
89 lines
2.6 KiB
Dart
Generated
89 lines
2.6 KiB
Dart
Generated
//
|
|
// AUTO-GENERATED FILE, DO NOT MODIFY!
|
|
//
|
|
// @dart=2.18
|
|
|
|
// 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 EditAction {
|
|
/// Instantiate a new enum with the provided [value].
|
|
const EditAction._(this.value);
|
|
|
|
/// The underlying value of this enum member.
|
|
final String value;
|
|
|
|
@override
|
|
String toString() => value;
|
|
|
|
String toJson() => value;
|
|
|
|
static const crop = EditAction._(r'crop');
|
|
static const rotate = EditAction._(r'rotate');
|
|
static const mirror = EditAction._(r'mirror');
|
|
|
|
/// List of all possible values in this [enum][EditAction].
|
|
static const values = <EditAction>[
|
|
crop,
|
|
rotate,
|
|
mirror,
|
|
];
|
|
|
|
static EditAction? fromJson(dynamic value) => EditActionTypeTransformer().decode(value);
|
|
|
|
static List<EditAction> listFromJson(dynamic json, {bool growable = false,}) {
|
|
final result = <EditAction>[];
|
|
if (json is List && json.isNotEmpty) {
|
|
for (final row in json) {
|
|
final value = EditAction.fromJson(row);
|
|
if (value != null) {
|
|
result.add(value);
|
|
}
|
|
}
|
|
}
|
|
return result.toList(growable: growable);
|
|
}
|
|
}
|
|
|
|
/// Transformation class that can [encode] an instance of [EditAction] to String,
|
|
/// and [decode] dynamic data back to [EditAction].
|
|
class EditActionTypeTransformer {
|
|
factory EditActionTypeTransformer() => _instance ??= const EditActionTypeTransformer._();
|
|
|
|
const EditActionTypeTransformer._();
|
|
|
|
String encode(EditAction data) => data.value;
|
|
|
|
/// Decodes a [dynamic value][data] to a EditAction.
|
|
///
|
|
/// 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.
|
|
EditAction? decode(dynamic data, {bool allowNull = true}) {
|
|
if (data != null) {
|
|
switch (data) {
|
|
case r'crop': return EditAction.crop;
|
|
case r'rotate': return EditAction.rotate;
|
|
case r'mirror': return EditAction.mirror;
|
|
default:
|
|
if (!allowNull) {
|
|
throw ArgumentError('Unknown enum value to decode: $data');
|
|
}
|
|
}
|
|
}
|
|
return null;
|
|
}
|
|
|
|
/// Singleton [EditActionTypeTransformer] instance.
|
|
static EditActionTypeTransformer? _instance;
|
|
}
|
|
|