This repository was archived by the owner on Oct 8, 2024. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 71
/
Copy pathDecodeSchedule.swift
80 lines (71 loc) · 2.58 KB
/
DecodeSchedule.swift
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
//
// DecodeSchedule.swift
// RsyncOSX
//
// Created by Thomas Evensen on 18/10/2020.
// Copyright © 2020 Thomas Evensen. All rights reserved.
//
// Model file generated using JSONExport: https://github.com/Ahmed-Ali/JSONExport
import Foundation
struct Logrecord: Codable, Hashable {
var dateExecuted: String?
var resultExecuted: String?
enum CodingKeys: String, CodingKey {
case dateExecuted
case resultExecuted
}
init(from decoder: Decoder) throws {
let values = try decoder.container(keyedBy: CodingKeys.self)
dateExecuted = try values.decodeIfPresent(String.self, forKey: .dateExecuted)
resultExecuted = try values.decodeIfPresent(String.self, forKey: .resultExecuted)
}
// This init is used in WriteConfigurationJSON
init() {
dateExecuted = nil
resultExecuted = nil
}
}
struct DecodeSchedule: Codable {
let dateStart: String?
let dateStop: String?
let hiddenID: Int?
var logrecords: [Logrecord]?
let offsiteserver: String?
let schedule: String?
let profilename: String?
enum CodingKeys: String, CodingKey {
case dateStart
case dateStop
case hiddenID
case logrecords
case offsiteserver
case schedule
case profilename
}
init(from decoder: Decoder) throws {
let values = try decoder.container(keyedBy: CodingKeys.self)
dateStart = try values.decodeIfPresent(String.self, forKey: .dateStart)
dateStop = try values.decodeIfPresent(String.self, forKey: .dateStop)
hiddenID = try values.decodeIfPresent(Int.self, forKey: .hiddenID)
logrecords = try values.decodeIfPresent([Logrecord].self, forKey: .logrecords)
offsiteserver = try values.decodeIfPresent(String.self, forKey: .offsiteserver)
schedule = try values.decodeIfPresent(String.self, forKey: .schedule)
profilename = try values.decodeIfPresent(String.self, forKey: .profilename)
}
// This init is used in WriteScheduleJSON
init(_ data: ConfigurationSchedule) {
dateStart = data.dateStart
dateStop = data.dateStop
hiddenID = data.hiddenID
offsiteserver = data.offsiteserver
schedule = data.schedule
profilename = data.profilename
for i in 0 ..< (data.logrecords?.count ?? 0) {
if i == 0 { logrecords = [Logrecord]() }
var log = Logrecord()
log.dateExecuted = data.logrecords?[i].dateExecuted
log.resultExecuted = data.logrecords?[i].resultExecuted
logrecords?.append(log)
}
}
}