Skip to content

Instantly share code, notes, and snippets.

@yoxisem544
Created August 10, 2016 12:21
Show Gist options
  • Save yoxisem544/854f4299d8e5a2e4ce2c10af485b4a2a to your computer and use it in GitHub Desktop.
Save yoxisem544/854f4299d8e5a2e4ce2c10af485b4a2a to your computer and use it in GitHub Desktop.
import Foundation
import SwiftyJSON
public struct Classmate {
// MARK: - Parameters
public let id: Int
public let name: String
public let gender: Gender
public let avatarURL: String
public let coverPhotoURL: String
private struct Keys {
static let id = "id"
static let name = "name"
static let gender = "gender"
static let avatarURL = "avatar_url"
static let coverPhotoURL = "cover_photo_url"
}
public init?(with json: JSON) {
guard let id = json[Keys.id].int else { return nil }
guard let name = json[Keys.name].string else { return nil }
guard let genderValue = json[Keys.gender].string else { return nil }
guard let gender = Gender(withValue: genderValue) else { return nil }
guard let avatarURL = json[Keys.avatarURL].string else { return nil }
guard let coverPhotoURL = json[Keys.coverPhotoURL].string else { return nil }
self.id = id
self.name = name
self.gender = gender
self.avatarURL = avatarURL
self.coverPhotoURL = coverPhotoURL
}
public static func generateClassmates(with json: JSON) -> [Classmate] {
guard json.isArray else { return [] }
var classmates: [Classmate] = []
for (_, json) : (String, JSON) in json {
if let classmate = Classmate(with: json) {
classmates.append(classmate)
}
}
return classmates
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment