64 lines
1.9 KiB
Swift
64 lines
1.9 KiB
Swift
//
|
|
// PreviewData.swift
|
|
// Werkout_ios
|
|
//
|
|
// Created by Trey Tartt on 6/14/23.
|
|
//
|
|
|
|
import Foundation
|
|
|
|
class PreviewData {
|
|
private class func decodeFromBundle<T: Decodable>(_ fileName: String,
|
|
as type: T.Type) -> T? {
|
|
guard let filepath = Bundle.main.path(forResource: fileName, ofType: "json"),
|
|
let data = try? Data(NSData(contentsOfFile: filepath)) else {
|
|
return nil
|
|
}
|
|
|
|
return try? JSONDecoder().decode(T.self, from: data)
|
|
}
|
|
|
|
class func workout() -> Workout {
|
|
if let workout = decodeFromBundle("WorkoutDetail", as: Workout.self) {
|
|
return workout
|
|
}
|
|
if let firstWorkout = allWorkouts().first {
|
|
return firstWorkout
|
|
}
|
|
|
|
return Workout(id: -1, name: "Unavailable")
|
|
}
|
|
|
|
class func allWorkouts() -> [Workout] {
|
|
decodeFromBundle("AllWorkouts", as: [Workout].self) ?? []
|
|
}
|
|
|
|
class func parseExercises() -> [Exercise] {
|
|
decodeFromBundle("Exercises", as: [Exercise].self) ?? []
|
|
}
|
|
|
|
class func parseEquipment() -> [Equipment] {
|
|
decodeFromBundle("Equipment", as: [Equipment].self) ?? []
|
|
}
|
|
|
|
class func parseMuscle() -> [Muscle] {
|
|
decodeFromBundle("AllMuscles", as: [Muscle].self) ?? []
|
|
}
|
|
|
|
class func parseRegisterdUser() -> RegisteredUser {
|
|
decodeFromBundle("RegisteredUser", as: RegisteredUser.self) ??
|
|
RegisteredUser(id: -1,
|
|
firstName: nil,
|
|
lastName: nil,
|
|
image: nil,
|
|
nickName: nil,
|
|
token: nil,
|
|
email: nil,
|
|
hasNSFWToggle: nil)
|
|
}
|
|
|
|
class func parseCompletedWorkouts() -> [CompletedWorkout] {
|
|
decodeFromBundle("CompletedWorkouts", as: [CompletedWorkout].self) ?? []
|
|
}
|
|
}
|