configure method
Configures this API module. Usually defines the routes of this instance.
Implementation
@override
void configure() {
if (onlyOnDevelopment && !development) return;
routes.add(null, 'info', (request) async {
var authResp = await checkAuthentication(request);
if (authResp != null) return authResp;
var openTransactions = Transaction.openInstances;
var info =
StringBuffer('Open Transactions (${openTransactions.length}):\n');
for (var t in openTransactions) {
info.write(t);
info.write('\n');
}
Transaction.executingTransaction;
return APIResponse.ok(info.toString());
});
routes.add(null, 'tables', (request) async {
var authResp = await checkAuthentication(request);
if (authResp != null) return authResp;
var pathParams = _parsePath(request, 'tables');
var json = _containsKey(pathParams ?? [], 'json');
return tables(json: json);
});
routes.add(null, 'select', (request) async {
var authResp = await checkAuthentication(request);
if (authResp != null) return authResp;
var pathParams = _parsePath(request, 'select');
if (pathParams == null) {
return APIResponse.notFound();
}
var table = pathParams.removeAt(0);
var eager = pathParams.any((p) => equalsIgnoreAsciiCase(p, 'eager'))
? true
: null;
var json = _containsKey(pathParams, 'json');
return select(table, request, eager: eager, json: json);
});
routes.add(null, 'insert', (request) async {
var authResp = await checkAuthentication(request);
if (authResp != null) return authResp;
var pathParams = _parsePath(request, 'insert');
if (pathParams == null) {
return APIResponse.notFound();
}
var table = pathParams.removeAt(0);
return insert(table, request);
});
routes.add(null, 'update', (request) async {
var authResp = await checkAuthentication(request);
if (authResp != null) return authResp;
var pathParams = _parsePath(request, 'update');
if (pathParams == null) {
return APIResponse.notFound();
}
var table = pathParams.removeAt(0);
var id = pathParams.isNotEmpty ? pathParams.removeAt(0) : null;
return insert(table, request, id: id);
});
routes.add(null, 'delete', (request) async {
var authResp = await checkAuthentication(request);
if (authResp != null) return authResp;
var pathParams = _parsePath(request, 'delete');
if (pathParams == null) {
return APIResponse.notFound();
}
var table = pathParams.removeAt(0);
var id = pathParams.isNotEmpty ? pathParams.removeAt(0) : null;
return delete(table, request, id);
});
routes.add(null, 'dump', (request) async {
var authResp = await checkAuthentication(request);
if (authResp != null) return authResp;
var pathParams = _parsePath(request, 'dump');
if (pathParams == null) {
return APIResponse.notFound();
}
var zip = pathParams.any((p) => equalsIgnoreAsciiCase(p, 'zip'));
return dump(zip);
});
}