mirror of
https://codeberg.org/shroff/phylum.git
synced 2026-05-07 04:39:25 -05:00
[client] Upgrade offtheline
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
import 'dart:convert';
|
||||
|
||||
import 'package:collection/collection.dart';
|
||||
import 'package:offtheline/offtheline.dart';
|
||||
import 'package:phylum/libphylum/db/db.dart';
|
||||
import 'package:phylum/libphylum/db/resource_helpers.dart';
|
||||
import 'package:phylum/libphylum/phylum_account.dart';
|
||||
@@ -25,7 +26,7 @@ class ExplorerPageFolder extends ExplorerPage {
|
||||
|
||||
@override
|
||||
Future<bool> refresh(PhylumAccount account) =>
|
||||
account.resourceRepository.requestResource(folderId).then((result) => result.success);
|
||||
account.resourceRepository.requestResource(folderId).then((result) => result is ApiSuccessResponse);
|
||||
|
||||
@override
|
||||
Stream<Resource?> watchResource(PhylumAccount account) => account.db.watchResource(folderId);
|
||||
@@ -105,7 +106,7 @@ class ExplorerPageShared extends ExplorerPage {
|
||||
|
||||
@override
|
||||
Future<bool> refresh(PhylumAccount account) {
|
||||
return account.sharedResourcesRepository.refresh().then((result) => result.success);
|
||||
return account.sharedResourcesRepository.refresh().then((result) => result is ApiSuccessResponse);
|
||||
}
|
||||
|
||||
@override
|
||||
|
||||
@@ -16,7 +16,10 @@ part 'user_list_response.dart';
|
||||
|
||||
typedef JsonMapResponseParser = PhylumApiSuccessResponse Function(Map<String, dynamic> data);
|
||||
|
||||
Future<ApiResponse> parseJsonMapResponse(StreamedResponse response, JsonMapResponseParser parseResponse) async {
|
||||
Future<ApiResponse<PhylumAccount>> parseJsonMapResponse(
|
||||
StreamedResponse response,
|
||||
JsonMapResponseParser parseResponse,
|
||||
) async {
|
||||
final body = await response.bodyString();
|
||||
if (response.statusCode >= 200 && response.statusCode < 300) {
|
||||
final responseMap = (jsonDecode(body) as Map<String, dynamic>?) ?? const {};
|
||||
@@ -25,36 +28,24 @@ Future<ApiResponse> parseJsonMapResponse(StreamedResponse response, JsonMapRespo
|
||||
return PhylumApiErrorResponse.fromResponseBody(body);
|
||||
}
|
||||
|
||||
abstract class PhylumApiSuccessResponse extends ApiResponse<PhylumAccount> {
|
||||
typedef PhylumApiSuccessResponse = ApiSuccessResponse<PhylumAccount>;
|
||||
|
||||
class PhylumApiErrorResponse extends ApiErrorResponse<PhylumAccount> {
|
||||
@override
|
||||
bool get success => true;
|
||||
|
||||
@override
|
||||
String get description => 'Success';
|
||||
|
||||
const PhylumApiSuccessResponse();
|
||||
}
|
||||
|
||||
class PhylumApiErrorResponse extends ApiResponse<PhylumAccount> {
|
||||
final int httpStatusCode;
|
||||
final bool serverError;
|
||||
final String code;
|
||||
final String message;
|
||||
|
||||
@override
|
||||
String get description => message;
|
||||
|
||||
@override
|
||||
bool get success => false;
|
||||
|
||||
@override
|
||||
Future<void> process(PhylumAccount account) => Future.value();
|
||||
|
||||
PhylumApiErrorResponse({required this.httpStatusCode, required this.code, required this.message});
|
||||
PhylumApiErrorResponse({required this.serverError, required this.code, required this.message});
|
||||
|
||||
factory PhylumApiErrorResponse.fromResponseBody(String body) {
|
||||
final map = (jsonDecode(body) as Map<String, dynamic>?) ?? const {};
|
||||
final statusCode = map['status'] ?? 500;
|
||||
return PhylumApiErrorResponse(
|
||||
httpStatusCode: map['status'] ?? 500,
|
||||
serverError: statusCode >= 500,
|
||||
code: map['code'] ?? 'server_error',
|
||||
message: map['msg'] ?? 'Server Error',
|
||||
);
|
||||
|
||||
+2
-2
@@ -596,8 +596,8 @@ packages:
|
||||
dependency: "direct main"
|
||||
description:
|
||||
path: "."
|
||||
ref: b51cf4bdc89396e996fa7572206e165739621edb
|
||||
resolved-ref: b51cf4bdc89396e996fa7572206e165739621edb
|
||||
ref: "38d765a3f3532ff4ecfc70db839ef9333e30ed38"
|
||||
resolved-ref: "38d765a3f3532ff4ecfc70db839ef9333e30ed38"
|
||||
url: "https://codeberg.org/shroff/offtheline.git"
|
||||
source: git
|
||||
version: "0.16.0"
|
||||
|
||||
+1
-1
@@ -24,7 +24,7 @@ dependencies:
|
||||
offtheline:
|
||||
git:
|
||||
url: https://codeberg.org/shroff/offtheline.git
|
||||
ref: b51cf4bdc89396e996fa7572206e165739621edb
|
||||
ref: 38d765a3f3532ff4ecfc70db839ef9333e30ed38
|
||||
open_file:
|
||||
path:
|
||||
path_provider:
|
||||
|
||||
Reference in New Issue
Block a user