-
Notifications
You must be signed in to change notification settings - Fork 29
/
PathsFake.swift
132 lines (118 loc) · 5.08 KB
/
PathsFake.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
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
// Generated by Create API
// https://github.com/CreateAPI/CreateAPI
import Foundation
import NaiveDate
import Get
import HTTPHeaders
import URLQueryEncoder
extension Paths {
public static var fake: Fake {
Fake(path: "/fake")
}
public struct Fake {
/// Path: `/fake`
public let path: String
/// To test enum parameters
public func get(parameters: GetParameters? = nil) -> Request<Void> {
Request(path: path, method: "GET", query: parameters?.asQuery, id: "testEnumParameters")
}
public struct GetParameters {
public var enumQueryStringArray: [EnumQueryStringArray]?
public var enumQueryString: EnumQueryString?
public var enumQueryInteger: Int32?
public enum EnumQueryStringArray: String, Codable, CaseIterable {
case greaterThan = ">"
case dollar = "$"
}
public enum EnumQueryString: String, Codable, CaseIterable {
case abc = "_abc"
case minusefg = "-efg"
case xyz = "(xyz)"
}
public init(enumQueryStringArray: [EnumQueryStringArray]? = nil, enumQueryString: EnumQueryString? = nil, enumQueryInteger: Int32? = nil) {
self.enumQueryStringArray = enumQueryStringArray
self.enumQueryString = enumQueryString
self.enumQueryInteger = enumQueryInteger
}
public var asQuery: [(String, String?)] {
let encoder = URLQueryEncoder()
encoder.encode(enumQueryStringArray, forKey: "enum_query_string_array")
encoder.encode(enumQueryString, forKey: "enum_query_string")
encoder.encode(enumQueryInteger, forKey: "enum_query_integer")
return encoder.items
}
}
/// Fake endpoint for testing various parameters
public func post(_ body: PostRequest? = nil) -> Request<Void> {
Request(path: path, method: "POST", body: body.map(URLQueryEncoder.encode)?.percentEncodedQuery, id: "testEndpointParameters")
}
public struct PostRequest: Encodable {
/// None
public var integer: Int?
/// None
public var int32: Int32?
/// None
public var int64: Int64?
/// None
public var number: Double
/// None
public var float: Float?
/// None
public var double: Double
/// None
public var string: String?
/// None
public var patternWithoutDelimiter: String
/// None
public var byte: Data
/// None
public var binary: Data?
/// None
public var date: NaiveDate?
/// None
public var dateTime: Date?
/// None
public var password: String?
/// None
public var callback: String?
public init(integer: Int? = nil, int32: Int32? = nil, int64: Int64? = nil, number: Double, float: Float? = nil, double: Double, string: String? = nil, patternWithoutDelimiter: String, byte: Data, binary: Data? = nil, date: NaiveDate? = nil, dateTime: Date? = nil, password: String? = nil, callback: String? = nil) {
self.integer = integer
self.int32 = int32
self.int64 = int64
self.number = number
self.float = float
self.double = double
self.string = string
self.patternWithoutDelimiter = patternWithoutDelimiter
self.byte = byte
self.binary = binary
self.date = date
self.dateTime = dateTime
self.password = password
self.callback = callback
}
public var asQuery: [(String, String?)] {
let encoder = URLQueryEncoder()
encoder.encode(integer, forKey: "integer")
encoder.encode(int32, forKey: "int32")
encoder.encode(int64, forKey: "int64")
encoder.encode(number, forKey: "number")
encoder.encode(float, forKey: "float")
encoder.encode(double, forKey: "double")
encoder.encode(string, forKey: "string")
encoder.encode(patternWithoutDelimiter, forKey: "pattern_without_delimiter")
encoder.encode(byte, forKey: "byte")
encoder.encode(binary, forKey: "binary")
encoder.encode(date, forKey: "date")
encoder.encode(dateTime, forKey: "dateTime")
encoder.encode(password, forKey: "password")
encoder.encode(callback, forKey: "callback")
return encoder.items
}
}
/// To test "client" model
public func patch(_ body: edgecases_disable_acronyms.Client) -> Request<edgecases_disable_acronyms.Client> {
Request(path: path, method: "PATCH", body: body, id: "testClientModel")
}
}
}