From d50c9079a83a276501e24d13a249273399645375 Mon Sep 17 00:00:00 2001 From: gibbyb Date: Thu, 25 Jul 2024 22:28:40 -0500 Subject: [PATCH] Update API names to be a bit more specific. --- Tech Tracker.xcodeproj/project.pbxproj | 4 ++-- .../UserInterfaceState.xcuserstate | Bin 41651 -> 41687 bytes Tech Tracker/ContentView.swift | 22 +++++++++--------- 3 files changed, 13 insertions(+), 13 deletions(-) diff --git a/Tech Tracker.xcodeproj/project.pbxproj b/Tech Tracker.xcodeproj/project.pbxproj index 371fa9f..4b9a84e 100644 --- a/Tech Tracker.xcodeproj/project.pbxproj +++ b/Tech Tracker.xcodeproj/project.pbxproj @@ -452,7 +452,7 @@ "$(inherited)", "@executable_path/Frameworks", ); - MARKETING_VERSION = 0.3.1; + MARKETING_VERSION = 0.3.2; PRODUCT_BUNDLE_IDENTIFIER = "GibbyB.Tech-Tracker"; PRODUCT_NAME = "$(TARGET_NAME)"; SWIFT_EMIT_LOC_STRINGS = YES; @@ -487,7 +487,7 @@ "$(inherited)", "@executable_path/Frameworks", ); - MARKETING_VERSION = 0.3.1; + MARKETING_VERSION = 0.3.2; PRODUCT_BUNDLE_IDENTIFIER = "GibbyB.Tech-Tracker"; PRODUCT_NAME = "$(TARGET_NAME)"; SWIFT_EMIT_LOC_STRINGS = YES; diff --git a/Tech Tracker.xcodeproj/project.xcworkspace/xcuserdata/gib.xcuserdatad/UserInterfaceState.xcuserstate b/Tech Tracker.xcodeproj/project.xcworkspace/xcuserdata/gib.xcuserdatad/UserInterfaceState.xcuserstate index df15641aa8d1924b669e5a0bdf1166adc696434c..33596353b40290f56b93db2b70e1c6b3848c5bc6 100644 GIT binary patch delta 17397 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 X@2NNb+O6hCq7vb+aliL7{rmp|DStvB delta 17423 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 diff --git a/Tech Tracker/ContentView.swift b/Tech Tracker/ContentView.swift index 936929d..3852dbf 100644 --- a/Tech Tracker/ContentView.swift +++ b/Tech Tracker/ContentView.swift @@ -12,12 +12,12 @@ import Combine struct Technician: Identifiable, Codable { let name: String let status: String - let time: Date + let updatedAt: Date var id: String { name } // Computed property for Identifiable conformance enum CodingKeys: String, CodingKey { - case name, status, time + case name, status, updatedAt } } @@ -37,11 +37,11 @@ struct HistoryResponse: Decodable { struct TechnicianHistory: Identifiable, Codable { let name: String let status: String - let time: Date + let updatedAt: Date var id: UUID { UUID() } enum CodingKeys: String, CodingKey { - case name, status, time + case name, status, updatedAt } } @@ -248,7 +248,7 @@ class TechnicianViewModel: ObservableObject { // Fetch technicians function for Technicians API func fetchTechnicians() { - let urlString = "https://techtracker.gibbyb.com/api/technicians?apikey=" + apiKey + let urlString = "https://techtracker.gibbyb.com/api/get_technicians?apikey=" + apiKey guard let url = URL(string: urlString) else { return } URLSession.shared.dataTask(with: url) { [weak self] data, response, error in @@ -284,7 +284,7 @@ class TechnicianViewModel: ObservableObject { // Update Technician Status function for the Update API func updateTechnicianStatus(name: String, newStatus: String) { - let urlString = "https://techtracker.gibbyb.com/api/update_technicians?apikey=" + apiKey + let urlString = "https://techtracker.gibbyb.com/api/update_status_by_name?apikey=" + apiKey guard let url = URL(string: urlString) else { return } let updateData = [TechnicianUpdate(name: name, status: newStatus)] @@ -328,7 +328,7 @@ class TechnicianViewModel: ObservableObject { // Fetch Technician History Function for the History API. Very similar to Technician API // but with some added metadata func fetchTechnicianHistory(page: Int = 1) { - let urlString = "https://techtracker.gibbyb.com/api/history?apikey=" + apiKey + "&page=\(page)" + let urlString = "https://techtracker.gibbyb.com/api/get_paginated_history?apikey=" + apiKey + "&page=\(page)" guard let url = URL(string: urlString) else { return } URLSession.shared.dataTask(with: url) { [weak self] data, response, error in @@ -412,8 +412,8 @@ struct ContentView: View { Spacer() VStack(alignment: .trailing, spacing: 5) { VStack { - Text(technician.time, format: .dateTime.hour().minute()).font(.system(size: 20)) - Text(technician.time, format: .dateTime.day().month()).font(.system(size: 18)) + Text(technician.updatedAt, format: .dateTime.hour().minute()).font(.system(size: 20)) + Text(technician.updatedAt, format: .dateTime.day().month()).font(.system(size: 18)) } } } @@ -449,8 +449,8 @@ struct ContentView: View { } Spacer() VStack(alignment: .trailing, spacing: 5) { - Text(history.time, format: .dateTime.hour().minute()).font(.system(size: 20)) - Text(history.time, format: .dateTime.day().month()).font(.system(size: 18)) + Text(history.updatedAt, format: .dateTime.hour().minute()).font(.system(size: 20)) + Text(history.updatedAt, format: .dateTime.day().month()).font(.system(size: 18)) } } }