Line data Source code
1 : import 'dart:convert'; 2 : 3 : import 'package:flutter/cupertino.dart'; 4 : import 'package:http/http.dart'; 5 : import 'package:pal/src/database/adapter/page_entity_adapter.dart' as Adapter; 6 : import 'package:pal/src/database/entity/page_entity.dart'; 7 : import 'package:pal/src/database/entity/pageable.dart'; 8 : import 'package:pal/src/database/repository/base_repository.dart'; 9 : import 'package:pal/src/services/http_client/base_client.dart'; 10 : 11 : class PageRepository extends BaseHttpRepository { 12 : 13 : final Adapter.PageEntityAdapter _adapter = Adapter.PageEntityAdapter(); 14 : 15 8 : PageRepository({@required HttpClient httpClient}) 16 8 : : super(httpClient: httpClient); 17 : 18 1 : Future<PageEntity> createPage( 19 : final PageEntity createPage, 20 : ) async { 21 3 : final Response response = await this.httpClient.post('editor/pages', 22 2 : body: jsonEncode({ 23 1 : 'route': createPage.route, 24 : })); 25 3 : return this._adapter.parse(response.body); 26 : } 27 : 28 0 : Future<Pageable<PageEntity>> getPages() async { 29 0 : final Response response = await this.httpClient.get('editor/pages'); 30 0 : return this._adapter.parsePage(response.body); 31 : } 32 : 33 1 : Future<PageEntity> getPage(final String route) { 34 : return this 35 1 : .httpClient 36 2 : .get('editor/pages?route=$route&pageSize=1') 37 2 : .then((res) { 38 3 : Pageable<PageEntity> pages = _adapter.parsePage(res.body); 39 4 : return (pages.entities != null && pages.entities.length > 0) 40 2 : ? pages.entities.first 41 : : null; 42 : }); 43 : } 44 : 45 0 : Future<Pageable<PageEntity>> getClientPage(final String route) async { 46 : final Response response = 47 0 : await this.httpClient.get('client/pages?route=$route'); 48 0 : return this._adapter.parsePage(response.body); 49 : } 50 : }