This commit is contained in:
thosakwe 2017-02-22 17:20:30 -05:00
parent f73b802392
commit 38eb394078
6 changed files with 23 additions and 19 deletions

View file

@ -1,2 +1 @@
language: dart language: dart
with_content_shell: true

View file

@ -1,15 +1,14 @@
# angel_client # angel_client
[![pub 1.0.0-dev+23](https://img.shields.io/badge/pub-1.0.0--dev+23-red.svg)](https://pub.dartlang.org/packages/angel_client) [![pub 1.0.0](https://img.shields.io/badge/pub-1.0.0-brightgreen.svg)](https://pub.dartlang.org/packages/angel_client)
![build status](https://travis-ci.org/angel-dart/client.svg) ![build status](https://travis-ci.org/angel-dart/client.svg)
Client library for the Angel framework. Client library for the Angel framework.
This library provides virtually the same API as an Angel server.
# Isomorphic The client can run in the browser or on the command-line.
The REST client can run in the browser or on the command-line. In addition, the client supports `angel_auth` authentication.
# Usage # Usage
This library provides the same API as an Angel server.
```dart ```dart
// Choose one or the other, depending on platform // Choose one or the other, depending on platform

View file

@ -18,11 +18,11 @@ const Map<String, String> _writeHeaders = const {
}; };
_buildQuery(Map params) { _buildQuery(Map params) {
if (params == null || params.isEmpty) return ""; if (params == null || params.isEmpty || params['query'] is! Map) return "";
List<String> query = []; List<String> query = [];
params.forEach((k, v) { params['query'].forEach((k, v) {
query.add('$k=${Uri.encodeQueryComponent(v.toString())}'); query.add('$k=${Uri.encodeQueryComponent(v.toString())}');
}); });
@ -231,7 +231,7 @@ class BaseAngelService extends Service {
@override @override
Future index([Map params]) async { Future index([Map params]) async {
final response = await app.sendUnstreamed( final response = await app.sendUnstreamed(
'GET', '$basePath/${_buildQuery(params)}', _readHeaders); 'GET', '$basePath${_buildQuery(params)}', _readHeaders);
try { try {
if (response.statusCode != 200) { if (response.statusCode != 200) {

View file

@ -1,5 +1,5 @@
name: angel_client name: angel_client
version: 1.0.0-dev+23 version: 1.0.0
description: Client library for the Angel framework. description: Client library for the Angel framework.
author: Tobe O <thosakwe@gmail.com> author: Tobe O <thosakwe@gmail.com>
homepage: https://github.com/angel-dart/angel_client homepage: https://github.com/angel-dart/angel_client

View file

@ -37,8 +37,10 @@ main() {
}); });
test("index", () async { test("index", () async {
Postcard niagaraFalls = await serverPostcards.create( Map niagara = await clientPostcards.create(
new Postcard(location: "Niagara Falls", message: "Missing you!")); new Postcard(location: "Niagara Falls", message: "Missing you!"));
Postcard niagaraFalls = new Postcard.fromJson(niagara);
print('Niagara Falls: ${niagaraFalls.toJson()}'); print('Niagara Falls: ${niagaraFalls.toJson()}');
List indexed = await clientPostcards.index(); List indexed = await clientPostcards.index();
@ -50,15 +52,14 @@ main() {
expect(indexed[0]['location'], equals(niagaraFalls.location)); expect(indexed[0]['location'], equals(niagaraFalls.location));
expect(indexed[0]['message'], equals(niagaraFalls.message)); expect(indexed[0]['message'], equals(niagaraFalls.message));
Postcard louvre = await serverPostcards.create(new Postcard( Map l = await clientPostcards.create(new Postcard(
location: "The Louvre", message: "The Mona Lisa was watching me!")); location: "The Louvre", message: "The Mona Lisa was watching me!"));
Postcard louvre = new Postcard.fromJson(l);
print(god.serialize(louvre)); print(god.serialize(louvre));
List typedIndexed = await clientTypedPostcards.index(); List typedIndexed = await clientTypedPostcards.index();
expect(typedIndexed.length, equals(2)); expect(typedIndexed.length, equals(2));
expect(typedIndexed[1], equals(louvre)); expect(typedIndexed[1], equals(louvre));
}, });
skip:
'Index tests fails for some unknown reason, although it works in production.');
test("create/read", () async { test("create/read", () async {
Map opry = {"location": "Grand Ole Opry", "message": "Yeehaw!"}; Map opry = {"location": "Grand Ole Opry", "message": "Yeehaw!"};

View file

@ -1,10 +1,15 @@
import "package:angel_framework/src/defs.dart"; import "package:angel_framework/common.dart";
class Postcard extends MemoryModel { class Postcard extends Model {
String location; String location;
String message; String message;
Postcard({String this.location, String this.message}); Postcard({String id, this.location, this.message}) {
this.id = id;
}
factory Postcard.fromJson(Map data) => new Postcard(
id: data['id'], location: data['location'], message: data['message']);
@override @override
bool operator ==(other) { bool operator ==(other) {