From 8b6d4fe7515b5dd7b03c4b0476586af7c13486dc Mon Sep 17 00:00:00 2001 From: Alexander Loren Date: Mon, 19 Oct 2026 13:53:57 -0700 Subject: [PATCH] Method is set through enum value instead of string --- Sources/JellyKit/Client.swift | 2 +- Sources/JellyKit/Enums/RequestMethod.swift | 15 +++++++++++++++ Sources/JellyKit/Protocols/Request.swift | 2 +- Sources/JellyKit/Requests/PingRequest.swift | 2 +- 4 files changed, 18 insertions(+), 3 deletions(-) create mode 100644 Sources/JellyKit/Enums/RequestMethod.swift diff --git a/Sources/JellyKit/Client.swift b/Sources/JellyKit/Client.swift index 37e96cc..6b0ed76 100644 --- a/Sources/JellyKit/Client.swift +++ b/Sources/JellyKit/Client.swift @@ -65,7 +65,7 @@ public struct Client { } var urlRequest = URLRequest(url: url) - urlRequest.httpMethod = request.method + urlRequest.httpMethod = request.method.rawValue urlRequest.allHTTPHeaderFields = headers return urlRequest } diff --git a/Sources/JellyKit/Enums/RequestMethod.swift b/Sources/JellyKit/Enums/RequestMethod.swift new file mode 100644 index 0000000..6d209e0 --- /dev/null +++ b/Sources/JellyKit/Enums/RequestMethod.swift @@ -0,0 +1,15 @@ +// +// RequestMethod.swift +// JellyKit +// +// Created by Alex Loren on 10/19/26. +// + +/// What method should be used when sending a `Request` to Emby or Jellyfin. +/// Usage of this enum prevents any chance of misspelling the method. +public enum RequestMethod: String { + case get = "GET" + case head = "HEAD" + case post = "POST" + case delete = "DELETE" +} diff --git a/Sources/JellyKit/Protocols/Request.swift b/Sources/JellyKit/Protocols/Request.swift index 27a2a1e..06ed7e0 100644 --- a/Sources/JellyKit/Protocols/Request.swift +++ b/Sources/JellyKit/Protocols/Request.swift @@ -14,7 +14,7 @@ protocol Request { var endpoint: String { get set } /// What should this request be sent as? - var method: String { get set } + var method: RequestMethod { get set } /// Any additional headers that are specific to *this* request. /// Headers needed for every reqeust should be set at `Client` creation. diff --git a/Sources/JellyKit/Requests/PingRequest.swift b/Sources/JellyKit/Requests/PingRequest.swift index 1327f78..41afb5d 100644 --- a/Sources/JellyKit/Requests/PingRequest.swift +++ b/Sources/JellyKit/Requests/PingRequest.swift @@ -11,6 +11,6 @@ struct PingRequest: Request { // MARK: - Properties var endpoint: String = "/System/Ping" - var method: String = "GET" + var method: RequestMethod = .get var headers: [String : String]? = nil }