MrNiamh
12/04/2024, 12:34 PMsecurity
but still be able to extract it again in my actual end point? Seems to work fine with a normal string json body but not multipart (which to be fair I wasnt expecting it to work with json). Example below of what im trying to do:
fun postImportFile(auth: TenantAuthentication, importManagementService: ImportManagementService): ContractRoute =
"/tenants" / Path.tenantId() / "import" meta {
security = auth.isUserInTenant { request ->
listOf(
when (postImportMultipart(importFormBody(request)).importType) {
// some stuff
}
)
}
receiving(importFormBody)
preFlightExtraction = IgnoreBody
} bindContract <http://Method.POST|Method.POST> to
{ tenantId, _ ->
{ request: Request ->
val form = importFormBody(request)
val importFile = inputFile(form)
val additional = additionalFilesMultipart(form)
val r = postImportMultipart(form)
// do some stuff
}
}
val inputFile = MultipartFormFile.required("inputFile")
val additionalFilesMultipart = MultipartFormFile.multi.optional("additionalFiles")
val postImportMultipart = MultipartFormField.auto<PostImportFileRequestDTO>(CustomJackson()).required("import")
val importFormBody = Body.multipartForm(Validator.Strict, inputFile, postImportMultipart, additionalFilesMultipart).toLens()
dave
12/04/2024, 12:40 PMMrNiamh
12/04/2024, 1:48 PM