diff --git a/README.md b/README.md index 4541484f..046205e9 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # angel_client -[![pub 1.0.0-dev+18](https://img.shields.io/badge/pub-1.0.0--dev+18-red.svg)](https://pub.dartlang.org/packages/angel_client) +[![pub 1.0.0-dev+19](https://img.shields.io/badge/pub-1.0.0--dev+19-red.svg)](https://pub.dartlang.org/packages/angel_client) ![build status](https://travis-ci.org/angel-dart/client.svg) Client library for the Angel framework. diff --git a/lib/angel_client.dart b/lib/angel_client.dart index 61cbbfb3..8ad4eb6f 100644 --- a/lib/angel_client.dart +++ b/lib/angel_client.dart @@ -3,6 +3,7 @@ library angel_client; import 'dart:async'; import 'dart:convert'; +import 'package:http/src/response.dart' as http; export 'package:angel_framework/src/http/angel_http_exception.dart'; /// A function that configures an [Angel] client in some way. @@ -29,6 +30,22 @@ abstract class Angel { } Service service(Pattern path, {Type type}); + + Future delete(String url, + {Map headers}); + + Future get(String url, {Map headers}); + + Future head(String url, {Map headers}); + + Future patch(String url, + {body, Map headers}); + + Future post(String url, + {body, Map headers}); + + Future put(String url, + {body, Map headers}); } /// Represents the result of authentication with an Angel server. diff --git a/lib/base_angel_client.dart b/lib/base_angel_client.dart index 14255033..a6a105b4 100644 --- a/lib/base_angel_client.dart +++ b/lib/base_angel_client.dart @@ -133,6 +133,46 @@ abstract class BaseAngelClient extends Angel { String uri = path.replaceAll(straySlashes, ""); return new BaseAngelService(client, this, '$basePath/$uri'); } + + String _join(url) { + final head = basePath.replaceAll(new RegExp(r'/+$'), ''); + final tail = basePath.replaceAll(straySlashes, ''); + return '$head/$tail'; + } + + @override + Future delete(String url, + {Map headers}) async { + return client.delete(_join(url), headers: headers); + } + + @override + Future get(String url, {Map headers}) async { + return client.get(_join(url), headers: headers); + } + + @override + Future head(String url, {Map headers}) async { + return client.head(_join(url), headers: headers); + } + + @override + Future patch(String url, + {body, Map headers}) async { + return client.patch(_join(url), body: body, headers: headers); + } + + @override + Future post(String url, + {body, Map headers}) async { + return client.post(_join(url), body: body, headers: headers); + } + + @override + Future put(String url, + {body, Map headers}) async { + return client.put(_join(url), body: body, headers: headers); + } } class BaseAngelService extends Service { @@ -171,12 +211,6 @@ class BaseAngelService extends Service { return http.Response.fromStream(await client.send(request)); } - String _join(url) { - final head = basePath.replaceAll(new RegExp(r'/+$'), ''); - final tail = basePath.replaceAll(straySlashes, ''); - return '$head/$tail'; - } - Future send(http.BaseRequest request) { if (app.authToken != null && app.authToken.isNotEmpty) { request.headers['Authorization'] = 'Bearer ${app.authToken}'; @@ -185,34 +219,6 @@ class BaseAngelService extends Service { return client.send(request); } - Future delete(String url, - {Map headers}) async { - return client.delete(_join(url), headers: headers); - } - - Future get(String url, {Map headers}) async { - return client.get(_join(url), headers: headers); - } - - Future head(String url, {Map headers}) async { - return client.head(_join(url), headers: headers); - } - - Future patch(String url, - {body, Map headers}) async { - return client.patch(_join(url), body: body, headers: headers); - } - - Future post(String url, - {body, Map headers}) async { - return client.post(_join(url), body: body, headers: headers); - } - - Future put(String url, - {body, Map headers}) async { - return client.put(_join(url), body: body, headers: headers); - } - @override Future index([Map params]) async { final response = await sendUnstreamed( diff --git a/pubspec.yaml b/pubspec.yaml index 11193d77..ba0db73f 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -1,5 +1,5 @@ name: angel_client -version: 1.0.0-dev+18 +version: 1.0.0-dev+19 description: Client library for the Angel framework. author: Tobe O homepage: https://github.com/angel-dart/angel_client