Line data Source code
1 : import 'dart:convert'; 2 : import 'dart:io'; 3 : 4 : import 'package:flutter/material.dart'; 5 : import 'package:http/http.dart'; 6 : import 'package:pal/src/database/adapter/helper_entity_adapter.dart' as EntityAdapter; 7 : import 'package:pal/src/database/entity/helper/helper_entity.dart'; 8 : import 'package:pal/src/database/entity/pageable.dart'; 9 : import 'package:pal/src/database/repository/base_repository.dart'; 10 : import 'package:pal/src/services/http_client/base_client.dart'; 11 : 12 : class EditorHelperRepository extends BaseHttpRepository { 13 : 14 : final EntityAdapter.HelperEntityAdapter _adapter = EntityAdapter.HelperEntityAdapter(); 15 : 16 7 : EditorHelperRepository({ 17 : @required HttpClient httpClient, 18 7 : }) : super(httpClient: httpClient); 19 : 20 1 : Future<HelperEntity> createHelper( 21 : final String pageId, final HelperEntity createHelper) async { 22 1 : final payload = jsonEncode(createHelper); 23 3 : final Response response = await this.httpClient.post( 24 1 : 'editor/pages/$pageId/helpers', 25 : body: payload, 26 : ); 27 1 : if (response == null || response.body == null) 28 0 : throw new UnknownHttpError("NO_RESULT"); 29 3 : return this._adapter.parse(response.body); 30 : } 31 : 32 1 : Future<HelperEntity> updateHelper( 33 : final String pageId, 34 : final HelperEntity updatedHelper, 35 : ) async { 36 1 : final payload = jsonEncode(updatedHelper); 37 3 : final Response response = await this.httpClient.put( 38 2 : 'editor/pages/$pageId/helpers/${updatedHelper?.id}', 39 : body: payload); 40 1 : if (response == null || response.body == null) 41 0 : throw new UnknownHttpError('NO_RESULT'); 42 3 : return this._adapter.parse(response.body); 43 : } 44 : 45 0 : Future<Pageable<HelperEntity>> getPage( 46 : String pageId, int page, int pageSize) async { 47 0 : final Response response = await this 48 0 : .httpClient 49 0 : .get('editor/pages/$pageId/helpers?page=$page&pageSize=$pageSize'); 50 0 : return this._adapter.parsePage(response.body); 51 : } 52 : 53 0 : Future<void> updateHelperPriority( 54 : final String pageId, 55 : final Map<String, int> priority, 56 : ) async { 57 0 : await this.httpClient.patch( 58 0 : 'editor/pages/$pageId/helpers/priorities', 59 0 : body: jsonEncode(priority), 60 : ); 61 : } 62 : 63 0 : Future<void> deleteHelper( 64 : final String pageId, 65 : final String helperId, 66 : ) async { 67 0 : await this.httpClient.delete( 68 0 : 'editor/pages/$pageId/helpers/$helperId', 69 : ); 70 : } 71 : }