mirror of
https://github.com/johrpan/musicus_mobile.git
synced 2025-10-26 10:47:25 +01:00
database, server: Simpler and more efficient API
This commit is contained in:
parent
d2a8363f6f
commit
ad022a6640
11 changed files with 271 additions and 68 deletions
|
|
@ -8,7 +8,7 @@ class CompositionsController extends ResourceController {
|
|||
|
||||
@Operation.get('id')
|
||||
Future<Response> getWorks(@Bind.path('id') int id) async {
|
||||
final works = db.worksByComposer(id).get();
|
||||
final works = await db.getWorks(id);
|
||||
return Response.ok(works);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,14 +0,0 @@
|
|||
import 'package:aqueduct/aqueduct.dart';
|
||||
import 'package:musicus_database/musicus_database.dart';
|
||||
|
||||
class PerformancesController extends ResourceController {
|
||||
final Database db;
|
||||
|
||||
PerformancesController(this.db);
|
||||
|
||||
@Operation.get('id')
|
||||
Future<Response> getPerformances(@Bind.path('id') int id) async {
|
||||
final performances = await db.performancesByRecording(id).get();
|
||||
return Response.ok(performances);
|
||||
}
|
||||
}
|
||||
|
|
@ -8,7 +8,7 @@ class RecordingsController extends ResourceController {
|
|||
|
||||
@Operation.get('id')
|
||||
Future<Response> getRecording(@Bind.path('id') int id) async {
|
||||
final recording = await db.recordingById(id).getSingle();
|
||||
final recording = await db.getRecording(id);
|
||||
if (recording != null) {
|
||||
return Response.ok(recording);
|
||||
} else {
|
||||
|
|
@ -21,6 +21,7 @@ class RecordingsController extends ResourceController {
|
|||
@Bind.path('id') int id, @Bind.body() Map<String, dynamic> json) async {
|
||||
final data = RecordingData.fromJson(json);
|
||||
await db.updateRecording(data);
|
||||
return Response.ok(null);
|
||||
|
||||
return Response.ok(await db.getRecording(id));
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -9,10 +9,8 @@ import 'compositions.dart';
|
|||
import 'configuration.dart';
|
||||
import 'ensembles.dart';
|
||||
import 'instruments.dart';
|
||||
import 'performances.dart';
|
||||
import 'persons.dart';
|
||||
import 'recordings.dart';
|
||||
import 'work_parts.dart';
|
||||
import 'works.dart';
|
||||
|
||||
class MusicusServer extends ApplicationChannel {
|
||||
|
|
@ -35,10 +33,7 @@ class MusicusServer extends ApplicationChannel {
|
|||
..route('/persons/:id/works').link(() => CompositionsController(db))
|
||||
..route('/instruments/[:id]').link(() => InstrumentsController(db))
|
||||
..route('/works/:id').link(() => WorksController(db))
|
||||
..route('/works/:id/parts').link(() => WorkPartsController(db))
|
||||
..route('/works/:id/recordings').link(() => WorkRecordingsController(db))
|
||||
..route('/ensembles/[:id]').link(() => EnsemblesController(db))
|
||||
..route('/recordings/:id').link(() => RecordingsController(db))
|
||||
..route('/recordings/:id/performances')
|
||||
.link(() => PerformancesController(db));
|
||||
..route('/recordings/:id').link(() => RecordingsController(db));
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,14 +0,0 @@
|
|||
import 'package:aqueduct/aqueduct.dart';
|
||||
import 'package:musicus_database/musicus_database.dart';
|
||||
|
||||
class WorkPartsController extends ResourceController {
|
||||
final Database db;
|
||||
|
||||
WorkPartsController(this.db);
|
||||
|
||||
@Operation.get('id')
|
||||
Future<Response> getParts(@Bind.path('id') int id) async {
|
||||
final parts = await db.workParts(id).get();
|
||||
return Response.ok(parts);
|
||||
}
|
||||
}
|
||||
|
|
@ -8,7 +8,7 @@ class WorkRecordingsController extends ResourceController {
|
|||
|
||||
@Operation.get('id')
|
||||
Future<Response> getRecordings(@Bind.path('id') int id) async {
|
||||
final recordings = await db.recordingsByWork(id).get();
|
||||
final recordings = await db.getRecordings(id);
|
||||
return Response.ok(recordings);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -8,7 +8,7 @@ class WorksController extends ResourceController {
|
|||
|
||||
@Operation.get('id')
|
||||
Future<Response> getWork(@Bind.path('id') int id) async {
|
||||
final work = await db.workById(id).getSingle();
|
||||
final work = await db.getWork(id);
|
||||
if (work != null) {
|
||||
return Response.ok(work);
|
||||
} else {
|
||||
|
|
@ -21,6 +21,7 @@ class WorksController extends ResourceController {
|
|||
@Bind.path('id') int id, @Bind.body() Map<String, dynamic> json) async {
|
||||
final data = WorkData.fromJson(json);
|
||||
await db.updateWork(data);
|
||||
return Response.ok(null);
|
||||
|
||||
return Response.ok(await db.getWork(id));
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue