Skip to content

Commit ac3d887

Browse files
authored
Merge pull request #129 from Kwusen/custom-headers-for-status-requests
Custom headers for status requests
2 parents bc7e3c1 + 83c9efe commit ac3d887

File tree

3 files changed

+11
-4
lines changed

3 files changed

+11
-4
lines changed

Sources/TUSKit/TUSAPI.swift

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -42,10 +42,11 @@ final class TUSAPI {
4242
/// By retrieving the status, we know where to continue when we upload again.
4343
/// - Parameters:
4444
/// - remoteDestination: A URL to retrieve the status from (received from the create call)
45+
/// - headers: Request headers.
4546
/// - completion: A completion giving us the `Status` of an upload.
4647
@discardableResult
47-
func status(remoteDestination: URL, completion: @escaping (Result<Status, TUSAPIError>) -> Void) -> URLSessionDataTask {
48-
let request = makeRequest(url: remoteDestination, method: .head, headers: [:])
48+
func status(remoteDestination: URL, headers: [String: String]?, completion: @escaping (Result<Status, TUSAPIError>) -> Void) -> URLSessionDataTask {
49+
let request = makeRequest(url: remoteDestination, method: .head, headers: headers ?? [:])
4950
let task = session.dataTask(request: request) { result in
5051
processResult(completion: completion) {
5152
let (_, response) = try result.get()

Sources/TUSKit/Tasks/StatusTask.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ final class StatusTask: IdentifiableTask {
3636
func run(completed: @escaping TaskCompletion) {
3737
// Improvement: On failure, try uploading from the start. Create creationtask.
3838
if didCancel { return }
39-
sessionTask = api.status(remoteDestination: remoteDestination) { [weak self] result in
39+
sessionTask = api.status(remoteDestination: remoteDestination, headers: self.metaData.customHeaders) { [weak self] result in
4040
guard let self = self else { return }
4141
// Getting rid of self. in this closure
4242
let metaData = self.metaData

Tests/TUSKitTests/TUSAPITests.swift

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,13 @@ final class TUSAPITests: XCTestCase {
3939

4040
let statusExpectation = expectation(description: "Call api.status()")
4141
let remoteFileURL = URL(string: "https://tus.io/myfile")!
42-
api.status(remoteDestination: remoteFileURL, completion: { result in
42+
43+
let metaData = UploadMetadata(id: UUID(),
44+
filePath: URL(string: "file://whatever/abc")!,
45+
uploadURL: URL(string: "io.tus")!,
46+
size: length)
47+
48+
api.status(remoteDestination: remoteFileURL, headers: metaData.customHeaders, completion: { result in
4349
do {
4450
let values = try result.get()
4551
XCTAssertEqual(length, values.length)

0 commit comments

Comments
 (0)