Skip to content

Commit

Permalink
Merge pull request #222 from cuappdev/kevin/islive
Browse files Browse the repository at this point in the history
Fabric logging and isLive feature
  • Loading branch information
kevinchan159 authored Nov 3, 2018
2 parents f157b6e + 6d79f0a commit ec467df
Show file tree
Hide file tree
Showing 12 changed files with 175 additions and 116 deletions.
2 changes: 0 additions & 2 deletions Clicker.xcodeproj/project.pbxproj
Original file line number Diff line number Diff line change
Expand Up @@ -773,7 +773,6 @@
"${BUILT_PRODUCTS_DIR}/Neutron/Neutron.framework",
"${BUILT_PRODUCTS_DIR}/Presentr/Presentr.framework",
"${BUILT_PRODUCTS_DIR}/PromiseKit/PromiseKit.framework",
"${BUILT_PRODUCTS_DIR}/Siren/Siren.framework",
"${BUILT_PRODUCTS_DIR}/SnapKit/SnapKit.framework",
"${BUILT_PRODUCTS_DIR}/Socket.IO-Client-Swift/SocketIO.framework",
"${BUILT_PRODUCTS_DIR}/Starscream/Starscream.framework",
Expand All @@ -790,7 +789,6 @@
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/Neutron.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/Presentr.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/PromiseKit.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/Siren.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/SnapKit.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/SocketIO.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/Starscream.framework",
Expand Down
1 change: 0 additions & 1 deletion Clicker/AppDelegate.swift
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,6 @@ import FLEX
import GoogleSignIn
import Crashlytics
import StoreKit
import Siren

@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate, GIDSignInDelegate {
Expand Down
10 changes: 2 additions & 8 deletions Clicker/Models/Session.swift
Original file line number Diff line number Diff line change
Expand Up @@ -23,18 +23,12 @@ class Session {
self.code = code
}

init(id: Int, name: String, code: String, isLive: Bool) {
self.id = id
self.name = name
self.code = code
self.isLive = isLive
}

init(id: Int, name: String, code: String, latestActivity: String) {
init(id: Int, name: String, code: String, latestActivity: String, isLive: Bool) {
self.id = id
self.name = name
self.code = code
self.description = latestActivity
self.isLive = isLive
}

}
Expand Down
84 changes: 42 additions & 42 deletions Clicker/Quarks/SessionQuark.swift
Original file line number Diff line number Diff line change
Expand Up @@ -37,12 +37,12 @@ struct GenerateCode : ClickerQuark {
}

struct CreateSession: ClickerQuark {

typealias ResponseType = Session
let name: String
let code: String
let isGroup: Bool

var route: String {
return "/sessions"
}
Expand All @@ -59,7 +59,7 @@ struct CreateSession: ClickerQuark {
]
}
let method: HTTPMethod = .post

func process(element: Element) throws -> Session {
switch element {
case .node(let node):
Expand All @@ -70,14 +70,14 @@ struct CreateSession: ClickerQuark {
default: throw NeutronError.badResponseData
}
}

}

struct GetSession: ClickerQuark {

typealias ResponseType = Session
let id: String

var route: String {
return "/sessions/\(id)"
}
Expand All @@ -87,7 +87,7 @@ struct GetSession: ClickerQuark {
]
}
let method: HTTPMethod = .get

func process(element: Element) throws -> Session {
switch element {
case .node(let node):
Expand All @@ -98,39 +98,39 @@ struct GetSession: ClickerQuark {
default: throw NeutronError.badResponseData
}
}

}

struct GetPollSessions: ClickerQuark {

typealias ResponseType = [Session]

let role: UserRole

var route: String {
return "/sessions/all/\(role)"
}
var headers: HTTPHeaders {
if let userSession = User.userSession {
return [
"Authorization": "Bearer \(userSession.accessToken)"
"Authorization": "Bearer \(userSession.accessToken)"
]
} else {
return [:]
}
}
let method: HTTPMethod = .get

func process(element: Element) throws -> [Session] {
switch element {
case .nodes(let nodes):
var preSessions: [Double:Session] = [:]
for node in nodes {
guard let id = node["id"].int, let name = node["name"].string, let code = node["code"].string, let updatedAt = node["updatedAt"].string else {
guard let id = node["id"].int, let name = node["name"].string, let code = node["code"].string, let updatedAt = node["updatedAt"].string, let isLive = node["isLive"].bool else {
throw NeutronError.badResponseData
}
guard let latestActivityTimestamp = Double(updatedAt) else { break }
preSessions[latestActivityTimestamp] = Session(id: id, name: name, code: code, latestActivity: getLatestActivity(latestActivityTimestamp: latestActivityTimestamp, code: code))
preSessions[latestActivityTimestamp] = Session(id: id, name: name, code: code, latestActivity: getLatestActivity(latestActivityTimestamp: latestActivityTimestamp, code: code), isLive: isLive)
}
var sessions: [Session] = [Session]()
for time in preSessions.keys.sorted() {
Expand Down Expand Up @@ -173,12 +173,12 @@ struct GetPollSessions: ClickerQuark {
}

struct UpdateSession: ClickerQuark {

typealias ResponseType = Session
let id: Int
let name: String
let code: String

var route: String {
return "/sessions/\(id)"
}
Expand All @@ -194,9 +194,9 @@ struct UpdateSession: ClickerQuark {
"code": code
]
}

let method: HTTPMethod = .put

func process(element: Element) throws -> Session {
switch element {
case .node(let node):
Expand All @@ -210,11 +210,11 @@ struct UpdateSession: ClickerQuark {
}

struct DeleteSession: ClickerQuark {

typealias ResponseType = Void

let id: Int

var route: String {
return "/sessions/\(id)"
}
Expand All @@ -224,7 +224,7 @@ struct DeleteSession: ClickerQuark {
]
}
let method: HTTPMethod = .delete

func process(element: Element) { }
}

Expand All @@ -249,7 +249,7 @@ struct LeaveSession: ClickerQuark {
struct GetMembers: ClickerQuark {
typealias ResponseType = [User]
let id: String

var route: String {
return "/sessions/\(id)/members"
}
Expand All @@ -259,7 +259,7 @@ struct GetMembers: ClickerQuark {
]
}
let method: HTTPMethod = .get

func process(element: Element) throws -> [User] {
switch element {
case .nodes(let nodes):
Expand All @@ -279,7 +279,7 @@ struct GetMembers: ClickerQuark {
struct GetAdmins: ClickerQuark {
typealias ResponseType = [User]
let id: String

var route: String {
return "/sessions/\(id)/admins"
}
Expand All @@ -289,7 +289,7 @@ struct GetAdmins: ClickerQuark {
]
}
let method: HTTPMethod = .get

func process(element: Element) throws -> [User] {
switch element {
case .nodes(let nodes):
Expand All @@ -307,11 +307,11 @@ struct GetAdmins: ClickerQuark {
}

struct AddMembers: ClickerQuark {

typealias ResponseType = Void
let id: String
let memberIds: [Int]

var route: String {
return "/sessions/\(id)/members"
}
Expand All @@ -326,16 +326,16 @@ struct AddMembers: ClickerQuark {
]
}
let method: HTTPMethod = .post

func process(element: Element) throws -> Void { }
}

struct RemoveMembers: ClickerQuark {

typealias ResponseType = Void
let id: String
let memberIds: [Int]

var route: String {
return "/sessions/\(id)/members"
}
Expand All @@ -349,19 +349,19 @@ struct RemoveMembers: ClickerQuark {
"memberIds": memberIds
]
}

let method: HTTPMethod = .delete

func process(element: Element) throws -> Void { }

}

struct AddAdmins: ClickerQuark {

typealias ResponseType = Void
let id: String
let adminIds: [Int]

var route: String {
return "/sessions/\(id)/admins"
}
Expand All @@ -376,16 +376,16 @@ struct AddAdmins: ClickerQuark {
]
}
let method: HTTPMethod = .post

func process(element: Element) throws -> Void { }
}

struct DeleteAdmins: ClickerQuark {

typealias ResponseType = Void
let id: String
let adminIds: [Int]

var route: String {
return "/groups/\(id)/admins"
}
Expand All @@ -399,11 +399,11 @@ struct DeleteAdmins: ClickerQuark {
"adminIds": adminIds
]
}

let method: HTTPMethod = .delete

func process(element: Element) throws -> Void { }

}

struct StartSession: ClickerQuark {
Expand Down
36 changes: 33 additions & 3 deletions Clicker/Supporting/Analytics.swift
Original file line number Diff line number Diff line change
Expand Up @@ -56,9 +56,39 @@ extension Payload {

}

struct GroupCreatedPayload: Payload {
static let eventName: String = "Group Created"
struct CreatedGroupPayload: Payload {
static let eventName: String = "Created Group"
let deviceInfo = DeviceInfo()
}

struct CreatedPollPaylod: Payload {
static let eventName: String = "Created poll"
let deviceInfo = DeviceInfo()
}

struct CreatedPollFromDraftPayload: Payload {
static let eventName: String = "Created poll from draft"
let deviceInfo = DeviceInfo()
}

let code: String
struct SharedResultsPayload: Payload {
static let eventName: String = "Shared results"
let deviceInfo = DeviceInfo()
}

struct CreatedDraftPayload: Payload {
static let eventName: String = "Created draft"
let deviceInfo = DeviceInfo()
}

struct JoinedGroupPayload: Payload {
static let eventName: String = "Joined group"
let deviceInfo = DeviceInfo()
}

struct SignedOutPayload: Payload {
static let eventName: String = "User signed out"
let deviceInfo = DeviceInfo()
}


1 change: 1 addition & 0 deletions Clicker/ViewControllers/CardController+Extension.swift
Original file line number Diff line number Diff line change
Expand Up @@ -306,6 +306,7 @@ extension CardController: SocketDelegate {

func emitShareResults() {
socket.socket.emit(Routes.serverShare, [])
Analytics.shared.log(with: SharedResultsPayload())
}

func updatedPollOptions(for poll: Poll, currentState: CurrentState) -> [String] {
Expand Down
Loading

0 comments on commit ec467df

Please sign in to comment.