Skip to content

Instantly share code, notes, and snippets.

View Rashidium's full-sized avatar

Raşid Ramazanov Rashidium

  • Mobven
  • Istanbul
View GitHub Profile
@Rashidium
Rashidium / FeedViewController.swift
Last active January 26, 2021 14:48
Clean View Controller
import UIKit
protocol FeedDisplayLogic: AnyObject {
}
final class FeedViewController: UIViewController {
var interactor: FeedBusinessLogic?
var router: (FeedRoutingLogic & FeedDataPassing)?
import Foundation
public class Coupon: PanpaDecodable {
var id: String = ""
var name: String = ""
var no: String = ""
var isOpen: Bool = false
var matches: [PMatches] = []
public class User: PanpaDecodable {
var username: String?
var name: String?
var surname: String?
var email: String?
var uid: String?
enum CodingKeys: String, CodingKey {
case username, name, surname, email, uid
import Foundation
protocol PanpaDecodable: Decodable & Keyable { }
protocol Keyable {
static var codingKey: String { get }
}
{
"message" : "",
"status" : 1,
"user" : {
"uid" : "XXX-XXX-XXX",
"surname" : "Ramazanov",
"username" : "Rashid",
"email" : "rashid.ramazanov@gmail.com",
"name" : "Rashid",
}
{
"message": "",
"status": 0,
"coupon": {
"cpnid": "XXX-XXX-XXX",
"couponname": "29.Kupon",
"couponno": "29",
"iscouponopen" : false,
"matches": [
{
import Alamofire
...
private func getCoupon() {
let urlStr = "\(serverUrl)\(EndpointTails.group_last_coupon_one.rawValue)"
AF.request(urlStr, method: .get).responseDecodable { (response: DataResponse<PanpaResponse<Coupon>, AFError>) in
if let panpaResponse = response.value {
switch panpaResponse.status {
case .success:
guard let coupon: Coupon = panpaResponse.data else { return }
print(coupon.name)
import Alamofire
...
func login() {
let urlStr = "\(serverUrl)\(EndpointTails.login.rawValue)"
AF.request(urlStr, method: .get).responseDecodable { (response: DataResponse<PanpaResponse<User>, AFError>) in
if let panpaResponse = response.value {
switch panpaResponse.status {
case .success:
guard let user: User = panpaResponse.data else { return }
print(user.username)
@Rashidium
Rashidium / PanpaResponse.swift
Last active April 21, 2019 21:36
Generic Response Decodable with T type.
import Foundation
struct PanpaResponse<T>: Decodable where T: Decodable {
private var statusInt: Int?
var status: Status {
if statusInt == 1 || statusInt == 0 {
return .success
}
return .failed
{
"message": "",
"status": 0,
"data": {
"cpnid": "XXX-XXX-XXX",
"couponname": "29.Kupon",
"couponno": "29",
"iscouponopen" : false,
"matches": [
{