Skip to content

Commit 1033e0f

Browse files
committed
feat(model-server): Introduce delete repository endpoint
1 parent 36d190a commit 1033e0f

File tree

4 files changed

+30
-1
lines changed

4 files changed

+30
-1
lines changed

api/model-server.yaml

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -314,6 +314,18 @@ paths:
314314
$ref: '#/components/responses/500'
315315
"200":
316316
$ref: '#/components/responses/versionDelta'
317+
/v2/repositories/{repository}/delete:
318+
post:
319+
operationId: deleteRepository
320+
parameters:
321+
- name: repository
322+
in: "path"
323+
required: true
324+
schema:
325+
type: string
326+
responses:
327+
"200":
328+
$ref: '#/components/responses/200'
317329
/v2/repositories/{repository}/versions/{versionHash}:
318330
get:
319331
operationId: getRepositoryVersionHash

model-client/src/commonMain/kotlin/org/modelix/model/client2/IModelClientV2.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ interface IModelClientV2 {
4141

4242
suspend fun initRepository(repository: RepositoryId): IVersion
4343
suspend fun listRepositories(): List<RepositoryId>
44-
44+
suspend fun deleteRepository(repository: RepositoryId): Boolean
4545
suspend fun listBranches(repository: RepositoryId): List<BranchReference>
4646

4747
@Deprecated("repository ID is required for permission checks")

model-client/src/commonMain/kotlin/org/modelix/model/client2/ModelClientV2.kt

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -140,6 +140,15 @@ class ModelClientV2(
140140
}.bodyAsText().lines().map { RepositoryId(it) }
141141
}
142142

143+
override suspend fun deleteRepository(repository: RepositoryId): Boolean {
144+
return httpClient.post {
145+
url {
146+
takeFrom(baseUrl)
147+
appendPathSegmentsEncodingSlash("repositories", repository.id, "delete")
148+
}
149+
}.status == HttpStatusCode.OK
150+
}
151+
143152
override suspend fun listBranches(repository: RepositoryId): List<BranchReference> {
144153
return httpClient.get {
145154
url {

model-server/src/main/kotlin/org/modelix/model/server/handlers/ModelReplicationServer.kt

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -165,6 +165,14 @@ class ModelReplicationServer(val repositoriesManager: RepositoriesManager) {
165165
call.respondDelta(initialVersion.getContentHash(), null)
166166
}
167167

168+
post<Paths.deleteRepository> {
169+
fun ApplicationCall.repositoryId() = RepositoryId(parameters["repository"]!!)
170+
fun PipelineContext<Unit, ApplicationCall>.repositoryId() = call.repositoryId()
171+
172+
repositoriesManager.removeRepository(repositoryId())
173+
call.respond(HttpStatusCode.OK)
174+
}
175+
168176
post<Paths.postRepositoryBranch> {
169177
fun ApplicationCall.repositoryId() = RepositoryId(parameters["repository"]!!)
170178
fun PipelineContext<Unit, ApplicationCall>.repositoryId() = call.repositoryId()

0 commit comments

Comments
 (0)