wixanswers 0.0.4 → 0.0.5
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/CHANGELOG.md +12 -0
- data/lib/wixanswers.rb +3 -2
- data/lib/wixanswers/enumerations.rb +427 -0
- data/lib/wixanswers/{rest/exceptions.rb → exceptions.rb} +0 -0
- data/lib/wixanswers/models/line/phone_number.rb +12 -0
- data/lib/wixanswers/rest/api.rb +5 -2
- data/lib/wixanswers/rest/client.rb +26 -0
- data/lib/wixanswers/rest/request.rb +47 -0
- data/lib/wixanswers/rest/ticket.rb +162 -0
- data/lib/wixanswers/version.rb +1 -1
- metadata +8 -4
- data/lib/wixanswers/rest/enumerations.rb +0 -95
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 21d43335f8bcfa2fb50d395f15d2f91ebcc8dabd8232bd9c16e6aa6d1cd7d1b0
|
4
|
+
data.tar.gz: f007d21c8e72e016b8ab1fe1d05a94b6ea0f3773eee0fd75f805f45b4538808e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 79a990f97a8b3af128ac72a3d2fa372813a3eddeba6341857a6912134621877303939cd3159aac2419df1a49dcac5ec1f479e7f63621fd2aa39b95a5153aae5e
|
7
|
+
data.tar.gz: 447cbf3731bd905b5132054f5632cf6f311c2c5ca7598ae21985d0e5931c8b5c55167a34b050ec0a2bcb8f7e9a47badfb547f88efe85bc43084ebf08ee3fa5f0
|
data/CHANGELOG.md
CHANGED
@@ -1,3 +1,15 @@
|
|
1
|
+
0.0.6 (In Progress)
|
2
|
+
------
|
3
|
+
* added PhoneNumber object
|
4
|
+
* added API and Request modules,
|
5
|
+
* added Client class
|
6
|
+
* added support for ticket 'Add', 'Get'
|
7
|
+
|
8
|
+
0.0.5 (Stable)
|
9
|
+
------
|
10
|
+
* added all Enumeration objects
|
11
|
+
* added Enumeration#title method
|
12
|
+
|
1
13
|
0.0.3
|
2
14
|
------
|
3
15
|
* support email-based tickets
|
data/lib/wixanswers.rb
CHANGED
@@ -0,0 +1,427 @@
|
|
1
|
+
|
2
|
+
|
3
|
+
module WixAnswers
|
4
|
+
module Enumerations
|
5
|
+
class Enumeration
|
6
|
+
def self.values
|
7
|
+
Set.new(constants.map {|const| const_get(const) })
|
8
|
+
end
|
9
|
+
|
10
|
+
def self.valid?(value)
|
11
|
+
values.include?(value)
|
12
|
+
end
|
13
|
+
|
14
|
+
def self.validate!(value)
|
15
|
+
raise Exceptions::UnsupportedType.new(self.name, value) unless self.valid?(value)
|
16
|
+
end
|
17
|
+
|
18
|
+
def self.by_values
|
19
|
+
constants.map {|const| [const_get(const), const] }.to_h
|
20
|
+
end
|
21
|
+
|
22
|
+
def self.title(value)
|
23
|
+
const_name = self.by_values[value]
|
24
|
+
return '' if const_name.nil?
|
25
|
+
|
26
|
+
const_name.to_s.capitalize.gsub(/\_/, ' ')
|
27
|
+
end
|
28
|
+
end
|
29
|
+
|
30
|
+
class WebhookType < Enumeration
|
31
|
+
TICKET_CREATED ||= 2
|
32
|
+
TICKET_STATUS_CHANGED ||= 8
|
33
|
+
end
|
34
|
+
|
35
|
+
# https://help.wixanswers.com/kb/en/article/api-enumerations#agent-channel-1
|
36
|
+
class AgentChannel < Enumeration
|
37
|
+
NONE ||= 0
|
38
|
+
TICKET ||= 10
|
39
|
+
CALL_CENTER ||= 20
|
40
|
+
CHAT ||= 30
|
41
|
+
end
|
42
|
+
|
43
|
+
# https://help.wixanswers.com/kb/en/article/api-enumerations#agent-status
|
44
|
+
class AgentStatus < Enumeration
|
45
|
+
ONLINE ||= 10
|
46
|
+
IN_WORK ||= 40
|
47
|
+
BUSY ||= 60
|
48
|
+
OFFLINE ||= 100
|
49
|
+
end
|
50
|
+
|
51
|
+
# https://help.wixanswers.com/kb/en/article/api-enumerations#article-resolution
|
52
|
+
class ArticleResolution < Enumeration
|
53
|
+
COLLECTING_VOTES ||= 110
|
54
|
+
IN_DEVELOPMENT ||= 112
|
55
|
+
COMING_SOON ||= 114
|
56
|
+
RELEASED ||= 116
|
57
|
+
INVESTIGATING ||= 120
|
58
|
+
WORKING_ON_IT ||= 122
|
59
|
+
RESOLVED ||= 124
|
60
|
+
THIRD_PARTY_BUG ||= 126
|
61
|
+
end
|
62
|
+
|
63
|
+
# https://help.wixanswers.com/kb/en/article/api-enumerations#article-status
|
64
|
+
class ArticleStatus < Enumeration
|
65
|
+
DRAFT ||= 0
|
66
|
+
PUBLISHED ||= 10
|
67
|
+
DELETED ||= 30
|
68
|
+
end
|
69
|
+
|
70
|
+
# https://help.wixanswers.com/kb/en/article/api-enumerations#article-type
|
71
|
+
class ArticleType < Enumeration
|
72
|
+
ARTICLE ||= 100
|
73
|
+
FEATURE_REQUEST ||= 110
|
74
|
+
KNOWN_ISSUE ||= 120
|
75
|
+
VIDEO ||= 130
|
76
|
+
end
|
77
|
+
|
78
|
+
# https://help.wixanswers.com/kb/en/article/api-enumerations#article-version-publication-status
|
79
|
+
class ArticleVersionPublicationStatus < Enumeration
|
80
|
+
DRAFT ||= 0
|
81
|
+
PUBLISHED ||= 1
|
82
|
+
end
|
83
|
+
|
84
|
+
class AttachmentStatus < Enumeration
|
85
|
+
FAILED ||= 1
|
86
|
+
INVALID_EXTENSION ||= 2
|
87
|
+
MAX_FILE_SIZE_EXCEEDED ||= 3
|
88
|
+
OK ||= 200
|
89
|
+
end
|
90
|
+
|
91
|
+
# https://help.wixanswers.com/kb/en/article/api-enumerations#call-participant-status
|
92
|
+
class CallParticipantStatus < Enumeration
|
93
|
+
CONNECTING ||= 10
|
94
|
+
TALKING ||= 20
|
95
|
+
ON_HOLD ||= 30
|
96
|
+
MUTED ||= 40
|
97
|
+
LEFT ||= 50
|
98
|
+
DECLINED ||= 60
|
99
|
+
NO_ANSWER ||= 70
|
100
|
+
CANCELLED ||= 80
|
101
|
+
INVITED ||= 90
|
102
|
+
FAILED ||= 100
|
103
|
+
end
|
104
|
+
|
105
|
+
# https://help.wixanswers.com/kb/en/article/api-enumerations#call-priority
|
106
|
+
class CallPriority < Enumeration
|
107
|
+
NORMAL ||= 0
|
108
|
+
HIGH ||= 1
|
109
|
+
end
|
110
|
+
|
111
|
+
# https://help.wixanswers.com/kb/en/article/api-enumerations#call-status
|
112
|
+
class CallStatus < Enumeration
|
113
|
+
IN_IVR ||= 10
|
114
|
+
IN_QUEUE ||= 20
|
115
|
+
RESERVED ||= 30
|
116
|
+
INITIATED ||= 40
|
117
|
+
RINGING ||= 50
|
118
|
+
IN_PROGRESS ||= 60
|
119
|
+
COMPLETED ||= 70
|
120
|
+
COMPLETED_IN_IVR ||= 71
|
121
|
+
FORWARDED ||= 72
|
122
|
+
TRANSFERRED_TO_NUMBER ||= 73
|
123
|
+
COMPLETED_VOICEMAIL ||= 74
|
124
|
+
PENDING_VOICEMAIL ||= 75
|
125
|
+
BUSY ||= 80
|
126
|
+
FAILED ||= 90
|
127
|
+
NO_ANSWER ||= 100
|
128
|
+
CANCELLED ||= 110
|
129
|
+
EXPIRED ||= 120
|
130
|
+
TRANSFERRED_TO_QUEUE ||= 130
|
131
|
+
ABANDONED ||= 140
|
132
|
+
HUNG_UP_IN_QUEUE ||= 150
|
133
|
+
HUNG_UP_IN_IVR ||= 160
|
134
|
+
TRANSFERRED_TO_IVR ||= 170
|
135
|
+
end
|
136
|
+
|
137
|
+
# https://help.wixanswers.com/kb/en/article/api-enumerations#call-type
|
138
|
+
class CallType < Enumeration
|
139
|
+
INBOUND ||= 10
|
140
|
+
OUTBOUND ||= 20
|
141
|
+
CALLBACK ||= 30
|
142
|
+
end
|
143
|
+
|
144
|
+
# https://help.wixanswers.com/kb/en/article/api-enumerations#channel
|
145
|
+
class Channel < Enumeration
|
146
|
+
WEB ||= 100
|
147
|
+
EMAIL ||= 110
|
148
|
+
PHONE_CALLBACK ||= 120
|
149
|
+
PHONE_OUTBOUND ||= 121
|
150
|
+
PHONE_INBOUND ||= 122
|
151
|
+
BY_AGENT ||= 130
|
152
|
+
FACEBOOK ||= 140
|
153
|
+
WHATSAPP ||= 150
|
154
|
+
CHAT ||= 160
|
155
|
+
WIDGET ||= 170
|
156
|
+
API ||= 180
|
157
|
+
SMS ||= 190
|
158
|
+
end
|
159
|
+
|
160
|
+
# https://help.wixanswers.com/kb/en/article/api-enumerations#chat-message-status
|
161
|
+
class ChatMessageStatus < Enumeration
|
162
|
+
QUEUED ||= 10
|
163
|
+
FAILED ||= 20
|
164
|
+
SENT ||= 30
|
165
|
+
DELIVERED ||= 40
|
166
|
+
FAILED ||= 50
|
167
|
+
end
|
168
|
+
|
169
|
+
# https://help.wixanswers.com/kb/en/article/api-enumerations#chat-message-type
|
170
|
+
class ChatMessageType < Enumeration
|
171
|
+
USER ||= 100
|
172
|
+
AGENT ||= 110
|
173
|
+
end
|
174
|
+
|
175
|
+
# https://help.wixanswers.com/kb/en/article/api-enumerations#chat-participant-status
|
176
|
+
class ChatParticipantStatus < Enumeration
|
177
|
+
TALKING ||= 10
|
178
|
+
LEFT ||= 20
|
179
|
+
end
|
180
|
+
|
181
|
+
# https://help.wixanswers.com/kb/en/article/api-enumerations#chat-status
|
182
|
+
class ChatStatus < Enumeration
|
183
|
+
WAITING ||= 0
|
184
|
+
ACTIVE ||= 1
|
185
|
+
COMPLETED ||= 2
|
186
|
+
end
|
187
|
+
|
188
|
+
# https://help.wixanswers.com/kb/en/article/api-enumerations#content-task-priority
|
189
|
+
class ContentTaskPriority < Enumeration
|
190
|
+
LOW ||= 10
|
191
|
+
NORMAL ||= 20
|
192
|
+
HIGH ||= 30
|
193
|
+
end
|
194
|
+
|
195
|
+
# https://help.wixanswers.com/kb/en/article/api-enumerations#content-task-status
|
196
|
+
class ContentTaskStatus < Enumeration
|
197
|
+
OPEN ||= 10
|
198
|
+
COMPLETED ||= 20
|
199
|
+
end
|
200
|
+
|
201
|
+
# https://help.wixanswers.com/kb/en/article/api-enumerations#content-task-type
|
202
|
+
class ContentTaskType < Enumeration
|
203
|
+
WRITE ||= 10
|
204
|
+
UPDATE ||= 20
|
205
|
+
REVIEW ||= 30
|
206
|
+
TRANSLATE ||= 40
|
207
|
+
end
|
208
|
+
|
209
|
+
# https://help.wixanswers.com/kb/en/article/api-enumerations#counter-type
|
210
|
+
class CounterType < Enumeration
|
211
|
+
FOLLOWER ||= 10
|
212
|
+
VIEW ||= 20
|
213
|
+
VOTE ||= 30
|
214
|
+
|
215
|
+
UNHELPFUL ||= 300
|
216
|
+
RATING_1 ||= 300
|
217
|
+
|
218
|
+
HELPFUL ||= 304
|
219
|
+
RATING_5 ||= 304
|
220
|
+
end
|
221
|
+
|
222
|
+
# https://help.wixanswers.com/kb/en/article/api-enumerations#custom-field-type
|
223
|
+
class ContentTaskType < Enumeration
|
224
|
+
TEXT ||= 1
|
225
|
+
MULTI_LINE_TEXT ||= 2
|
226
|
+
SINGLE_SELECT ||= 3
|
227
|
+
MULTI_SELECT ||= 4
|
228
|
+
NUMBER ||= 5
|
229
|
+
CHECKBOX ||= 6
|
230
|
+
DATE_PICKER ||= 7
|
231
|
+
end
|
232
|
+
|
233
|
+
# https://help.wixanswers.com/kb/en/article/api-enumerations#email-status
|
234
|
+
class EmailStatus < Enumeration
|
235
|
+
NOT_VERIFIED ||= 0
|
236
|
+
VERIFIED ||= 1
|
237
|
+
INVALIDATED ||= 99
|
238
|
+
end
|
239
|
+
|
240
|
+
# https://help.wixanswers.com/kb/en/article/api-enumerations#event-type
|
241
|
+
class EventType < Enumeration
|
242
|
+
ARTICLE_ADDED ||= 650
|
243
|
+
ARTICLE_UPDATED ||= 651
|
244
|
+
ARTICLE_CONTENT_UPDATED ||= 652
|
245
|
+
ARTICLE_DELETED ||= 653
|
246
|
+
ARTICLE_RESTORED ||= 654
|
247
|
+
ARTICLE_MERGED ||= 655
|
248
|
+
ARTICLE_UNPUBLISHED ||= 656
|
249
|
+
ARTICLE_PUBLISHED ||= 663
|
250
|
+
ARTICLE_LABELS_UPDATED ||= 665
|
251
|
+
ARTICLE_PHRASES_UPDATED ||= 666
|
252
|
+
ARTICLE_VISIBILITY_CHANGED ||= 667
|
253
|
+
TICKET_UPDATED ||= 700
|
254
|
+
TICKET_CONTENT_UPDATED ||= 701
|
255
|
+
TICKET_DELETED ||= 702
|
256
|
+
TICKET_STATUS_CHANGED ||= 703
|
257
|
+
REPLY_DELETED ||= 705
|
258
|
+
OUTBOUND_TICKET_ADDED ||= 707
|
259
|
+
REPLY_CONTENT_UPDATED ||= 709
|
260
|
+
REPLY_MOVED ||= 710
|
261
|
+
TICKET_CREATED_FROM_REPLLY ||= 711
|
262
|
+
TICKET_LABELS_UPDATED ||= 712
|
263
|
+
SCHEDULED_CALL_CANCELLED ||= 713
|
264
|
+
REPLY_MADE_INTO_TICKET ||= 714
|
265
|
+
TICKET_LOCALE_CHANGED ||= 715
|
266
|
+
TICKET_SET_PRIVATE ||= 716
|
267
|
+
TICKET_ARTICLE_RELATIONS_CHANGED ||= 717
|
268
|
+
TICKET_PRIORITY_CHANGED ||= 718
|
269
|
+
TICKET_ASSIGNED ||= 722
|
270
|
+
TICKET_UNASSIGNED ||= 723
|
271
|
+
TICKET_MARKED_AS_SPAM ||= 724
|
272
|
+
REPLY_MOVED_TO_TICKET ||= 725
|
273
|
+
REPLY_MOVED_FROM_TICKET ||= 726
|
274
|
+
INTERNAL_NOTE_DELETED ||= 727
|
275
|
+
TICKET_CUSTOM_FIELDS_UPDATED ||= 728
|
276
|
+
AGENT_REPLY_ADDED ||= 729
|
277
|
+
TICKET_ATTACHMENTS_REMOVED ||= 730
|
278
|
+
REPLY_ATTACHMENTS_REMOVED ||= 731
|
279
|
+
RULE_FAILED ||= 732
|
280
|
+
TICKET_TRANSFERRED ||= 733
|
281
|
+
EMAIL_SENT||= 734
|
282
|
+
REPLY_UPDATED_ON_TICKET_TRANSFERRED ||= 735
|
283
|
+
TICKET_AUTHENTICATED ||= 736
|
284
|
+
SLA_POLICY_ADDED_TO_TICKET ||= 737
|
285
|
+
MACRO_APPLIED_ON_TICKET ||= 738
|
286
|
+
AGENT_INERNAL_REPLY_ADDED ||= 739
|
287
|
+
TICKET_AUTOMATICALLY_ASSIGNED_TO_ACCOUNT_MANAGER ||= 740
|
288
|
+
ADD_CUSTOM_TICKET_TIMELINE_API ||= 742
|
289
|
+
CATEGORY_ADDED ||= 800
|
290
|
+
CATEGORY_REMOVED ||= 801
|
291
|
+
CATEGORY_LANGUAGE_VALUES_CHANGED ||= 802
|
292
|
+
CATEGORY_UPDATED ||= 803
|
293
|
+
CATEGORY_MOVED ||= 804
|
294
|
+
CHAT_TICKET_USER_UPDATED ||= 1500
|
295
|
+
AGENT_JOINED_CHAT ||= 1501
|
296
|
+
AGENT_LEFT_CHAT ||= 1502
|
297
|
+
AGENT_ENDED_CHAT ||= 1503
|
298
|
+
TICKET_HANDLING_STARTED ||= 2500
|
299
|
+
TICKET_HANDLING_ENDED ||= 2501
|
300
|
+
ALL_TICKET_HANDLING_ENDED ||= 2502
|
301
|
+
end
|
302
|
+
|
303
|
+
# https://help.wixanswers.com/kb/en/article/api-enumerations#item-type874
|
304
|
+
class ItemType < Enumeration
|
305
|
+
CATEGORY ||= 2
|
306
|
+
SEO_CONTENT ||= 6
|
307
|
+
TENANT ||= 7
|
308
|
+
TICKET ||= 8
|
309
|
+
REPLY ||= 9
|
310
|
+
ARTICLE ||= 10
|
311
|
+
EMAIL_TEMPLATE ||= 14
|
312
|
+
CONTENT_TASK ||= 40
|
313
|
+
MAILBOX ||= 50
|
314
|
+
USER ||= 60
|
315
|
+
SAVED_REPLY ||= 70
|
316
|
+
LABEL ||= 90
|
317
|
+
URL_MAPPING ||= 110
|
318
|
+
MULTILINGUAL_TEXT ||= 120
|
319
|
+
SAVED_FILTER ||= 130
|
320
|
+
PHONE_CALL ||= 150
|
321
|
+
NOTE ||= 160
|
322
|
+
CHAT_MESSAGE ||= 170
|
323
|
+
CHAT ||= 175
|
324
|
+
INTEGRATION ||= 180
|
325
|
+
SLA_POLICY ||= 190
|
326
|
+
GROUP ||= 200
|
327
|
+
WIDGET ||= 210
|
328
|
+
LINE ||= 220
|
329
|
+
WIDGET_MULTILINGUAL_TEXTS ||= 221
|
330
|
+
COMPANY ||= 230
|
331
|
+
QUEUE ||= 260
|
332
|
+
USER_ROLE ||= 280
|
333
|
+
AGENT ||= 300
|
334
|
+
end
|
335
|
+
|
336
|
+
# https://help.wixanswers.com/kb/en/article/api-enumerations#rating
|
337
|
+
class Rating < Enumeration
|
338
|
+
POSITIVE ||= 10
|
339
|
+
NEUTRAL ||= 20
|
340
|
+
NEGATIVE ||= 30
|
341
|
+
end
|
342
|
+
|
343
|
+
# https://help.wixanswers.com/kb/en/article/api-enumerations#reply-status
|
344
|
+
class ReplyStatus < Enumeration
|
345
|
+
DRAFT ||= 0
|
346
|
+
PUBLISHED ||= 1
|
347
|
+
DELETED ||= 2
|
348
|
+
end
|
349
|
+
|
350
|
+
# https://help.wixanswers.com/kb/en/article/api-enumerations#reply-type
|
351
|
+
class ReplyType < Enumeration
|
352
|
+
USER ||= 100
|
353
|
+
CC_USER ||= 101
|
354
|
+
AGENT ||= 110
|
355
|
+
INTERNAL ||= 120
|
356
|
+
end
|
357
|
+
|
358
|
+
# https://help.wixanswers.com/kb/en/article/api-enumerations#satisfaction
|
359
|
+
class Satisfaction < Enumeration
|
360
|
+
NOT_AT_ALL ||= 10
|
361
|
+
NOT_VERY ||= 10
|
362
|
+
SOMEWHAT ||= 20
|
363
|
+
VERY ||= 30
|
364
|
+
EXTREMELY ||= 40
|
365
|
+
end
|
366
|
+
|
367
|
+
# https://help.wixanswers.com/kb/en/article/api-enumerations#saved-filter-context
|
368
|
+
class SavedFilterContext < Enumeration
|
369
|
+
TICKET ||= 0
|
370
|
+
CHAT ||= 10
|
371
|
+
end
|
372
|
+
|
373
|
+
# https://help.wixanswers.com/kb/en/article/api-enumerations#saved-filter-type
|
374
|
+
class SavedFilterType < Enumeration
|
375
|
+
SYSTEM ||= 0
|
376
|
+
PRIVATE ||= 10
|
377
|
+
PUBLIC ||= 20
|
378
|
+
end
|
379
|
+
|
380
|
+
# https://help.wixanswers.com/kb/en/article/api-enumerations#saved-reply-status
|
381
|
+
class SavedReplyStatus < Enumeration
|
382
|
+
DRAFT ||= 0
|
383
|
+
PUBLISHED ||= 1
|
384
|
+
DELETE ||= 2
|
385
|
+
end
|
386
|
+
|
387
|
+
# https://help.wixanswers.com/kb/en/article/api-enumerations#search-type
|
388
|
+
class SearchType < Enumeration
|
389
|
+
EXACT ||= 1
|
390
|
+
CONTAINS ||= 2
|
391
|
+
NOT_CONTAINS ||= 3
|
392
|
+
end
|
393
|
+
|
394
|
+
# https://help.wixanswers.com/kb/en/article/api-enumerations#sla-policy-status
|
395
|
+
class SLAPolicyStatus < Enumeration
|
396
|
+
PAUSED ||= 0
|
397
|
+
ACTIVE ||= 1
|
398
|
+
COMPLETED_SUCCESSFULLY ||= 2
|
399
|
+
COMPLETED_UNSUCCESSFULLY ||= 3
|
400
|
+
end
|
401
|
+
|
402
|
+
# https://help.wixanswers.com/kb/en/article/api-enumerations#ticket-priority
|
403
|
+
class TicketPriority < Enumeration
|
404
|
+
LOW ||= 10
|
405
|
+
NORMAL ||= 20
|
406
|
+
HIGH ||= 30
|
407
|
+
end
|
408
|
+
|
409
|
+
# https://help.wixanswers.com/kb/en/article/api-enumerations#ticket-status
|
410
|
+
class TicketStatus < Enumeration
|
411
|
+
OPEN ||= 100
|
412
|
+
PENDING ||= 110
|
413
|
+
CLOSED ||= 120
|
414
|
+
SOLVED = 140
|
415
|
+
INVESTIGATING = 150
|
416
|
+
end
|
417
|
+
|
418
|
+
# https://help.wixanswers.com/kb/en/article/api-enumerations#user-type
|
419
|
+
class UserType < Enumeration
|
420
|
+
AUTHENTICATED ||= 1
|
421
|
+
UNAUTHENTICATED ||= 2
|
422
|
+
PENDING_AUTHENTICATION ||= 4
|
423
|
+
PENDING_DELETION ||= 5
|
424
|
+
DELETED ||= 99
|
425
|
+
end
|
426
|
+
end
|
427
|
+
end
|
File without changes
|
@@ -0,0 +1,12 @@
|
|
1
|
+
|
2
|
+
# https://help.wixanswers.com/kb/en/article/api-object-structures#phone-number-object
|
3
|
+
module WixAnswers
|
4
|
+
module Models
|
5
|
+
class PhoneNumber < Base
|
6
|
+
SCHEMA ||= {
|
7
|
+
countryCode: {type: 'String', description: 'The country code', required: true},
|
8
|
+
number: {type: 'String', description: 'The number', required: true},
|
9
|
+
}
|
10
|
+
end
|
11
|
+
end
|
12
|
+
end
|
data/lib/wixanswers/rest/api.rb
CHANGED
@@ -0,0 +1,26 @@
|
|
1
|
+
|
2
|
+
require 'wixanswers/rest/api'
|
3
|
+
require 'wixanswers/rest/request'
|
4
|
+
|
5
|
+
module WixAnswers
|
6
|
+
module REST
|
7
|
+
class Client
|
8
|
+
include WixAnswers::REST::API
|
9
|
+
attr_accessor :bearer_token
|
10
|
+
|
11
|
+
def perform_request(path, request_method=:get, options = {})
|
12
|
+
WixAnswers::REST::Request.new(self, path, request_method, options).perform
|
13
|
+
end
|
14
|
+
|
15
|
+
# @return [Boolean]
|
16
|
+
def bearer_token?
|
17
|
+
!!bearer_token
|
18
|
+
end
|
19
|
+
|
20
|
+
# @return [Boolean]
|
21
|
+
def credentials?
|
22
|
+
super || bearer_token?
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
@@ -0,0 +1,47 @@
|
|
1
|
+
|
2
|
+
|
3
|
+
module WixAnswers
|
4
|
+
module REST
|
5
|
+
class Request
|
6
|
+
def initialize(client, request_method, path, options: {}, headers: {})
|
7
|
+
@client = client
|
8
|
+
|
9
|
+
@request_method = request_method.to_sym
|
10
|
+
|
11
|
+
@uri = Addressable::URI.parse("#{client.base_url}/#{client.version}/#{path}")
|
12
|
+
@path = @uri.path
|
13
|
+
|
14
|
+
@options = options
|
15
|
+
@headers = default_headers.merge(headers)
|
16
|
+
end
|
17
|
+
|
18
|
+
def perform
|
19
|
+
response = self.send(@request_method, @uri.to_s, headers: @headers)
|
20
|
+
|
21
|
+
response.body
|
22
|
+
end
|
23
|
+
|
24
|
+
def default_headers
|
25
|
+
{'Content-Type' => 'application/json; charset=utf-8', 'Accept' => 'application/json'}
|
26
|
+
end
|
27
|
+
|
28
|
+
private
|
29
|
+
|
30
|
+
def get(uri, params: {}, headers: {})
|
31
|
+
HTTParty.get("#{uri}/#{params.to_param}", headers: headers)
|
32
|
+
end
|
33
|
+
|
34
|
+
def post(uri, body, headers)
|
35
|
+
HTTParty.post(uri, body: body, headers: headers)
|
36
|
+
end
|
37
|
+
|
38
|
+
def put(uri, body, headers)
|
39
|
+
HTTParty.put(uri, body: body, headers: headers)
|
40
|
+
end
|
41
|
+
|
42
|
+
def delete(uri, body, headers)
|
43
|
+
HTTParty.delete(uri, body: body, headers: headers)
|
44
|
+
end
|
45
|
+
end
|
46
|
+
end
|
47
|
+
end
|
@@ -0,0 +1,162 @@
|
|
1
|
+
|
2
|
+
|
3
|
+
module WixAnswers
|
4
|
+
module REST
|
5
|
+
module Ticket
|
6
|
+
# Create a ticket for the authenticated user associated with the JWT token
|
7
|
+
#
|
8
|
+
# @see https://help.wixanswers.com/kb/en/article/ticket-apis#add-a-ticket-as-an-authenticated-user
|
9
|
+
# @authorization Requires user authorization token for specific user
|
10
|
+
# @raise [WixAnswers::Exceptions::Unauthorized] Error raised when supplied user credentials are not valid.
|
11
|
+
# @return <WixAnswers::Models::Ticket>
|
12
|
+
# @param options [Hash] A customizable set of options
|
13
|
+
# @option subject [String] A short description of the problem or question
|
14
|
+
# @option content [String] A complete description of the problem or question
|
15
|
+
# @option locale [String] The locale for the ticket
|
16
|
+
def add(options = {})
|
17
|
+
WixAnswers::Models::Ticket.new(perform_request("/tickets", :post, options))
|
18
|
+
end
|
19
|
+
|
20
|
+
# Create a ticket on behalf of an authenticated or unauthenticated user.
|
21
|
+
# Use this in response to a user request where the agent creates the ticket
|
22
|
+
# based on that request on behalf of the user.
|
23
|
+
#
|
24
|
+
# @see https://help.wixanswers.com/kb/en/article/ticket-apis#add-a-ticket-as-an-agent-on-behalf-of-a-user
|
25
|
+
# @authorization Requires agent authorization token and permission CREATE_TICKETS
|
26
|
+
# @raise [WixAnswers::Exceptions::Unauthorized] Error raised when supplied agent credentials are not valid.
|
27
|
+
# @return <WixAnswers::Models::Ticket>
|
28
|
+
# @param options [Hash] A customizable set of options
|
29
|
+
# @option recipientEmail [String] Email of the user this ticket is created for.
|
30
|
+
# Either this parameter or recipientId is required.
|
31
|
+
# @option recipientId [String] ID of the user this ticket is created for
|
32
|
+
# @option subject [String] A short description of the problem or question
|
33
|
+
# @option content [String] A complete description of the problem or question
|
34
|
+
# @option locale [String] The locale for the ticket
|
35
|
+
def add_on_behalf(options = {})
|
36
|
+
WixAnswers::Models::Ticket.new(perform_request("/tickets/onBehalf", :post, options))
|
37
|
+
end
|
38
|
+
|
39
|
+
# Create a new ticket for an unauthenticated user who has provided an email address.
|
40
|
+
# Use this API only when a user GUID is not available, for example when an unregistered
|
41
|
+
# user creates a ticket on your site or widget.
|
42
|
+
#
|
43
|
+
# @see https://help.wixanswers.com/kb/en/article/ticket-apis#add-a-guest-unauthenticated-user-ticket
|
44
|
+
# @authorization Requires agent authorization token and permission CREATE_TICKETS
|
45
|
+
# @raise [WixAnswers::Exceptions::Unauthorized] Error raised when supplied user credentials are not valid.
|
46
|
+
# @return <WixAnswers::Models::Ticket>
|
47
|
+
# @param options [Hash] A customizable set of options
|
48
|
+
# @option userEmail [String] Email of the user this ticket is associated with
|
49
|
+
# @option subject [String] A short description of the problem or question
|
50
|
+
# @option content [String] A complete description of the problem or question
|
51
|
+
# @option locale [String] The locale for the ticket
|
52
|
+
def add_as_guest(options = {})
|
53
|
+
WixAnswers::Models::Ticket.new(perform_request("/tickets/guest", :post, options))
|
54
|
+
end
|
55
|
+
|
56
|
+
# Create a new ticket from an existing user reply. The new ticket takes many of its details
|
57
|
+
# (user, priority, status, and so forth) from the existing ticket, and the new contents from the reply.
|
58
|
+
# After creating the ticket, Wix Answer invokes the Ticket Created webhook.
|
59
|
+
#
|
60
|
+
# @see https://help.wixanswers.com/kb/en/article/ticket-apis#convert-a-user-reply-into-a-new-ticket
|
61
|
+
# @authorization Requires agent authorization token and permission CREATE_TICKETS
|
62
|
+
# @raise [WixAnswers::Exceptions::Unauthorized] Error raised when supplied user credentials are not valid.
|
63
|
+
# @return <WixAnswers::Models::Ticket>
|
64
|
+
# @param ticket_id [String] ticket GUID
|
65
|
+
# @param reply_id [String] reply GUID
|
66
|
+
# @param options [Hash] A customizable set of options
|
67
|
+
# @option subject [String] A short description of the problem or question
|
68
|
+
def add_as_agent(ticket_id, reply_id, options = {})
|
69
|
+
WixAnswers::Models::Ticket.new(perform_request("/tickets/#{ticket_id}/replies/#{reply_id}/createTicket", :post, options))
|
70
|
+
end
|
71
|
+
|
72
|
+
# Create a new callback request ticket to the passed phone number, for the user associated with the JWT token.
|
73
|
+
# Requires a line that supports outbound calls.
|
74
|
+
#
|
75
|
+
# @see https://help.wixanswers.com/kb/en/article/ticket-apis#add-a-phone-callback-request-ticket
|
76
|
+
# @authorization Requires user authorization token for specific user
|
77
|
+
# @raise [WixAnswers::Exceptions::Unauthorized] Error raised when supplied user credentials are not valid.
|
78
|
+
# @return <WixAnswers::Models::Ticket>
|
79
|
+
# @param options [Hash] A customizable set of options
|
80
|
+
# @option phoneNumber [Hash, WixAnswers::Models::PhoneNumber] Phone number to call back
|
81
|
+
# @option lineId [Integer] The account's phone line ID from which the callback will take place.
|
82
|
+
# See Call Center Lines APIs.
|
83
|
+
def add_callback_request(options = {})
|
84
|
+
options[:phoneNumber] = options[:phoneNumber].is_a?(WixAnswers::Models::PhoneNumber) ? options[:phoneNumber].attrs : options[:phoneNumber]
|
85
|
+
WixAnswers::Models::Ticket.new(perform_request("/tickets/callbackRequests", :post, options))
|
86
|
+
end
|
87
|
+
|
88
|
+
# Get a ticket by its ID. This requires agent privileges; to get one of your own tickets
|
89
|
+
# (with user privileges), see Get One of Your Tickets by ID.
|
90
|
+
#
|
91
|
+
# @see https://help.wixanswers.com/kb/en/article/ticket-apis#get-a-ticket-by-id
|
92
|
+
# @authorization Requires agent authorization token and permission FETCH_TICKETS
|
93
|
+
# @raise [WixAnswers::Exceptions::Unauthorized] Error raised when supplied agent credentials are not valid.
|
94
|
+
# @return <WixAnswers::Models::Ticket>
|
95
|
+
# @param ticket_id [String] Ticket GUID
|
96
|
+
def ticket(ticket_id)
|
97
|
+
WixAnswers::Models::Ticket.new(perform_request("/tickets/#{ticket_id}/admin"))
|
98
|
+
end
|
99
|
+
alias find_by_id ticket
|
100
|
+
|
101
|
+
# Get a ticket by its ticket reference number (issue ID). This requires agent privileges;
|
102
|
+
# to get one of your own tickets (with user privileges), see Get One of Your Tickets by ID.
|
103
|
+
#
|
104
|
+
# @see https://help.wixanswers.com/kb/en/article/ticket-apis#get-a-ticket-by-ticket-reference-number
|
105
|
+
# @authorization Requires agent authorization token and permission FETCH_TICKETS
|
106
|
+
# @raise [WixAnswers::Exceptions::Unauthorized] Error raised when supplied agent credentials are not valid.
|
107
|
+
# @return <WixAnswers::Models::Ticket>
|
108
|
+
# @param ticket_number [Integer] Ticket Number
|
109
|
+
def find_by_number(ticket_number)
|
110
|
+
WixAnswers::Models::Ticket.new(perform_request("/tickets/byNumber/#{ticket_number}/admin"))
|
111
|
+
end
|
112
|
+
|
113
|
+
# Get one of your tickets by its ID. The main use-case for this API is from the Help Center.
|
114
|
+
# If you have agent privileges, you can get any ticket by its reference number or id;
|
115
|
+
# see Get a Ticket by Ticket Reference Number.
|
116
|
+
#
|
117
|
+
# @see https://help.wixanswers.com/kb/en/article/ticket-apis#get-a-ticket-by-ticket-reference-number
|
118
|
+
# @authorization Requires agent authorization token and permission FETCH_TICKETS
|
119
|
+
# @raise [WixAnswers::Exceptions::Unauthorized] Error raised when supplied agent credentials are not valid.
|
120
|
+
# @return <WixAnswers::Models::Ticket>
|
121
|
+
# @param ticket_id [String] Ticket GUID
|
122
|
+
def my_ticket(ticket_id)
|
123
|
+
WixAnswers::Models::Ticket.new(perform_request("/tickets/byNumber/#{ticket_id}/my"))
|
124
|
+
end
|
125
|
+
|
126
|
+
# Get list of tickets that match the search/filtering criteria.
|
127
|
+
#
|
128
|
+
# @see https://help.wixanswers.com/kb/en/article/ticket-apis#search-tickets-agent
|
129
|
+
# @authorization Requires agent authorization token and permission FETCH_TICKETS
|
130
|
+
# @raise [WixAnswers::Exceptions::Unauthorized] Error raised when supplied agent credentials are not valid.
|
131
|
+
# @return [Array<WixAnswers::Models::Ticket>]
|
132
|
+
# @param options [Hash] A customizable set of options
|
133
|
+
def search(options = {})
|
134
|
+
perform_request("/tickets/search/admin", :post, options).map {|ticket| WixAnswers::Models::Ticket.new(ticket) }
|
135
|
+
end
|
136
|
+
|
137
|
+
# Get list of your tickets that match the search/filtering criteria.
|
138
|
+
# The main use-case for this API is from the Help Center.
|
139
|
+
#
|
140
|
+
# @see https://help.wixanswers.com/kb/en/article/ticket-apis#search-your-tickets1097
|
141
|
+
# @authorization Requires user authorization token for specific user
|
142
|
+
# @raise [WixAnswers::Exceptions::Unauthorized] Error raised when supplied agent credentials are not valid.
|
143
|
+
# @return [Array<WixAnswers::Models::Ticket>]
|
144
|
+
# @param options [Hash] A customizable set of options
|
145
|
+
def search_mine(options = {})
|
146
|
+
perform_request("/tickets/my", :post, options).map {|ticket| WixAnswers::Models::Ticket.new(ticket) }
|
147
|
+
end
|
148
|
+
|
149
|
+
# Get the number of tickets matching one or more saved filters.
|
150
|
+
#
|
151
|
+
# @see https://help.wixanswers.com/kb/en/article/ticket-apis#get-the-number-of-tickets-matching-one-or-more-saved-filters
|
152
|
+
# @authorization Requires agent authorization token and permission FETCH_TICKET_VIEWS
|
153
|
+
# @raise [WixAnswers::Exceptions::Unauthorized] Error raised when supplied agent credentials are not valid.
|
154
|
+
# @return [Hash]
|
155
|
+
# @param options [Hash] A customizable set of options
|
156
|
+
# @option locale [String] Get the number of tickets matching one or more saved filters.
|
157
|
+
def count(options = {})
|
158
|
+
perform_request("/tickets/filtersCounts", :post, options)
|
159
|
+
end
|
160
|
+
end
|
161
|
+
end
|
162
|
+
end
|
data/lib/wixanswers/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: wixanswers
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Roee Sheelo
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2020-11-
|
11
|
+
date: 2020-11-22 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -35,9 +35,12 @@ files:
|
|
35
35
|
- LICENSE.md
|
36
36
|
- README.md
|
37
37
|
- lib/wixanswers.rb
|
38
|
+
- lib/wixanswers/enumerations.rb
|
39
|
+
- lib/wixanswers/exceptions.rb
|
38
40
|
- lib/wixanswers/models/attachment.rb
|
39
41
|
- lib/wixanswers/models/base.rb
|
40
42
|
- lib/wixanswers/models/label.rb
|
43
|
+
- lib/wixanswers/models/line/phone_number.rb
|
41
44
|
- lib/wixanswers/models/ticket/by_agent.rb
|
42
45
|
- lib/wixanswers/models/ticket/chat.rb
|
43
46
|
- lib/wixanswers/models/ticket/phone_callback.rb
|
@@ -52,8 +55,9 @@ files:
|
|
52
55
|
- lib/wixanswers/models/user/user.rb
|
53
56
|
- lib/wixanswers/models/user_info.rb
|
54
57
|
- lib/wixanswers/rest/api.rb
|
55
|
-
- lib/wixanswers/rest/
|
56
|
-
- lib/wixanswers/rest/
|
58
|
+
- lib/wixanswers/rest/client.rb
|
59
|
+
- lib/wixanswers/rest/request.rb
|
60
|
+
- lib/wixanswers/rest/ticket.rb
|
57
61
|
- lib/wixanswers/version.rb
|
58
62
|
- wixanswers.gemspec
|
59
63
|
homepage: https://github.com/communit-team/wixanswers
|
@@ -1,95 +0,0 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
module WixAnswers
|
4
|
-
module Enumerations
|
5
|
-
class Enumeration
|
6
|
-
def self.values
|
7
|
-
Set.new(constants.map {|const| const_get(const) })
|
8
|
-
end
|
9
|
-
|
10
|
-
def self.valid?(value)
|
11
|
-
values.include?(value)
|
12
|
-
end
|
13
|
-
|
14
|
-
def self.validate!(value)
|
15
|
-
raise Exceptions::UnsupportedType.new(self.name, value) unless self.valid?(value)
|
16
|
-
end
|
17
|
-
end
|
18
|
-
|
19
|
-
class WebhookType < Enumeration
|
20
|
-
TICKET_CREATED ||= 2
|
21
|
-
TICKET_STATUS_CHANGED ||= 8
|
22
|
-
end
|
23
|
-
|
24
|
-
class AttachmentStatus < Enumeration
|
25
|
-
FAILED ||= 1
|
26
|
-
INVALID_EXTENSION ||= 2
|
27
|
-
MAX_FILE_SIZE_EXCEEDED ||= 3
|
28
|
-
OK ||= 200
|
29
|
-
end
|
30
|
-
|
31
|
-
# https://help.wixanswers.com/kb/en/article/api-enumerations#user-type
|
32
|
-
class UserType < Enumeration
|
33
|
-
AUTHENTICATED ||= 1
|
34
|
-
UNAUTHENTICATED ||= 2
|
35
|
-
PENDING_AUTHENTICATION ||= 4
|
36
|
-
PENDING_DELETION ||= 5
|
37
|
-
DELETED ||= 99
|
38
|
-
end
|
39
|
-
|
40
|
-
# https://help.wixanswers.com/kb/en/article/api-enumerations#call-type
|
41
|
-
class CallType < Enumeration
|
42
|
-
INBOUND ||= 10
|
43
|
-
OUTBOUND ||= 20
|
44
|
-
CALLBACK ||= 30
|
45
|
-
end
|
46
|
-
|
47
|
-
# https://help.wixanswers.com/kb/en/article/api-enumerations#reply-type
|
48
|
-
class ReplyType < Enumeration
|
49
|
-
USER ||= 100
|
50
|
-
CC_USER ||= 101
|
51
|
-
AGENT ||= 110
|
52
|
-
INTERNAL ||= 120
|
53
|
-
end
|
54
|
-
|
55
|
-
# https://help.wixanswers.com/kb/en/article/api-enumerations#article-type
|
56
|
-
class ArticleType < Enumeration
|
57
|
-
ARTICLE ||= 100
|
58
|
-
FEATURE_REQUEST ||= 110
|
59
|
-
KNOWN_ISSUE ||= 120
|
60
|
-
VIDEO ||= 130
|
61
|
-
end
|
62
|
-
|
63
|
-
# https://help.wixanswers.com/kb/en/article/api-enumerations#ticket-priority
|
64
|
-
class TicketPriority < Enumeration
|
65
|
-
LOW ||= 10
|
66
|
-
NORMAL ||= 20
|
67
|
-
HIGH ||= 30
|
68
|
-
end
|
69
|
-
|
70
|
-
# https://help.wixanswers.com/kb/en/article/api-enumerations#channel
|
71
|
-
class Channel < Enumeration
|
72
|
-
WEB ||= 100
|
73
|
-
EMAIL ||= 110
|
74
|
-
PHONE_CALLBACK ||= 120
|
75
|
-
PHONE_OUTBOUND ||= 121
|
76
|
-
PHONE_INBOUND ||= 122
|
77
|
-
BY_AGENT ||= 130
|
78
|
-
FACEBOOK ||= 140
|
79
|
-
WHATSAPP ||= 150
|
80
|
-
CHAT ||= 160
|
81
|
-
WIDGET ||= 170
|
82
|
-
API ||= 180
|
83
|
-
SMS ||= 190
|
84
|
-
end
|
85
|
-
|
86
|
-
# https://help.wixanswers.com/kb/en/article/api-enumerations#satisfaction
|
87
|
-
class Satisfaction < Enumeration
|
88
|
-
NOT_AT_ALL ||= 10
|
89
|
-
NOT_VERY ||= 10
|
90
|
-
SOMEWHAT ||= 20
|
91
|
-
VERY ||= 30
|
92
|
-
EXTREMELY ||= 40
|
93
|
-
end
|
94
|
-
end
|
95
|
-
end
|