Premiumize: Fix API key usage
PM has a different method to handle API keys compared to other services which takes the value as an authorization header. Signed-off-by: kingbri <bdashore3@proton.me>
This commit is contained in:
parent
375de6f46e
commit
f0d917002e
1 changed files with 21 additions and 1 deletions
|
|
@ -70,7 +70,27 @@ public class Premiumize {
|
|||
throw PMError.InvalidToken
|
||||
}
|
||||
|
||||
request.setValue("Bearer \(token)", forHTTPHeaderField: "Authorization")
|
||||
// Use the API query parameter if a manual API key is present
|
||||
if UserDefaults.standard.bool(forKey: "Premiumize.UseManualKey") {
|
||||
guard
|
||||
let requestUrl = request.url,
|
||||
var components = URLComponents(url: requestUrl, resolvingAgainstBaseURL: false)
|
||||
else {
|
||||
throw PMError.InvalidUrl
|
||||
}
|
||||
|
||||
let apiTokenItem = URLQueryItem(name: "apikey", value: token)
|
||||
|
||||
if components.queryItems == nil {
|
||||
components.queryItems = [apiTokenItem]
|
||||
} else {
|
||||
components.queryItems?.append(apiTokenItem)
|
||||
}
|
||||
|
||||
request.url = components.url
|
||||
} else {
|
||||
request.setValue("Bearer \(token)", forHTTPHeaderField: "Authorization")
|
||||
}
|
||||
|
||||
let (data, response) = try await URLSession.shared.data(for: request)
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue