From 38d7dc890bfc7c81a92efb36ad6ef23770a18d24 Mon Sep 17 00:00:00 2001 From: mowczarek Date: Fri, 31 Mar 2023 12:27:26 +0200 Subject: [PATCH] Custom headers support for FileUploader. --- .../main/scala/io/udash/utils/FileUploader.scala | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/core/.js/src/main/scala/io/udash/utils/FileUploader.scala b/core/.js/src/main/scala/io/udash/utils/FileUploader.scala index 1dc13b444..e15beec47 100644 --- a/core/.js/src/main/scala/io/udash/utils/FileUploader.scala +++ b/core/.js/src/main/scala/io/udash/utils/FileUploader.scala @@ -1,6 +1,5 @@ package io.udash.utils -import com.avsystem.commons.OptArg import com.avsystem.commons.misc.AbstractCase import io.udash._ import io.udash.properties.{Blank, HasModelPropertyCreator, PropertyCreator} @@ -21,14 +20,13 @@ class FileUploader(url: Url) { /** Uploads provided `file` in a field named `fieldName` with an optional auth token set in the Authorization header. */ def uploadFile( - fieldName: String, file: File, extraData: Map[js.Any, js.Any] = Map.empty, authToken: OptArg[String] = OptArg.Empty - ): ReadableModelProperty[FileUploadModel] = { - upload(fieldName, Seq(file), extraData = extraData, authToken = authToken) - } + fieldName: String, file: File, extraData: Map[js.Any, js.Any] = Map.empty, additionalRequestHeaders: Seq[RequestHeader] = Seq.empty + ): ReadableModelProperty[FileUploadModel] = + upload(fieldName, Seq(file), extraData = extraData, additionalRequestHeaders = additionalRequestHeaders) /** Uploads provided `files` in a field named `fieldName` with an optional auth token set in the Authorization header. */ def upload( - fieldName: String, files: Seq[File], extraData: Map[js.Any, js.Any] = Map.empty, authToken: OptArg[String] = OptArg.Empty + fieldName: String, files: Seq[File], extraData: Map[js.Any, js.Any] = Map.empty, additionalRequestHeaders: Seq[RequestHeader] = Seq.empty ): ReadableModelProperty[FileUploadModel] = { val p = ModelProperty[FileUploadModel]( new FileUploadModel(Seq.empty, FileUploadState.InProgress, 0, 0, None) @@ -62,12 +60,14 @@ class FileUploader(url: Url) { p.subProp(_.state).set(FileUploadState.Cancelled) ) xhr.open(method = "POST", url = url.value) - authToken.foreach(token => xhr.setRequestHeader("Authorization", token)) + additionalRequestHeaders.foreach(reqHeader => xhr.setRequestHeader(reqHeader.name, reqHeader.value)) xhr.send(data) p } } +final class RequestHeader(val name: String, val value: String) + object FileUploader { sealed trait FileUploadState extends AbstractCase object FileUploadState {