Skip to content

Commit 843ad5b

Browse files
committed
new endpoint to show a bulk
1 parent a09775d commit 843ad5b

File tree

3 files changed

+11
-1
lines changed

3 files changed

+11
-1
lines changed

app/controllers/BulkPairing.scala

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,12 @@ final class BulkPairing(env: Env) extends LilaController(env):
1212
JsonOk(Json.obj("bulks" -> list.map(SetupBulk.toJson)))
1313
}
1414

15+
def show(id: String) = ScopedBody(_.Challenge.Bulk) { _ ?=> me ?=>
16+
env.challenge.bulk.findBy(id, me) map:
17+
_.fold(notFoundJson()): bulk =>
18+
JsonOk(SetupBulk.toJson(bulk))
19+
}
20+
1521
def delete(id: String) = ScopedBody(_.Challenge.Bulk) { _ ?=> me ?=>
1622
env.challenge.bulk.deleteBy(id, me) flatMap:
1723
if _ then jsonOkResult else notFoundJson()

conf/routes

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -702,6 +702,7 @@ GET /api/cloud-eval controllers.Api.cloudEval
702702
POST /api/import controllers.Importer.apiSendGame
703703
GET /api/bulk-pairing controllers.BulkPairing.list
704704
POST /api/bulk-pairing controllers.BulkPairing.create
705+
GET /api/bulk-pairing/:id controllers.BulkPairing.show(id)
705706
DELETE /api/bulk-pairing/:id controllers.BulkPairing.delete(id)
706707
POST /api/bulk-pairing/:id/start-clocks controllers.BulkPairing.startClocks(id)
707708

modules/challenge/src/main/ChallengeBulk.scala

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,10 @@ final class ChallengeBulkApi(
4242
)
4343

4444
def scheduledBy(me: User): Fu[List[ScheduledBulk]] =
45-
coll.list[ScheduledBulk]($doc("by" -> me.id))
45+
coll.find($doc("by" -> me.id)).sort($sort desc "pairAt").cursor[ScheduledBulk]().list(100)
46+
47+
def findBy(id: String, me: User): Fu[Option[ScheduledBulk]] =
48+
coll.one[ScheduledBulk]($doc("_id" -> id, "by" -> me.id))
4649

4750
def deleteBy(id: String, me: User): Fu[Boolean] =
4851
coll.delete.one($doc("_id" -> id, "by" -> me.id)).map(_.n == 1)

0 commit comments

Comments
 (0)