// // PreviewData.swift // Werkout_ios // // Created by Trey Tartt on 6/14/23. // import Foundation class PreviewData { private class func decodeFromBundle(_ 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) ?? [] } }