updated to use robot image service

This commit is contained in:
Matt Bruce 2025-03-04 15:05:11 -06:00
parent 09bd1740de
commit 6829e5db6c
3 changed files with 89 additions and 31 deletions

View File

@ -3,4 +3,52 @@
uuid = "BCD20A5B-B7B0-4775-A851-C44BE1718BD6" uuid = "BCD20A5B-B7B0-4775-A851-C44BE1718BD6"
type = "1" type = "1"
version = "2.0"> version = "2.0">
<Breakpoints>
<BreakpointProxy
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
<BreakpointContent
uuid = "5B504375-F63C-4BB6-A417-2AF4B46C6231"
shouldBeEnabled = "Yes"
ignoreCount = "0"
continueAfterRunningActions = "No"
filePath = "EmployeeDirectory/Views/ProfileImageView.swift"
startingColumnNumber = "9223372036854775807"
endingColumnNumber = "9223372036854775807"
startingLineNumber = "17"
endingLineNumber = "17"
landmarkName = "body"
landmarkType = "24">
<Locations>
<Location
uuid = "5B504375-F63C-4BB6-A417-2AF4B46C6231 - 390c6e0a532eeb4c"
shouldBeEnabled = "Yes"
ignoreCount = "0"
continueAfterRunningActions = "No"
symbolName = "EmployeeDirectory.ProfileImageView.body.getter : some"
moduleName = "EmployeeDirectory.debug.dylib"
usesParentBreakpointCondition = "Yes"
urlString = "file:///Users/mattbruce/Documents/Projects/iPhone/_Samples/EmployeeDirectory/SwiftUI-Local/EmployeeDirectory/EmployeeDirectory/Views/ProfileImageView.swift"
startingColumnNumber = "9223372036854775807"
endingColumnNumber = "9223372036854775807"
startingLineNumber = "17"
endingLineNumber = "17">
</Location>
<Location
uuid = "5B504375-F63C-4BB6-A417-2AF4B46C6231 - 128378f9a01d5edf"
shouldBeEnabled = "Yes"
ignoreCount = "0"
continueAfterRunningActions = "No"
symbolName = "closure #1 (SwiftUI.AsyncImagePhase) -&gt; SwiftUI._ConditionalContent&lt;SwiftUI._ConditionalContent&lt;SwiftUI.Image, &lt;&lt;opaque return type of SwiftUI.View.foregroundColor(Swift.Optional&lt;SwiftUI.Color&gt;) -&gt; some&gt;&gt;.0&gt;, SwiftUI.ProgressView&lt;SwiftUI.EmptyView, SwiftUI.EmptyView&gt;&gt; in EmployeeDirectory.ProfileImageView.body.getter : some"
moduleName = "EmployeeDirectory.debug.dylib"
usesParentBreakpointCondition = "Yes"
urlString = "file:///Users/mattbruce/Documents/Projects/iPhone/_Samples/EmployeeDirectory/SwiftUI-Local/EmployeeDirectory/EmployeeDirectory/Views/ProfileImageView.swift"
startingColumnNumber = "9223372036854775807"
endingColumnNumber = "9223372036854775807"
startingLineNumber = "17"
endingLineNumber = "17">
</Location>
</Locations>
</BreakpointContent>
</BreakpointProxy>
</Breakpoints>
</Bucket> </Bucket>

View File

@ -43,34 +43,4 @@ public class EmployeeService: EmployeeServiceProtocol {
} }
} }
// Mock Service Implementation for testing & previews.
struct MockEmployeeService: EmployeeServiceProtocol {
static let sample = createUser(page: 1, index: 1)
static func createUser(page: Int?, index: Int) -> Employee {
Employee(
uuid: UUID(),
firstName: "First \(index + ((page ?? 1) - 1) * 20)",
lastName: "Last \(index + ((page ?? 1) - 1) * 20)",
phoneNumber: "555555\(1000 + index)",
emailAddress: "user\(index)@example.com",
biography: "Biography for employee \(index)",
photoURLSmall: "https://example.com/photo_small.jpg",
photoURLLarge: "https://example.com/photo_large.jpg"
)
}
func getUsers(page: Int?) async throws -> Employees {
// Simulate network delay.
try await Task.sleep(nanoseconds: 500_000_000)
// Create dummy data (20 employees per page).
let dummyEmployees: [Employee] = (0..<20).map { i in
Self.createUser(page: page, index: i)
}
// Simulate that there are more pages if page is less than 5.
let hasNext = (page ?? 1) < 5
return Employees(result: dummyEmployees, hasNextPage: hasNext)
}
}

View File

@ -0,0 +1,40 @@
//
// MockEmployeeService.swift
// EmployeeDirectory
//
// Created by Matt Bruce on 3/4/25.
//
import Foundation
// Mock Service Implementation for testing & previews.
struct MockEmployeeService: EmployeeServiceProtocol {
static let sample = createUser(page: 1, index: 1)
static func createUser(page: Int?, index: Int) -> Employee {
let id = UUID()
return Employee(
uuid: id,
firstName: "First \(index + ((page ?? 1) - 1) * 20)",
lastName: "Last \(index + ((page ?? 1) - 1) * 20)",
phoneNumber: "555555\(1000 + index)",
emailAddress: "user\(index)@example.com",
biography: "Biography for employee \(index)",
photoURLSmall: "https://robohash.org/\(id.uuidString).png?size=100x100&set=set1",
photoURLLarge: "https://robohash.org/\(id.uuidString).png?size=400x400&set=set1"
)
}
func getUsers(page: Int?) async throws -> Employees {
// Simulate network delay.
try await Task.sleep(nanoseconds: 500_000_000)
// Create dummy data (20 employees per page).
let dummyEmployees: [Employee] = (0..<20).map { i in
Self.createUser(page: page, index: i)
}
// Simulate that there are more pages if page is less than 5.
let hasNext = (page ?? 1) < 5
return Employees(result: dummyEmployees, hasNextPage: hasNext)
}
}