Add image upload functionality and enhance page metadata creation.
All checks were successful
SteamWarCI Build successful
All checks were successful
SteamWarCI Build successful
This commit is contained in:
@ -38,7 +38,11 @@ import io.ktor.server.response.*
|
||||
import io.ktor.server.routing.*
|
||||
import kotlinx.serialization.Serializable
|
||||
import kotlinx.serialization.json.*
|
||||
import java.time.Instant
|
||||
import java.time.LocalDate
|
||||
import java.time.format.DateTimeFormatter
|
||||
import java.util.Base64
|
||||
import java.util.Date
|
||||
|
||||
val pathPageIdMap = mutableMapOf<String, Int>()
|
||||
var pageId = 1
|
||||
@ -87,6 +91,9 @@ data class PageResponse(
|
||||
@Serializable
|
||||
data class CreatePageRequest(val path: String, val slug: String?, val title: String?)
|
||||
|
||||
@Serializable
|
||||
data class AddImageRequest(val name: String, val data: String)
|
||||
|
||||
@Serializable
|
||||
data class CreateBranchRequest(val branch: String)
|
||||
|
||||
@ -99,6 +106,9 @@ data class MergeBranchRequest(val branch: String, val message: String)
|
||||
@Serializable
|
||||
data class DeletePageRequest(val sha: String, val message: String)
|
||||
|
||||
@Serializable
|
||||
data class CreateGiteaPageRequest(val message: String, val content: String, val branch: String, val author: Identity)
|
||||
|
||||
fun Route.configurePage() {
|
||||
val client = HttpClient(Java) {
|
||||
install(ContentNegotiation) {
|
||||
@ -148,8 +158,6 @@ fun Route.configurePage() {
|
||||
})
|
||||
}
|
||||
post {
|
||||
@Serializable
|
||||
data class CreateGiteaPageRequest(val message: String, val content: String, val branch: String, val author: Identity)
|
||||
|
||||
val req = call.receive<CreatePageRequest>()
|
||||
if(req.path.startsWith("src/content/")) {
|
||||
@ -164,7 +172,10 @@ fun Route.configurePage() {
|
||||
---
|
||||
title: ${req.title ?: "[Enter Title]"}
|
||||
description: [Enter Description]
|
||||
slug: ${req.slug ?: "[Enter Slug]"}
|
||||
key: ${req.slug ?: "[Enter Slug]"}
|
||||
created: ${LocalDate.now().format(DateTimeFormatter.ISO_LOCAL_DATE)}
|
||||
tags:
|
||||
- test
|
||||
---
|
||||
|
||||
# ${req.path}
|
||||
@ -259,6 +270,21 @@ fun Route.configurePage() {
|
||||
|
||||
call.respond(filesInDirectory("/src/images", branch))
|
||||
}
|
||||
post {
|
||||
val req = call.receive<AddImageRequest>()
|
||||
|
||||
client.post("repos/SteamWar/Website/contents/src/images/${req.name}") {
|
||||
contentType(ContentType.Application.Json)
|
||||
setBody(CreateGiteaPageRequest(
|
||||
"Add Image ${req.name}",
|
||||
req.data,
|
||||
call.request.queryParameters["branch"] ?: "master",
|
||||
Identity(call.principal<SWAuthPrincipal>()!!.user.userName, "admin-tool@steamwar.de"
|
||||
)))
|
||||
}
|
||||
|
||||
call.respond(HttpStatusCode.Created)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user