From 59aa9f72edd10ac016c8eef6fbac2e1a7753f90a Mon Sep 17 00:00:00 2001 From: Jamil Date: Wed, 22 May 2024 11:13:08 -0700 Subject: [PATCH] refactor(apple): Decode all expected JSON fields from onUpdateResources (#5088) We'll need these for display. Refs #3514 --- .../Sources/FirezoneKit/Models/Resource.swift | 22 +++++++++++++++++-- .../Sources/FirezoneKit/Models/Site.swift | 18 +++++++++++++++ 2 files changed, 38 insertions(+), 2 deletions(-) create mode 100644 swift/apple/FirezoneKit/Sources/FirezoneKit/Models/Site.swift diff --git a/swift/apple/FirezoneKit/Sources/FirezoneKit/Models/Resource.swift b/swift/apple/FirezoneKit/Sources/FirezoneKit/Models/Resource.swift index c3577052f..713984b26 100644 --- a/swift/apple/FirezoneKit/Sources/FirezoneKit/Models/Resource.swift +++ b/swift/apple/FirezoneKit/Sources/FirezoneKit/Models/Resource.swift @@ -12,12 +12,30 @@ public struct Resource: Decodable, Identifiable { public let id: String public var name: String public var address: String - public var type: String + public var addressDescription: String? + public var status: ResourceStatus + public var sites: [Site] + public var type: ResourceType - public init(id: String, name: String, address: String, type: String) { + public init(id: String, name: String, address: String, addressDescription: String?, status: ResourceStatus, sites: [Site], type: ResourceType) { self.id = id self.name = name self.address = address + self.addressDescription = addressDescription + self.status = status + self.sites = sites self.type = type } } + +public enum ResourceStatus: String, Decodable { + case offline = "Offline" + case online = "Online" + case unknown = "Unknown" +} + +public enum ResourceType: String, Decodable { + case dns = "dns" + case cidr = "cidr" + case ip = "ip" +} diff --git a/swift/apple/FirezoneKit/Sources/FirezoneKit/Models/Site.swift b/swift/apple/FirezoneKit/Sources/FirezoneKit/Models/Site.swift new file mode 100644 index 000000000..e280f7e9c --- /dev/null +++ b/swift/apple/FirezoneKit/Sources/FirezoneKit/Models/Site.swift @@ -0,0 +1,18 @@ +// +// Site.swift +// +// +// Created by Jamil Bou Kheir on 5/21/24. +// + +import Foundation + +public struct Site: Decodable, Identifiable { + public let id: String + public var name: String + + public init(id: String, name: String) { + self.id = id + self.name = name + } +}