musicus_mobile/server/lib/src/ensembles.dart

44 lines
1.1 KiB
Dart
Raw Normal View History

2020-04-25 13:21:38 +02:00
import 'package:aqueduct/aqueduct.dart';
import 'package:musicus_database/musicus_database.dart';
class EnsemblesController extends ResourceController {
final Database db;
EnsemblesController(this.db);
@Operation.get()
2020-05-01 14:57:23 +02:00
Future<Response> getEnsembles(
[@Bind.query('p') int page, @Bind.query('s') String search]) async {
final ensembles = await db.getEnsembles(page, search);
2020-04-25 13:21:38 +02:00
return Response.ok(ensembles);
}
@Operation.get('id')
Future<Response> getEnsemble(@Bind.path('id') int id) async {
final ensemble = await db.ensembleById(id).getSingle();
if (ensemble != null) {
return Response.ok(ensemble);
} else {
return Response.notFound();
}
}
@Operation.put('id')
Future<Response> putEnsemble(
@Bind.path('id') int id, @Bind.body() Map<String, dynamic> json) async {
final ensemble = Ensemble.fromJson(json).copyWith(
id: id,
);
await db.updateEnsemble(ensemble);
return Response.ok(null);
}
2020-05-01 14:46:36 +02:00
@Operation.delete('id')
Future<Response> deleteEnsemble(@Bind.path('id') int id) async {
await db.deleteEnsemble(id);
return Response.ok(null);
}
2020-04-25 13:21:38 +02:00
}