mirror of
https://github.com/jagandeepbrar/lunasea.git
synced 2026-08-30 20:24:25 +00:00
refactor(overseerr): utilize JsonEnum generators in enum types [skip ci]
This commit is contained in:
@@ -1,4 +1,3 @@
|
||||
export 'api/overseerr.dart';
|
||||
export 'api/models.dart';
|
||||
export 'api/types.dart';
|
||||
export 'api/utilities.dart';
|
||||
|
||||
@@ -8,10 +8,7 @@ class OverseerrMedia {
|
||||
@JsonKey()
|
||||
int? id;
|
||||
|
||||
@JsonKey(
|
||||
fromJson: OverseerrUtilities.mediaTypeFromJson,
|
||||
toJson: OverseerrUtilities.mediaTypeToJson,
|
||||
)
|
||||
@JsonKey()
|
||||
OverseerrMediaType? mediaType;
|
||||
|
||||
@JsonKey()
|
||||
@@ -23,16 +20,10 @@ class OverseerrMedia {
|
||||
@JsonKey()
|
||||
String? imdbId;
|
||||
|
||||
@JsonKey(
|
||||
fromJson: OverseerrUtilities.mediaStatusFromJson,
|
||||
toJson: OverseerrUtilities.mediaStatusToJson,
|
||||
)
|
||||
@JsonKey()
|
||||
OverseerrMediaStatus? status;
|
||||
|
||||
@JsonKey(
|
||||
fromJson: OverseerrUtilities.mediaStatusFromJson,
|
||||
toJson: OverseerrUtilities.mediaStatusToJson,
|
||||
)
|
||||
@JsonKey()
|
||||
OverseerrMediaStatus? status4k;
|
||||
|
||||
@JsonKey(
|
||||
|
||||
@@ -11,18 +11,10 @@ class OverseerrMediaSeason {
|
||||
@JsonKey(name: 'seasonNumber')
|
||||
int? seasonNumber;
|
||||
|
||||
@JsonKey(
|
||||
name: 'status',
|
||||
fromJson: OverseerrUtilities.requestStatusFromJson,
|
||||
toJson: OverseerrUtilities.requestStatusToJson,
|
||||
)
|
||||
@JsonKey(name: 'status')
|
||||
OverseerrRequestStatus? status;
|
||||
|
||||
@JsonKey(
|
||||
name: 'status4k',
|
||||
fromJson: OverseerrUtilities.requestStatusFromJson,
|
||||
toJson: OverseerrUtilities.requestStatusToJson,
|
||||
)
|
||||
@JsonKey(name: 'status4k')
|
||||
OverseerrRequestStatus? status4k;
|
||||
|
||||
@JsonKey(
|
||||
|
||||
@@ -8,11 +8,7 @@ class OverseerrRequest {
|
||||
@JsonKey(name: 'id')
|
||||
int? id;
|
||||
|
||||
@JsonKey(
|
||||
name: 'status',
|
||||
fromJson: OverseerrUtilities.requestStatusFromJson,
|
||||
toJson: OverseerrUtilities.requestStatusToJson,
|
||||
)
|
||||
@JsonKey(name: 'status')
|
||||
OverseerrRequestStatus? status;
|
||||
|
||||
@JsonKey(
|
||||
@@ -29,11 +25,7 @@ class OverseerrRequest {
|
||||
)
|
||||
DateTime? updatedAt;
|
||||
|
||||
@JsonKey(
|
||||
name: 'type',
|
||||
fromJson: OverseerrUtilities.mediaTypeFromJson,
|
||||
toJson: OverseerrUtilities.mediaTypeToJson,
|
||||
)
|
||||
@JsonKey(name: 'type')
|
||||
OverseerrMediaType? type;
|
||||
|
||||
@JsonKey(name: 'is4k')
|
||||
|
||||
@@ -1,42 +1,39 @@
|
||||
import 'package:lunasea/core.dart';
|
||||
|
||||
const _UNKNOWN = 1;
|
||||
const _PENDING = 2;
|
||||
const _PROCESSING = 3;
|
||||
const _PARTIALLY_AVAILABLE = 4;
|
||||
const _AVAILABLE = 5;
|
||||
|
||||
@JsonEnum()
|
||||
enum OverseerrMediaStatus {
|
||||
@JsonValue(_UNKNOWN)
|
||||
UNKNOWN,
|
||||
@JsonValue(_PENDING)
|
||||
PENDING,
|
||||
@JsonValue(_PROCESSING)
|
||||
PROCESSING,
|
||||
@JsonValue(_PARTIALLY_AVAILABLE)
|
||||
PARTIALLY_AVAILABLE,
|
||||
@JsonValue(_AVAILABLE)
|
||||
AVAILABLE,
|
||||
}
|
||||
|
||||
/// Extension on [OverseerrMediaStatus] to implement extended functionality.
|
||||
extension OverseerrMediaStatusExtension on OverseerrMediaStatus {
|
||||
OverseerrMediaStatus? from(int? type) {
|
||||
switch (type) {
|
||||
case 1:
|
||||
return OverseerrMediaStatus.UNKNOWN;
|
||||
case 2:
|
||||
return OverseerrMediaStatus.PENDING;
|
||||
case 3:
|
||||
return OverseerrMediaStatus.PROCESSING;
|
||||
case 4:
|
||||
return OverseerrMediaStatus.PARTIALLY_AVAILABLE;
|
||||
case 5:
|
||||
return OverseerrMediaStatus.AVAILABLE;
|
||||
default:
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
int get value {
|
||||
int get key {
|
||||
switch (this) {
|
||||
case OverseerrMediaStatus.UNKNOWN:
|
||||
return 1;
|
||||
return _UNKNOWN;
|
||||
case OverseerrMediaStatus.PENDING:
|
||||
return 2;
|
||||
return _PENDING;
|
||||
case OverseerrMediaStatus.PROCESSING:
|
||||
return 3;
|
||||
return _PROCESSING;
|
||||
case OverseerrMediaStatus.PARTIALLY_AVAILABLE:
|
||||
return 4;
|
||||
return _PARTIALLY_AVAILABLE;
|
||||
case OverseerrMediaStatus.AVAILABLE:
|
||||
return 5;
|
||||
return _AVAILABLE;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,27 +1,23 @@
|
||||
import 'package:lunasea/core.dart';
|
||||
|
||||
const _MOVIE = 'movie';
|
||||
const _TV = 'tv';
|
||||
|
||||
@JsonEnum()
|
||||
enum OverseerrMediaType {
|
||||
@JsonValue(_MOVIE)
|
||||
MOVIE,
|
||||
@JsonValue(_TV)
|
||||
TV,
|
||||
}
|
||||
|
||||
/// Extension on [OverseerrMediaType] to implement extended functionality.
|
||||
extension OverseerrMediaTypeExtension on OverseerrMediaType {
|
||||
OverseerrMediaType? from(String? type) {
|
||||
switch (type) {
|
||||
case 'movie':
|
||||
return OverseerrMediaType.MOVIE;
|
||||
case 'tv':
|
||||
return OverseerrMediaType.TV;
|
||||
default:
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
String get value {
|
||||
String get key {
|
||||
switch (this) {
|
||||
case OverseerrMediaType.MOVIE:
|
||||
return 'movie';
|
||||
return _MOVIE;
|
||||
case OverseerrMediaType.TV:
|
||||
return 'tv';
|
||||
return _TV;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,47 +1,44 @@
|
||||
import 'package:lunasea/core.dart';
|
||||
|
||||
const _ALL = 'all';
|
||||
const _APPROVED = 'approved';
|
||||
const _AVAILABLE = 'available';
|
||||
const _PENDING = 'pending';
|
||||
const _PROCESSING = 'processing';
|
||||
const _UNAVAILABLE = 'unavailable';
|
||||
|
||||
@JsonEnum()
|
||||
enum OverseerrRequestFilterType {
|
||||
@JsonValue(_ALL)
|
||||
ALL,
|
||||
@JsonValue(_APPROVED)
|
||||
APPROVED,
|
||||
@JsonValue(_AVAILABLE)
|
||||
AVAILABLE,
|
||||
@JsonValue(_PENDING)
|
||||
PENDING,
|
||||
@JsonValue(_PROCESSING)
|
||||
PROCESSING,
|
||||
@JsonValue(_UNAVAILABLE)
|
||||
UNAVAILABLE,
|
||||
}
|
||||
|
||||
/// Extension on [OverseerrRequestFilterType] to implement extended functionality.
|
||||
extension OverseerrRequestFilterTypeExtension on OverseerrRequestFilterType {
|
||||
OverseerrRequestFilterType? from(String? type) {
|
||||
switch (type) {
|
||||
case 'all':
|
||||
return OverseerrRequestFilterType.ALL;
|
||||
case 'approved':
|
||||
return OverseerrRequestFilterType.APPROVED;
|
||||
case 'available':
|
||||
return OverseerrRequestFilterType.AVAILABLE;
|
||||
case 'pending':
|
||||
return OverseerrRequestFilterType.PENDING;
|
||||
case 'processing':
|
||||
return OverseerrRequestFilterType.PROCESSING;
|
||||
case 'unavailable':
|
||||
return OverseerrRequestFilterType.UNAVAILABLE;
|
||||
default:
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
String get value {
|
||||
String get key {
|
||||
switch (this) {
|
||||
case OverseerrRequestFilterType.ALL:
|
||||
return 'all';
|
||||
return _ALL;
|
||||
case OverseerrRequestFilterType.APPROVED:
|
||||
return 'approved';
|
||||
return _APPROVED;
|
||||
case OverseerrRequestFilterType.AVAILABLE:
|
||||
return 'available';
|
||||
return _AVAILABLE;
|
||||
case OverseerrRequestFilterType.PENDING:
|
||||
return 'pending';
|
||||
return _PENDING;
|
||||
case OverseerrRequestFilterType.PROCESSING:
|
||||
return 'processing';
|
||||
return _PROCESSING;
|
||||
case OverseerrRequestFilterType.UNAVAILABLE:
|
||||
return 'unavailable';
|
||||
return _UNAVAILABLE;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,27 +1,23 @@
|
||||
import 'package:lunasea/core.dart';
|
||||
|
||||
const _ADDED = 'added';
|
||||
const _MODIFIED = 'modified';
|
||||
|
||||
@JsonEnum()
|
||||
enum OverseerrRequestSortType {
|
||||
@JsonValue(_ADDED)
|
||||
ADDED,
|
||||
@JsonValue(_MODIFIED)
|
||||
MODIFIED,
|
||||
}
|
||||
|
||||
/// Extension on [OverseerrRequestSortType] to implement extended functionality.
|
||||
extension OverseerrRequestSortTypeExtension on OverseerrRequestSortType {
|
||||
OverseerrRequestSortType? from(String? type) {
|
||||
switch (type) {
|
||||
case 'added':
|
||||
return OverseerrRequestSortType.ADDED;
|
||||
case 'modified':
|
||||
return OverseerrRequestSortType.MODIFIED;
|
||||
default:
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
String get value {
|
||||
String get key {
|
||||
switch (this) {
|
||||
case OverseerrRequestSortType.ADDED:
|
||||
return 'added';
|
||||
return _ADDED;
|
||||
case OverseerrRequestSortType.MODIFIED:
|
||||
return 'modified';
|
||||
return _MODIFIED;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,32 +1,29 @@
|
||||
import 'package:lunasea/core.dart';
|
||||
|
||||
const _PENDING = 1;
|
||||
const _APPROVED = 2;
|
||||
const _DECLINED = 3;
|
||||
|
||||
@JsonEnum()
|
||||
enum OverseerrRequestStatus {
|
||||
@JsonValue(_PENDING)
|
||||
PENDING,
|
||||
@JsonValue(_APPROVED)
|
||||
APPROVED,
|
||||
@JsonValue(_DECLINED)
|
||||
DECLINED,
|
||||
}
|
||||
|
||||
/// Extension on [OverseerrRequestStatus] to implement extended functionality.
|
||||
extension OverseerrRequestStatusExtension on OverseerrRequestStatus {
|
||||
OverseerrRequestStatus? from(int? type) {
|
||||
switch (type) {
|
||||
case 1:
|
||||
return OverseerrRequestStatus.PENDING;
|
||||
case 2:
|
||||
return OverseerrRequestStatus.APPROVED;
|
||||
case 3:
|
||||
return OverseerrRequestStatus.DECLINED;
|
||||
default:
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
int get value {
|
||||
switch (this) {
|
||||
case OverseerrRequestStatus.PENDING:
|
||||
return 1;
|
||||
return _PENDING;
|
||||
case OverseerrRequestStatus.APPROVED:
|
||||
return 2;
|
||||
return _APPROVED;
|
||||
case OverseerrRequestStatus.DECLINED:
|
||||
return 3;
|
||||
return _DECLINED;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,37 +1,33 @@
|
||||
import 'package:lunasea/core.dart';
|
||||
|
||||
const _CREATED = 'created';
|
||||
const _DISPLAY_NAME = 'displayname';
|
||||
const _REQUESTS = 'requests';
|
||||
const _UPDATED = 'updated';
|
||||
|
||||
@JsonEnum()
|
||||
enum OverseerrUserSortType {
|
||||
@JsonValue(_CREATED)
|
||||
CREATED,
|
||||
@JsonValue(_DISPLAY_NAME)
|
||||
DISPLAY_NAME,
|
||||
@JsonValue(_REQUESTS)
|
||||
REQUESTS,
|
||||
@JsonValue(_UPDATED)
|
||||
UPDATED,
|
||||
}
|
||||
|
||||
/// Extension on [OverseerrUserSortType] to implement extended functionality.
|
||||
extension OverseerrUserSortTypeExtension on OverseerrUserSortType {
|
||||
OverseerrUserSortType? from(String? type) {
|
||||
switch (type) {
|
||||
case 'created':
|
||||
return OverseerrUserSortType.CREATED;
|
||||
case 'displayname':
|
||||
return OverseerrUserSortType.DISPLAY_NAME;
|
||||
case 'requests':
|
||||
return OverseerrUserSortType.REQUESTS;
|
||||
case 'updated':
|
||||
return OverseerrUserSortType.UPDATED;
|
||||
default:
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
String get value {
|
||||
String get key {
|
||||
switch (this) {
|
||||
case OverseerrUserSortType.CREATED:
|
||||
return 'created';
|
||||
return _CREATED;
|
||||
case OverseerrUserSortType.DISPLAY_NAME:
|
||||
return 'displayname';
|
||||
return _DISPLAY_NAME;
|
||||
case OverseerrUserSortType.REQUESTS:
|
||||
return 'requests';
|
||||
return _REQUESTS;
|
||||
case OverseerrUserSortType.UPDATED:
|
||||
return 'updated';
|
||||
return _UPDATED;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,27 +0,0 @@
|
||||
import 'types.dart';
|
||||
|
||||
abstract class OverseerrUtilities {
|
||||
static OverseerrMediaType? mediaTypeFromJson(String? type) {
|
||||
return OverseerrMediaType.TV.from(type);
|
||||
}
|
||||
|
||||
static String? mediaTypeToJson(OverseerrMediaType? type) {
|
||||
return type?.value;
|
||||
}
|
||||
|
||||
static OverseerrMediaStatus? mediaStatusFromJson(int? type) {
|
||||
return OverseerrMediaStatus.UNKNOWN.from(type);
|
||||
}
|
||||
|
||||
static int? mediaStatusToJson(OverseerrMediaStatus? type) {
|
||||
return type?.value;
|
||||
}
|
||||
|
||||
static OverseerrRequestStatus? requestStatusFromJson(int? type) {
|
||||
return OverseerrRequestStatus.APPROVED.from(type);
|
||||
}
|
||||
|
||||
static int? requestStatusToJson(OverseerrRequestStatus? type) {
|
||||
return type?.value;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user