Skip to content

Commit

Permalink
Merge pull request #478 from pennlabs/fitness
Browse files Browse the repository at this point in the history
Fitness tab!!!
  • Loading branch information
JHawk0224 authored Oct 8, 2023
2 parents 36f2b6e + 85594d2 commit f8df9da
Show file tree
Hide file tree
Showing 24 changed files with 815 additions and 721 deletions.
94 changes: 30 additions & 64 deletions PennMobile.xcodeproj/project.pbxproj

Large diffs are not rendered by default.

1 change: 1 addition & 0 deletions PennMobile/Dining/SwiftUI/DiningViewModelSwiftUI.swift
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ import Foundation
import SwiftUI
import PennMobileShared

@MainActor
class DiningViewModelSwiftUI: ObservableObject {
static let instance = DiningViewModelSwiftUI()

Expand Down
49 changes: 49 additions & 0 deletions PennMobile/General/Networking + Analytics/UserDBManager.swift
Original file line number Diff line number Diff line change
Expand Up @@ -579,3 +579,52 @@ extension UserDBManager {
}
}
}

// MARK: - Fitness
extension UserDBManager {

func saveFitnessPreferences(for rooms: [FitnessRoom]) {
let ids = rooms.map { $0.id }
saveFitnessPreferences(for: ids)
}

func saveFitnessPreferences(for ids: [Int]) {
let url = "https://pennmobile.org/api/fitness/preferences/"
let params = ["rooms": ids]

OAuth2NetworkManager.instance.getAccessToken { (token) in
let url = URL(string: url)!
var request = token != nil ? URLRequest(url: url, accessToken: token!) : URLRequest(url: url)
request.httpMethod = "POST"

request.addValue("application/json", forHTTPHeaderField: "Content-Type")
request.httpBody = try? JSON(params).rawData()

let deviceID = getDeviceID()
request.setValue(deviceID, forHTTPHeaderField: "X-Device-ID")

let task = URLSession.shared.dataTask(with: request)
task.resume()
}
}

func getFitnessPreferences(_ callback: @escaping (_ rooms: [Int]?) -> Void) {
let url = "https://pennmobile.org/api/fitness/preferences/"
OAuth2NetworkManager.instance.getAccessToken { (token) in
let url = URL(string: url)!
var request = token != nil ? URLRequest(url: url, accessToken: token!) : URLRequest(url: url)

let deviceID = getDeviceID()
request.setValue(deviceID, forHTTPHeaderField: "X-Device-ID")

let task = URLSession.shared.dataTask(with: request) { (data, _, _) in
if let data = data, let rooms = JSON(data)["rooms"].arrayObject {
callback(rooms.compactMap { $0 as? Int })
return
}
callback(nil)
}
task.resume()
}
}
}
13 changes: 13 additions & 0 deletions PennMobile/General/UserDefaults + Helpers.swift
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@ extension UserDefaults {
case controllerSettings
case sessionCount
case laundryPreferences
case fitnessPreferences
case isOnboarded
case appVersion
case cookies
Expand Down Expand Up @@ -133,6 +134,18 @@ extension UserDefaults {
}
}

// MARK: Fitness Preferences
extension UserDefaults {
func setFitnessPreferences(to ids: [Int]) {
set(ids, forKey: UserDefaultsKeys.fitnessPreferences.rawValue)
synchronize()
}

func getFitnessPreferences() -> [Int]? {
return array(forKey: UserDefaultsKeys.fitnessPreferences.rawValue) as? [Int]
}
}

// MARK: Onboarding Status
extension UserDefaults {
func setIsOnboarded(value: Bool) {
Expand Down
36 changes: 0 additions & 36 deletions PennMobile/Home/Fitness/Cells/FitnessHeaderView.swift

This file was deleted.

204 changes: 0 additions & 204 deletions PennMobile/Home/Fitness/Cells/FitnessHourCell.swift

This file was deleted.

Loading

0 comments on commit f8df9da

Please sign in to comment.