Mixonomer-iOS/Music Tools/Network/Network.swift

81 lines
2.1 KiB
Swift

//
// Network.swift
// Music Tools
//
// Created by Andy Pack on 18/02/2020.
// Copyright © 2020 Sarsoo. All rights reserved.
//
import Foundation
import Alamofire
class MusicToolsNetwork {
var baseBath: String = "https://music.sarsoo.xyz/"
public func request(path: String,
method: Alamofire.HTTPMethod,
parameters: [String:String]? ,
encoder: Alamofire.ParameterEncoder?,
headers: Alamofire.HTTPHeaders? ) {
guard let uwParameters = parameters else {
AF.request(baseBath + path,
method: method,
headers: headers ).validate().response { response in
debugPrint(response)
}
return
}
AF.request(baseBath + path,
method: method,
parameters: uwParameters,
headers: headers ).response { response in
debugPrint(response)
}
}
}
class BasicAuthNetwork: MusicToolsNetwork {
var username: String
var password: String
init(username: String, password: String) {
self.username = username
self.password = password
}
func getHeader() -> String {
return "\(username):\(password)".toBase64()
}
public func authedRequest(path: String,
method: Alamofire.HTTPMethod,
parameters: [String:String]?,
encoder: Alamofire.ParameterEncoder?,
headers: Alamofire.HTTPHeaders? ) {
let encoded = "\(username):\(password)".toBase64()
var txHeaders = headers
if headers == nil {
txHeaders = Alamofire.HTTPHeaders()
}
txHeaders?.add(name: "Authorization", value: "Basic \(encoded)")
request(path: path, method: method, parameters: parameters, encoder: encoder, headers: txHeaders)
}
}
extension String {
func toBase64() -> String {
return Data(self.utf8).base64EncodedString()
}
}