fizzy-sdk 0.1.3 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/lib/fizzy/generated/metadata.json +1 -1
- data/lib/fizzy/generated/types.rb +47 -36
- data/lib/fizzy/version.rb +1 -1
- data/scripts/generate-types.rb +23 -6
- metadata +2 -2
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: b75e68542e34f7d54ef8d41b0d20e14e64d831ffce9972e96cabd281225b1102
|
|
4
|
+
data.tar.gz: e1760ea776afef0e4d08e6f308d3ad253e07b95c8ccbb5391417ff6c31f295f4
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: f6aefe669ad38b69ac5b7d1525c82591820383332bcf44f0e368428ab776d3b0f1f2270dbd964b56e8fd3fcec40744bcebeffd1a40e0367317986bac5f918225
|
|
7
|
+
data.tar.gz: 5986c170f8f71cfb294824590d6f9be3554d3deeef225b2f7bfdde8d8c3b1b7b69c6f174695d92fa3d71ddad19f0a4d054b44a4f6c54e995c1ceff565cabb156
|
|
@@ -31,7 +31,7 @@ module Fizzy
|
|
|
31
31
|
slug: data["slug"],
|
|
32
32
|
created_at: data["created_at"],
|
|
33
33
|
url: data["url"],
|
|
34
|
-
user: data["user"]
|
|
34
|
+
user: data["user"] && User.from_json(data["user"])
|
|
35
35
|
)
|
|
36
36
|
end
|
|
37
37
|
end
|
|
@@ -72,12 +72,12 @@ module Fizzy
|
|
|
72
72
|
action: data["action"],
|
|
73
73
|
created_at: data["created_at"],
|
|
74
74
|
description: data["description"],
|
|
75
|
-
particulars: data["particulars"],
|
|
75
|
+
particulars: data["particulars"] && ActivityParticulars.from_json(data["particulars"]),
|
|
76
76
|
url: data["url"],
|
|
77
77
|
eventable_type: data["eventable_type"],
|
|
78
|
-
eventable: data["eventable"],
|
|
79
|
-
board: data["board"],
|
|
80
|
-
creator: data["creator"]
|
|
78
|
+
eventable: data["eventable"] && ActivityEventable.from_json(data["eventable"]),
|
|
79
|
+
board: data["board"] && Board.from_json(data["board"]),
|
|
80
|
+
creator: data["creator"] && User.from_json(data["creator"])
|
|
81
81
|
)
|
|
82
82
|
end
|
|
83
83
|
end
|
|
@@ -102,16 +102,16 @@ module Fizzy
|
|
|
102
102
|
last_active_at: data["last_active_at"],
|
|
103
103
|
created_at: data["created_at"],
|
|
104
104
|
updated_at: data["updated_at"],
|
|
105
|
-
body: data["body"],
|
|
106
|
-
creator: data["creator"],
|
|
107
|
-
card: data["card"],
|
|
108
|
-
board: data["board"],
|
|
109
|
-
column: data["column"],
|
|
110
|
-
assignees: data["assignees"],
|
|
105
|
+
body: data["body"] && RichTextBody.from_json(data["body"]),
|
|
106
|
+
creator: data["creator"] && User.from_json(data["creator"]),
|
|
107
|
+
card: data["card"] && CardRef.from_json(data["card"]),
|
|
108
|
+
board: data["board"] && Board.from_json(data["board"]),
|
|
109
|
+
column: data["column"] && Column.from_json(data["column"]),
|
|
110
|
+
assignees: data["assignees"]&.map { |item| User.from_json(item) },
|
|
111
111
|
has_more_assignees: data["has_more_assignees"],
|
|
112
112
|
comments_url: data["comments_url"],
|
|
113
113
|
reactions_url: data["reactions_url"],
|
|
114
|
-
steps: data["steps"],
|
|
114
|
+
steps: data["steps"]&.map { |item| Step.from_json(item) },
|
|
115
115
|
url: data["url"]
|
|
116
116
|
)
|
|
117
117
|
end
|
|
@@ -167,7 +167,7 @@ module Fizzy
|
|
|
167
167
|
public_url: data["public_url"],
|
|
168
168
|
user_ids: data["user_ids"],
|
|
169
169
|
url: data["url"],
|
|
170
|
-
creator: data["creator"]
|
|
170
|
+
creator: data["creator"] && User.from_json(data["creator"])
|
|
171
171
|
)
|
|
172
172
|
end
|
|
173
173
|
end
|
|
@@ -198,7 +198,7 @@ module Fizzy
|
|
|
198
198
|
new(
|
|
199
199
|
board_id: data["board_id"],
|
|
200
200
|
all_access: data["all_access"],
|
|
201
|
-
users: data["users"]
|
|
201
|
+
users: data["users"]&.map { |item| BoardAccessUser.from_json(item) }
|
|
202
202
|
)
|
|
203
203
|
end
|
|
204
204
|
end
|
|
@@ -233,14 +233,14 @@ module Fizzy
|
|
|
233
233
|
last_active_at: data["last_active_at"],
|
|
234
234
|
created_at: data["created_at"],
|
|
235
235
|
url: data["url"],
|
|
236
|
-
board: data["board"],
|
|
237
|
-
column: data["column"],
|
|
238
|
-
creator: data["creator"],
|
|
239
|
-
assignees: data["assignees"],
|
|
236
|
+
board: data["board"] && Board.from_json(data["board"]),
|
|
237
|
+
column: data["column"] && Column.from_json(data["column"]),
|
|
238
|
+
creator: data["creator"] && User.from_json(data["creator"]),
|
|
239
|
+
assignees: data["assignees"]&.map { |item| User.from_json(item) },
|
|
240
240
|
has_more_assignees: data["has_more_assignees"],
|
|
241
241
|
comments_url: data["comments_url"],
|
|
242
242
|
reactions_url: data["reactions_url"],
|
|
243
|
-
steps: data["steps"]
|
|
243
|
+
steps: data["steps"]&.map { |item| Step.from_json(item) }
|
|
244
244
|
)
|
|
245
245
|
end
|
|
246
246
|
end
|
|
@@ -256,6 +256,17 @@ module Fizzy
|
|
|
256
256
|
end
|
|
257
257
|
end
|
|
258
258
|
|
|
259
|
+
# @generated
|
|
260
|
+
Color = Data.define(:name, :value) do
|
|
261
|
+
# @param data [Hash] raw JSON response
|
|
262
|
+
def self.from_json(data)
|
|
263
|
+
new(
|
|
264
|
+
name: data["name"],
|
|
265
|
+
value: data["value"]
|
|
266
|
+
)
|
|
267
|
+
end
|
|
268
|
+
end
|
|
269
|
+
|
|
259
270
|
# @generated
|
|
260
271
|
Column = Data.define(:id, :name, :color, :created_at, :cards_url) do
|
|
261
272
|
# @param data [Hash] raw JSON response
|
|
@@ -263,7 +274,7 @@ module Fizzy
|
|
|
263
274
|
new(
|
|
264
275
|
id: data["id"],
|
|
265
276
|
name: data["name"],
|
|
266
|
-
color: data["color"],
|
|
277
|
+
color: data["color"] && Color.from_json(data["color"]),
|
|
267
278
|
created_at: data["created_at"],
|
|
268
279
|
cards_url: data["cards_url"]
|
|
269
280
|
)
|
|
@@ -278,9 +289,9 @@ module Fizzy
|
|
|
278
289
|
id: data["id"],
|
|
279
290
|
created_at: data["created_at"],
|
|
280
291
|
updated_at: data["updated_at"],
|
|
281
|
-
body: data["body"],
|
|
282
|
-
creator: data["creator"],
|
|
283
|
-
card: data["card"],
|
|
292
|
+
body: data["body"] && RichTextBody.from_json(data["body"]),
|
|
293
|
+
creator: data["creator"] && User.from_json(data["creator"]),
|
|
294
|
+
card: data["card"] && CardRef.from_json(data["card"]),
|
|
284
295
|
reactions_url: data["reactions_url"],
|
|
285
296
|
url: data["url"]
|
|
286
297
|
)
|
|
@@ -512,7 +523,7 @@ module Fizzy
|
|
|
512
523
|
content_type: data["content_type"],
|
|
513
524
|
byte_size: data["byte_size"],
|
|
514
525
|
checksum: data["checksum"],
|
|
515
|
-
direct_upload: data["direct_upload"]
|
|
526
|
+
direct_upload: data["direct_upload"] && DirectUploadMetadata.from_json(data["direct_upload"])
|
|
516
527
|
)
|
|
517
528
|
end
|
|
518
529
|
end
|
|
@@ -534,7 +545,7 @@ module Fizzy
|
|
|
534
545
|
def self.from_json(data)
|
|
535
546
|
new(
|
|
536
547
|
url: data["url"],
|
|
537
|
-
headers: data["headers"]
|
|
548
|
+
headers: data["headers"] && DirectUploadHeaders.from_json(data["headers"])
|
|
538
549
|
)
|
|
539
550
|
end
|
|
540
551
|
end
|
|
@@ -599,7 +610,7 @@ module Fizzy
|
|
|
599
610
|
id: data["id"],
|
|
600
611
|
name: data["name"],
|
|
601
612
|
email_address: data["email_address"],
|
|
602
|
-
accounts: data["accounts"]
|
|
613
|
+
accounts: data["accounts"]&.map { |item| Account.from_json(item) }
|
|
603
614
|
)
|
|
604
615
|
end
|
|
605
616
|
end
|
|
@@ -725,8 +736,8 @@ module Fizzy
|
|
|
725
736
|
source_type: data["source_type"],
|
|
726
737
|
title: data["title"],
|
|
727
738
|
body: data["body"],
|
|
728
|
-
creator: data["creator"],
|
|
729
|
-
card: data["card"],
|
|
739
|
+
creator: data["creator"] && User.from_json(data["creator"]),
|
|
740
|
+
card: data["card"] && NotificationCard.from_json(data["card"]),
|
|
730
741
|
url: data["url"]
|
|
731
742
|
)
|
|
732
743
|
end
|
|
@@ -745,7 +756,7 @@ module Fizzy
|
|
|
745
756
|
closed: data["closed"],
|
|
746
757
|
postponed: data["postponed"],
|
|
747
758
|
url: data["url"],
|
|
748
|
-
column: data["column"]
|
|
759
|
+
column: data["column"] && Column.from_json(data["column"])
|
|
749
760
|
)
|
|
750
761
|
end
|
|
751
762
|
end
|
|
@@ -787,7 +798,7 @@ module Fizzy
|
|
|
787
798
|
new(
|
|
788
799
|
id: data["id"],
|
|
789
800
|
content: data["content"],
|
|
790
|
-
reacter: data["reacter"],
|
|
801
|
+
reacter: data["reacter"] && User.from_json(data["reacter"]),
|
|
791
802
|
url: data["url"]
|
|
792
803
|
)
|
|
793
804
|
end
|
|
@@ -1132,7 +1143,7 @@ module Fizzy
|
|
|
1132
1143
|
active: data["active"],
|
|
1133
1144
|
created_at: data["created_at"],
|
|
1134
1145
|
updated_at: data["updated_at"],
|
|
1135
|
-
board: data["board"]
|
|
1146
|
+
board: data["board"] && Board.from_json(data["board"])
|
|
1136
1147
|
)
|
|
1137
1148
|
end
|
|
1138
1149
|
end
|
|
@@ -1146,9 +1157,9 @@ module Fizzy
|
|
|
1146
1157
|
state: data["state"],
|
|
1147
1158
|
created_at: data["created_at"],
|
|
1148
1159
|
updated_at: data["updated_at"],
|
|
1149
|
-
request: data["request"],
|
|
1150
|
-
response: data["response"],
|
|
1151
|
-
event: data["event"]
|
|
1160
|
+
request: data["request"] && WebhookDeliveryRequest.from_json(data["request"]),
|
|
1161
|
+
response: data["response"] && WebhookDeliveryResponse.from_json(data["response"]),
|
|
1162
|
+
event: data["event"] && WebhookDeliveryEvent.from_json(data["event"])
|
|
1152
1163
|
)
|
|
1153
1164
|
end
|
|
1154
1165
|
end
|
|
@@ -1161,8 +1172,8 @@ module Fizzy
|
|
|
1161
1172
|
id: data["id"],
|
|
1162
1173
|
action: data["action"],
|
|
1163
1174
|
created_at: data["created_at"],
|
|
1164
|
-
creator: data["creator"],
|
|
1165
|
-
eventable: data["eventable"]
|
|
1175
|
+
creator: data["creator"] && WebhookDeliveryEventCreator.from_json(data["creator"]),
|
|
1176
|
+
eventable: data["eventable"] && WebhookDeliveryEventEventable.from_json(data["eventable"])
|
|
1166
1177
|
)
|
|
1167
1178
|
end
|
|
1168
1179
|
end
|
data/lib/fizzy/version.rb
CHANGED
data/scripts/generate-types.rb
CHANGED
|
@@ -74,7 +74,7 @@ class TypeGenerator
|
|
|
74
74
|
ruby_type = schema_to_ruby_type(field_schema)
|
|
75
75
|
required = required_fields.include?(field_name)
|
|
76
76
|
{ name: ruby_name, json_name: field_name, type: ruby_type, required: required, \
|
|
77
|
-
description: field_schema["description"] }
|
|
77
|
+
description: field_schema["description"], schema: field_schema }
|
|
78
78
|
end
|
|
79
79
|
|
|
80
80
|
if fields.empty?
|
|
@@ -92,7 +92,8 @@ class TypeGenerator
|
|
|
92
92
|
fields.each_with_index do |f, i|
|
|
93
93
|
comma = i < fields.length - 1 ? "," : ""
|
|
94
94
|
accessor = "data[\"#{f[:json_name]}\"]"
|
|
95
|
-
|
|
95
|
+
value = json_value_expression(f[:schema], accessor)
|
|
96
|
+
lines << " #{f[:name]}: #{value}#{comma}"
|
|
96
97
|
end
|
|
97
98
|
|
|
98
99
|
lines << " )"
|
|
@@ -102,13 +103,29 @@ class TypeGenerator
|
|
|
102
103
|
lines
|
|
103
104
|
end
|
|
104
105
|
|
|
106
|
+
def json_value_expression(schema, accessor)
|
|
107
|
+
ref_name = schema_ref_name(schema)
|
|
108
|
+
return "#{accessor} && #{ref_name}.from_json(#{accessor})" if ref_name
|
|
109
|
+
|
|
110
|
+
if schema["type"] == "array"
|
|
111
|
+
item_ref_name = schema_ref_name(schema["items"])
|
|
112
|
+
return "#{accessor}&.map { |item| #{item_ref_name}.from_json(item) }" if item_ref_name
|
|
113
|
+
end
|
|
114
|
+
|
|
115
|
+
accessor
|
|
116
|
+
end
|
|
117
|
+
|
|
118
|
+
def schema_ref_name(schema)
|
|
119
|
+
return nil unless schema && schema["$ref"]
|
|
120
|
+
|
|
121
|
+
schema["$ref"].split("/").last
|
|
122
|
+
end
|
|
123
|
+
|
|
105
124
|
def schema_to_ruby_type(schema)
|
|
106
125
|
return "Object" unless schema
|
|
107
126
|
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
return ref_name
|
|
111
|
-
end
|
|
127
|
+
ref_name = schema_ref_name(schema)
|
|
128
|
+
return ref_name if ref_name
|
|
112
129
|
|
|
113
130
|
case schema["type"]
|
|
114
131
|
when "integer" then "Integer"
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: fizzy-sdk
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.
|
|
4
|
+
version: 0.2.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Basecamp
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2026-04-
|
|
11
|
+
date: 2026-04-30 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: faraday
|