Skip to content

Instantly share code, notes, and snippets.

View wadheraswati's full-sized avatar

Swati Wadhera wadheraswati

  • WedMeGood
  • Delhi - NCR
View GitHub Profile
func getURLRequest(method: HTTPMethod, body: Encodable? = nil, params: [String: Any]? = nil) throws -> URLRequest {
do {
var queryParams = [String: Any]()
if let myParams = params {
queryParams = myParams
}
let myURL = try urlString.asURL()
var urlRequest = URLRequest(url: myURL)
struct User: Encodable {
let id: Int
let name: Encodable
let address: Address
enum CodingKeys: String, CodingKey {
case id
case name
}
}
struct User: Encodable {
let id: Int
let name: Encodable
let address: Address
enum CodingKeys: String, CodingKey {
case id
case name
}
}
@wadheraswati
wadheraswati / EncodableExtension.swift
Created November 9, 2019 16:53
Convert Encodable to Json
extension Encodable {
func asJson() -> [String : Any]? {
do {
let data = try JSONEncoder().encode(self)
guard let dictionary = try JSONSerialization.jsonObject(with: data, options: .allowFragments) as? [String : AnyObject] else {
return nil
}
return dictionary
} catch {
@wadheraswati
wadheraswati / UserModel.swift
Last active November 9, 2019 17:16
Encoding Example with URL Encoding and JSON Encoding
struct User: Encodable {
let id: Int
let name: Encodable
enum CodingKeys: String, CodingKey {
case id
case name
}
}
@wadheraswati
wadheraswati / ExtensionForURL
Last active November 9, 2019 17:27
Create URL Request with Parameters
func getURLRequest(method: HTTPMethod, body: Encodable? = nil, params: [String: Any]? = nil) throws -> URLRequest {
do {
var queryParams = [String: Any]()
if let myParams = params {
queryParams = myParams
}
queryParams[Constants.token] = AppCache.token
@wadheraswati
wadheraswati / NetworkManager.swift
Last active November 9, 2019 14:16
Alamofire request method
func requestWith(url: URL, method: HTTPMethod, parameters: Parameters? = nil, headers: HTTPHeaders? = nil, completion: (DataResponse) -> (Void), failure: (Data) -> (Void))
let request = Alamofire.request(url,
method: method,
parameters: parameters,
headers : headers)
request.validate().responseJSON {
response in
if (200..<300) ~= response.response?.statusCode {
completion(response.result)
@wadheraswati
wadheraswati / NetworkManager.swift
Last active November 9, 2019 14:00
Network Layer with Alamofire
static func request(urlRequest: URLRequest, completion: (DataResponse) -> (Void), failure: (Data) -> (Void)) {
let request = Alamofire.request(urlRequest)
.validate()
request.validate().responseJSON {response in
if (200..<300) ~= response.response?.statusCode {
completion(response.result)
} else {
failure(response.data)
}
}