Skip to content

Commit ccff9b3

Browse files
committed
fix issues with posting an image
1 parent 82ed9cb commit ccff9b3

File tree

3 files changed

+14
-4
lines changed

3 files changed

+14
-4
lines changed

.gitignore

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,4 +43,5 @@ bin/
4343

4444
### Mac OS ###
4545
.DS_Store
46-
test.kt
46+
test.kt
47+
test.png

src/main/kotlin/com/ctrlhub/core/media/ImagesRouter.kt

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,11 +7,13 @@ import com.ctrlhub.core.api.UnauthorizedException
77
import com.ctrlhub.core.api.response.PaginatedList
88
import com.ctrlhub.core.media.request.CreateImagePayload
99
import com.ctrlhub.core.media.request.CreateImagePayloadAttributes
10+
import com.ctrlhub.core.media.request.CreateImagePayloadData
1011
import com.ctrlhub.core.media.response.Image
1112
import com.ctrlhub.core.router.Router
1213
import io.ktor.client.HttpClient
1314
import io.ktor.client.call.body
1415
import io.ktor.client.plugins.ClientRequestException
16+
import io.ktor.http.ContentType
1517
import io.ktor.http.HttpStatusCode
1618
import java.io.File
1719
import java.nio.file.Files
@@ -96,10 +98,12 @@ class ImagesRouter(httpClient: HttpClient): Router(httpClient) {
9698
val dataUri = "data:$mimeType;base64,$base64Data"
9799

98100
val response = performPost(endpoint, body = CreateImagePayload(
99-
attributes = CreateImagePayloadAttributes(
100-
content = dataUri
101+
data = CreateImagePayloadData(
102+
attributes = CreateImagePayloadAttributes(
103+
content = dataUri
104+
),
101105
)
102-
))
106+
), contentType = ContentType.parse("application/vnd.api+json"))
103107

104108
fetchJsonApiResource(response)
105109
} catch (e: ClientRequestException) {

src/main/kotlin/com/ctrlhub/core/media/request/CreateImagePayload.kt

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,11 @@ import kotlinx.serialization.Serializable
55
@Serializable
66
data class CreateImagePayload(
77
val type: String = "images",
8+
val data: CreateImagePayloadData
9+
)
10+
11+
@Serializable
12+
data class CreateImagePayloadData(
813
val attributes: CreateImagePayloadAttributes
914
)
1015

0 commit comments

Comments
 (0)