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
|
||||
* Make `redirect` and `download` methods asynchronous.
|
||||
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
import 'dart:async';
|
||||
|
||||
import 'request_context.dart';
|
||||
import 'response_context.dart';
|
||||
import 'service.dart';
|
||||
|
||||
/// 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> modify(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])})
|
||||
: super() {
|
||||
FutureOr<Data> remove(Id id, [Map<String, dynamic> params]),
|
||||
FutureOr<Data> Function(RequestContext, ResponseContext) readData})
|
||||
: super(readData: readData) {
|
||||
_index = index;
|
||||
_read = read;
|
||||
_create = create;
|
||||
|
|
|
@ -160,8 +160,15 @@ class Service<Id, Data> extends Routable {
|
|||
/// using two converter functions.
|
||||
///
|
||||
/// 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>(
|
||||
readData: readData,
|
||||
index: ([params]) {
|
||||
return index(params).then((it) => it.map(encoder).toList());
|
||||
},
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
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.
|
||||
author: Tobe O <thosakwe@gmail.com>
|
||||
homepage: https://github.com/angel-dart/angel_framework
|
||||
|
|
Loading…
Reference in a new issue