mirror of
https://codeberg.org/shroff/phylum.git
synced 2026-01-05 19:21:23 -06:00
[client] Upgrade offtheline
This commit is contained in:
@@ -66,9 +66,9 @@ class ResourceMkdirAction extends PhylumAction with JsonApiAction, ResourceCreat
|
||||
};
|
||||
|
||||
@override
|
||||
FutureOr<void> processResponse(PhylumAccount account, PhylumApiResponse response) async {
|
||||
FutureOr<void> processResponse(PhylumAccount account, ApiResponse response) async {
|
||||
if (response is PhylumApiSuccessResponse) {
|
||||
await account.resourceRepository.parseResourceSummaryResponse(response.response);
|
||||
await account.resourceRepository.parseResourceSummaryResponse(response.data);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -70,9 +70,9 @@ class ResourceMoveAction extends PhylumAction with JsonApiAction {
|
||||
};
|
||||
|
||||
@override
|
||||
FutureOr<void> processResponse(PhylumAccount account, PhylumApiResponse response) async {
|
||||
FutureOr<void> processResponse(PhylumAccount account, ApiResponse response) async {
|
||||
if (response is PhylumApiSuccessResponse) {
|
||||
await account.resourceRepository.parseResourceSummaryResponse(response.response);
|
||||
await account.resourceRepository.parseResourceSummaryResponse(response.data);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -71,9 +71,9 @@ class ResourceRenameAction extends PhylumAction with JsonApiAction {
|
||||
};
|
||||
|
||||
@override
|
||||
FutureOr<void> processResponse(PhylumAccount account, PhylumApiResponse response) async {
|
||||
FutureOr<void> processResponse(PhylumAccount account, ApiResponse response) async {
|
||||
if (response is PhylumApiSuccessResponse) {
|
||||
await account.resourceRepository.parseResourceSummaryResponse(response.response);
|
||||
await account.resourceRepository.parseResourceSummaryResponse(response.data);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -102,9 +102,9 @@ class ResourceUploadAction extends PhylumAction with FileUploadApiAction, Resour
|
||||
}
|
||||
|
||||
@override
|
||||
FutureOr<void> processResponse(PhylumAccount account, PhylumApiResponse response) async {
|
||||
FutureOr<void> processResponse(PhylumAccount account, ApiResponse response) async {
|
||||
if (response is PhylumApiSuccessResponse) {
|
||||
await account.resourceRepository.parseResourceSummaryResponse(response.response);
|
||||
await account.resourceRepository.parseResourceSummaryResponse(response.data);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -9,7 +9,7 @@ const _persistKeyUserEmail = 'userEmail';
|
||||
const _persistKeyUserName = 'userName';
|
||||
const _persistKeyUserHome = 'userHome';
|
||||
|
||||
class PhylumAccount extends Account<PhylumApiResponse, PhylumAccount> {
|
||||
class PhylumAccount extends Account<PhylumAccount> {
|
||||
late final db = AppDatabase(id: id);
|
||||
late final resourceRepository = ResourceRepository(account: this);
|
||||
|
||||
|
||||
@@ -4,25 +4,20 @@ import 'package:http/http.dart';
|
||||
import 'package:offtheline/offtheline.dart';
|
||||
import 'package:phylum/libphylum/phylum_account.dart';
|
||||
|
||||
typedef PhylumAction = OfflineAction<PhylumApiResponse, PhylumAccount>;
|
||||
typedef PhylumActionStatus = ActionStatus<PhylumApiResponse>;
|
||||
typedef PhylumActionStatusError = ActionStatusError<PhylumApiResponse>;
|
||||
typedef PhylumAction = OfflineAction<PhylumAccount>;
|
||||
typedef PhylumActionQueue = ApiActionQueue<PhylumAccount>;
|
||||
typedef PhylumActionQueueState = ApiActionQueueState<PhylumAccount>;
|
||||
|
||||
typedef PhylumActionQueue = ApiActionQueue<PhylumApiResponse, PhylumAccount>;
|
||||
typedef PhylumActionQueueState = ApiActionQueueState<PhylumApiResponse, PhylumAccount>;
|
||||
|
||||
abstract class PhylumApiResponse extends ApiResponse<PhylumApiResponse> {}
|
||||
|
||||
class PhylumApiSuccessResponse extends PhylumApiResponse {
|
||||
final Map<String, dynamic> response;
|
||||
class PhylumApiSuccessResponse extends ApiResponse {
|
||||
final Map<String, dynamic> data;
|
||||
|
||||
@override
|
||||
String get description => 'Success';
|
||||
|
||||
PhylumApiSuccessResponse(this.response);
|
||||
PhylumApiSuccessResponse(this.data);
|
||||
}
|
||||
|
||||
class PhylumApiErrorResponse extends PhylumApiResponse {
|
||||
class PhylumApiErrorResponse extends ApiResponse {
|
||||
final int httpStatusCode;
|
||||
final String code;
|
||||
final String message;
|
||||
@@ -45,7 +40,7 @@ class PhylumApiErrorResponse extends PhylumApiResponse {
|
||||
}
|
||||
}
|
||||
|
||||
Future<PhylumApiResponse> transformApiResponse(ApiRequest _, StreamedResponse response) async {
|
||||
Future<ApiResponse> transformApiResponse(ApiRequest _, StreamedResponse response) async {
|
||||
final body = await response.bodyString();
|
||||
if (response.statusCode >= 200 && response.statusCode < 300) {
|
||||
final apiResponse = (jsonDecode(body) as Map<String, dynamic>?) ?? const {};
|
||||
|
||||
@@ -10,10 +10,10 @@ class ResourceRepository {
|
||||
|
||||
ResourceRepository({required this.account});
|
||||
|
||||
Future<ApiResult<PhylumApiResponse>?> requestResource(String id) async {
|
||||
Future<ApiResult?> requestResource(String id) async {
|
||||
final response = await account.apiClient.sendRequest(ResourceDetailRequest(id));
|
||||
if (response is PhylumApiSuccessResponse) {
|
||||
await parseResourceDetailsResponse(response.response);
|
||||
await parseResourceDetailsResponse(response.data);
|
||||
return null;
|
||||
}
|
||||
return response;
|
||||
|
||||
@@ -14,7 +14,6 @@ class ActionQueueList extends StatelessWidget {
|
||||
shrinkWrap: true,
|
||||
itemCount: queue.length,
|
||||
itemBuilder: (context, i) {
|
||||
print(queue[i]);
|
||||
return ActionView(action: queue[i]);
|
||||
},
|
||||
);
|
||||
@@ -27,14 +26,14 @@ class ActionView extends StatelessWidget {
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
final state = context.select<PhylumActionQueueState, PhylumActionStatus>((state) => state.actions[action]!);
|
||||
final state = context.select<PhylumActionQueueState, ActionStatus>((state) => state.actions[action]!);
|
||||
return switch (state) {
|
||||
ActionStatusWaiting() || ActionStatusReady() || ActionStatusSubmitting() || ActionStatusDone() => buildSimpleInfoTile(context, state),
|
||||
PhylumActionStatusError(error: final error) => buildErrorInfoTile(context, error),
|
||||
ActionStatusError(error: final error) => buildErrorInfoTile(context, error),
|
||||
};
|
||||
}
|
||||
|
||||
Widget buildSimpleInfoTile(BuildContext context, PhylumActionStatus status) {
|
||||
Widget buildSimpleInfoTile(BuildContext context, ActionStatus status) {
|
||||
final account = context.read<PhylumAccount>();
|
||||
return ListTile(
|
||||
title: Text(action.generateDescription(account)),
|
||||
@@ -45,7 +44,7 @@ class ActionView extends StatelessWidget {
|
||||
);
|
||||
}
|
||||
|
||||
Widget buildErrorInfoTile(BuildContext context, ApiResult<PhylumApiResponse> error) {
|
||||
Widget buildErrorInfoTile(BuildContext context, ApiResult error) {
|
||||
final account = context.read<PhylumAccount>();
|
||||
String description = error.description;
|
||||
if (error is PhylumApiErrorResponse) {
|
||||
|
||||
@@ -577,8 +577,8 @@ packages:
|
||||
dependency: "direct main"
|
||||
description:
|
||||
path: "."
|
||||
ref: d8a65f2feb5caf6e6a829812631deed5e4bd42b5
|
||||
resolved-ref: d8a65f2feb5caf6e6a829812631deed5e4bd42b5
|
||||
ref: eb424e19dc4e23169e70a857c8d8011f4be528ff
|
||||
resolved-ref: eb424e19dc4e23169e70a857c8d8011f4be528ff
|
||||
url: "https://codeberg.org/shroff/offtheline.git"
|
||||
source: git
|
||||
version: "0.15.0"
|
||||
|
||||
@@ -21,7 +21,7 @@ dependencies:
|
||||
offtheline:
|
||||
git:
|
||||
url: https://codeberg.org/shroff/offtheline.git
|
||||
ref: d8a65f2feb5caf6e6a829812631deed5e4bd42b5
|
||||
ref: eb424e19dc4e23169e70a857c8d8011f4be528ff
|
||||
open_file:
|
||||
path:
|
||||
path_provider:
|
||||
|
||||
Reference in New Issue
Block a user