[client] Upgrade offtheline

This commit is contained in:
Abhishek Shroff
2024-09-24 17:30:14 +05:30
parent dc5dc1f3ab
commit 261d29cb44
10 changed files with 26 additions and 32 deletions

View File

@@ -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);
}
}

View File

@@ -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);
}
}

View File

@@ -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);
}
}

View File

@@ -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);
}
}

View File

@@ -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);

View File

@@ -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 {};

View File

@@ -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;

View File

@@ -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) {

View File

@@ -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"

View File

@@ -21,7 +21,7 @@ dependencies:
offtheline:
git:
url: https://codeberg.org/shroff/offtheline.git
ref: d8a65f2feb5caf6e6a829812631deed5e4bd42b5
ref: eb424e19dc4e23169e70a857c8d8011f4be528ff
open_file:
path:
path_provider: