Readdata for map and anon
This commit is contained in:
parent
2004877696
commit
0bb19fe7bc
4 changed files with 18 additions and 5 deletions
|
@ -1,3 +1,7 @@
|
||||||
|
# 2.0.0-rc.7
|
||||||
|
* `AnonymousService` can override `readData`.
|
||||||
|
* `Service.map` now overrides `readData`.
|
||||||
|
|
||||||
# 2.0.0-rc.6
|
# 2.0.0-rc.6
|
||||||
* Make `redirect` and `download` methods asynchronous.
|
* Make `redirect` and `download` methods asynchronous.
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
import 'dart:async';
|
import 'dart:async';
|
||||||
|
import 'request_context.dart';
|
||||||
|
import 'response_context.dart';
|
||||||
import 'service.dart';
|
import 'service.dart';
|
||||||
|
|
||||||
/// An easy helper class to create one-off services without having to create an entire class.
|
/// An easy helper class to create one-off services without having to create an entire class.
|
||||||
|
@ -17,8 +18,9 @@ class AnonymousService<Id, Data> extends Service<Id, Data> {
|
||||||
FutureOr<Data> create(Data data, [Map<String, dynamic> params]),
|
FutureOr<Data> create(Data data, [Map<String, dynamic> params]),
|
||||||
FutureOr<Data> modify(Id id, Data data, [Map<String, dynamic> params]),
|
FutureOr<Data> modify(Id id, Data data, [Map<String, dynamic> params]),
|
||||||
FutureOr<Data> update(Id id, Data data, [Map<String, dynamic> params]),
|
FutureOr<Data> update(Id id, Data data, [Map<String, dynamic> params]),
|
||||||
FutureOr<Data> remove(Id id, [Map<String, dynamic> params])})
|
FutureOr<Data> remove(Id id, [Map<String, dynamic> params]),
|
||||||
: super() {
|
FutureOr<Data> Function(RequestContext, ResponseContext) readData})
|
||||||
|
: super(readData: readData) {
|
||||||
_index = index;
|
_index = index;
|
||||||
_read = read;
|
_read = read;
|
||||||
_create = create;
|
_create = create;
|
||||||
|
|
|
@ -160,8 +160,15 @@ class Service<Id, Data> extends Routable {
|
||||||
/// using two converter functions.
|
/// using two converter functions.
|
||||||
///
|
///
|
||||||
/// Handy utility for handling data in a type-safe manner.
|
/// Handy utility for handling data in a type-safe manner.
|
||||||
Service<Id, U> map<U>(U Function(Data) encoder, Data Function(U) decoder) {
|
Service<Id, U> map<U>(U Function(Data) encoder, Data Function(U) decoder,
|
||||||
|
{FutureOr<U> Function(RequestContext, ResponseContext) readData}) {
|
||||||
|
readData ??= (req, res) async {
|
||||||
|
var inner = await this.readData(req, res);
|
||||||
|
return encoder(inner);
|
||||||
|
};
|
||||||
|
|
||||||
return new AnonymousService<Id, U>(
|
return new AnonymousService<Id, U>(
|
||||||
|
readData: readData,
|
||||||
index: ([params]) {
|
index: ([params]) {
|
||||||
return index(params).then((it) => it.map(encoder).toList());
|
return index(params).then((it) => it.map(encoder).toList());
|
||||||
},
|
},
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
name: angel_framework
|
name: angel_framework
|
||||||
version: 2.0.0-rc.6
|
version: 2.0.0-rc.7
|
||||||
description: A high-powered HTTP server with dependency injection, routing and much more.
|
description: A high-powered HTTP server with dependency injection, routing and much more.
|
||||||
author: Tobe O <thosakwe@gmail.com>
|
author: Tobe O <thosakwe@gmail.com>
|
||||||
homepage: https://github.com/angel-dart/angel_framework
|
homepage: https://github.com/angel-dart/angel_framework
|
||||||
|
|
Loading…
Reference in a new issue