Adds stubs for some basic Team CRUD

This commit is contained in:
2026-01-08 22:14:28 -06:00
parent 7dce3e38b4
commit 3a53769421
6 changed files with 92 additions and 0 deletions

View File

@@ -0,0 +1,27 @@
package net.halfbinary.scavengerhuntapi.controller
import jakarta.validation.Valid
import net.halfbinary.scavengerhuntapi.model.HuntId
import net.halfbinary.scavengerhuntapi.model.request.TeamRequest
import net.halfbinary.scavengerhuntapi.model.response.TeamResponse
import org.springframework.http.ResponseEntity
import org.springframework.web.bind.annotation.GetMapping
import org.springframework.web.bind.annotation.PathVariable
import org.springframework.web.bind.annotation.PostMapping
import org.springframework.web.bind.annotation.RequestBody
import org.springframework.web.bind.annotation.RequestMapping
import org.springframework.web.bind.annotation.RestController
@RestController
@RequestMapping("hunt/{id}/team")
class TeamController {
@GetMapping
fun listHuntTeams(@PathVariable id: HuntId): ResponseEntity<List<TeamResponse>> {
TODO()
}
@PostMapping
fun createHuntTeam(@PathVariable id: HuntId, @Valid @RequestBody team: TeamRequest) {
TODO()
}
}

View File

@@ -0,0 +1,22 @@
package net.halfbinary.scavengerhuntapi.model.converter
import net.halfbinary.scavengerhuntapi.model.domain.Team
import net.halfbinary.scavengerhuntapi.model.record.TeamRecord
import net.halfbinary.scavengerhuntapi.model.request.TeamRequest
import net.halfbinary.scavengerhuntapi.model.response.TeamResponse
fun TeamRequest.toDomain(): Team {
return Team(name = name)
}
fun Team.toRecord(): TeamRecord {
return TeamRecord(id, name)
}
fun TeamRecord.toDomain(): Team {
return Team(id, name)
}
fun Team.toResponse(): TeamResponse {
return TeamResponse(id, name)
}

View File

@@ -0,0 +1,9 @@
package net.halfbinary.scavengerhuntapi.model.domain
import net.halfbinary.scavengerhuntapi.model.TeamId
import java.util.UUID
data class Team(
val id: TeamId = UUID.randomUUID(),
val name: String
)

View File

@@ -0,0 +1,5 @@
package net.halfbinary.scavengerhuntapi.model.request
data class TeamRequest(
val name: String
)

View File

@@ -0,0 +1,8 @@
package net.halfbinary.scavengerhuntapi.model.response
import net.halfbinary.scavengerhuntapi.model.TeamId
data class TeamResponse(
val id: TeamId,
val name: String
)

View File

@@ -0,0 +1,21 @@
package net.halfbinary.scavengerhuntapi.service
import net.halfbinary.scavengerhuntapi.model.HuntId
import net.halfbinary.scavengerhuntapi.model.TeamId
import net.halfbinary.scavengerhuntapi.model.domain.Team
import org.springframework.stereotype.Service
@Service
class TeamService {
fun getListOfTeamsForHunt(huntId: HuntId): List<Team> {
TODO()
}
fun createTeam(name: String): Team {
TODO()
}
fun addTeamToHunt(huntId: HuntId, teamId: TeamId) {
TODO()
}
}