feat: Add remote_version endpoint to mock server, resolve versions, update search

This commit is contained in:
Anton Stubenbord
2023-05-29 15:54:43 +02:00
parent f46ae73f49
commit d8ee418828
14 changed files with 4429 additions and 75 deletions

View File

File diff suppressed because it is too large Load Diff

View File

@@ -5,16 +5,12 @@ export 'response_delay_generator.dart';
import 'dart:convert';
import 'dart:math';
import 'package:http/http.dart' as http;
import 'package:logging/logging.dart';
import 'package:mock_server/english_words.dart';
import 'package:mock_server/response_delay_generator.dart';
import 'package:shelf/shelf.dart';
import 'package:shelf/shelf_io.dart' as shelf_io;
import 'package:shelf_router/shelf_router.dart' as shelf_router;
import 'package:flutter/services.dart' show rootBundle;
Logger log = Logger('LocalMockApiServer');
@@ -233,6 +229,23 @@ class LocalMockApiServer {
var data = await loadFixture('statistics');
return JsonMockResponse.ok(data, _delayGenerator.nextDelay());
});
app.get('/api/search/autocomplete/', (Request req) async {
log.info("Responding to /api/search/autocomplete");
final term = req.url.queryParameters["term"] ?? '';
final limit = int.parse(req.url.queryParameters["limit"] ?? '5');
return JsonMockResponse.ok(
mostFrequentWords.where((element) => element.startsWith(term)).take(limit).toList(),
_delayGenerator.nextDelay(),
);
});
app.get('/api/remote_version/', (Request req) async {
return JsonMockResponse.ok({
'version': 'v1.14.5',
'update_available': false,
}, _delayGenerator.nextDelay());
});
}
Future<void> start() async {

View File

@@ -65,7 +65,7 @@ class PaperlessDocumentsApiImpl implements PaperlessDocumentsApi {
);
}
} on DioError catch (err) {
throw err.error!;
throw err.error ?? const PaperlessServerException.unknown();
}
}
@@ -82,7 +82,7 @@ class PaperlessDocumentsApiImpl implements PaperlessDocumentsApi {
throw const PaperlessServerException(ErrorCode.documentUpdateFailed);
}
} on DioError catch (err) {
throw err.error!;
throw err.error ?? const PaperlessServerException.unknown();
}
}
@@ -108,7 +108,7 @@ class PaperlessDocumentsApiImpl implements PaperlessDocumentsApi {
throw const PaperlessServerException(ErrorCode.documentLoadFailed);
}
} on DioError catch (err) {
throw err.error!;
throw err.error ?? const PaperlessServerException.unknown();
}
}
@@ -122,7 +122,7 @@ class PaperlessDocumentsApiImpl implements PaperlessDocumentsApi {
}
throw const PaperlessServerException(ErrorCode.documentDeleteFailed);
} on DioError catch (err) {
throw err.error!;
throw err.error ?? const PaperlessServerException.unknown();
}
}
@@ -148,7 +148,7 @@ class PaperlessDocumentsApiImpl implements PaperlessDocumentsApi {
}
throw const PaperlessServerException(ErrorCode.documentPreviewFailed);
} on DioError catch (err) {
throw err.error!;
throw err.error ?? const PaperlessServerException.unknown();
}
}
@@ -170,7 +170,7 @@ class PaperlessDocumentsApiImpl implements PaperlessDocumentsApi {
} on PaperlessServerException {
throw const PaperlessServerException(ErrorCode.documentAsnQueryFailed);
} on DioError catch (err) {
throw err.error!;
throw err.error ?? const PaperlessServerException.unknown();
}
}
@@ -189,7 +189,7 @@ class PaperlessDocumentsApiImpl implements PaperlessDocumentsApi {
);
}
} on DioError catch (err) {
throw err.error!;
throw err.error ?? const PaperlessServerException.unknown();
}
}
@@ -206,7 +206,7 @@ class PaperlessDocumentsApiImpl implements PaperlessDocumentsApi {
);
return response.data;
} on DioError catch (err) {
throw err.error!;
throw err.error ?? const PaperlessServerException.unknown();
}
}
@@ -226,7 +226,7 @@ class PaperlessDocumentsApiImpl implements PaperlessDocumentsApi {
);
return response.data;
} on DioError catch (err) {
throw err.error!;
throw err.error ?? const PaperlessServerException.unknown();
}
}
@@ -239,7 +239,7 @@ class PaperlessDocumentsApiImpl implements PaperlessDocumentsApi {
response.data as Map<String, dynamic>,
);
} on DioError catch (err) {
throw err.error!;
throw err.error ?? const PaperlessServerException.unknown();
}
}
@@ -258,7 +258,7 @@ class PaperlessDocumentsApiImpl implements PaperlessDocumentsApi {
}
throw const PaperlessServerException(ErrorCode.autocompleteQueryError);
} on DioError catch (err) {
throw err.error!;
throw err.error ?? const PaperlessServerException.unknown();
}
}
@@ -271,7 +271,7 @@ class PaperlessDocumentsApiImpl implements PaperlessDocumentsApi {
}
throw const PaperlessServerException(ErrorCode.suggestionsQueryError);
} on DioError catch (err) {
throw err.error!;
throw err.error ?? const PaperlessServerException.unknown();
}
}
@@ -285,7 +285,7 @@ class PaperlessDocumentsApiImpl implements PaperlessDocumentsApi {
return null;
}
} on DioError catch (err) {
throw err.error!;
throw err.error ?? const PaperlessServerException.unknown();
}
}
}

View File

@@ -14,7 +14,7 @@ dependencies:
flutter:
sdk: flutter
equatable: ^2.0.5
http: ^0.13.5
http: ^1.0.0
json_annotation: ^4.8.1
intl: any #^0.18.0
dio: ^5.0.0