desk 0.3.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (74) hide show
  1. data/.gemtest +0 -0
  2. data/.gitignore +11 -0
  3. data/.rspec +3 -0
  4. data/.yardopts +9 -0
  5. data/Gemfile +12 -0
  6. data/HISTORY.mkd +44 -0
  7. data/LICENSE.mkd +20 -0
  8. data/README.mkd +267 -0
  9. data/Rakefile +23 -0
  10. data/desk.gemspec +44 -0
  11. data/lib/desk.rb +26 -0
  12. data/lib/desk/api.rb +28 -0
  13. data/lib/desk/authentication.rb +25 -0
  14. data/lib/desk/client.rb +28 -0
  15. data/lib/desk/client/article.rb +92 -0
  16. data/lib/desk/client/case.rb +55 -0
  17. data/lib/desk/client/customer.rb +146 -0
  18. data/lib/desk/client/interaction.rb +75 -0
  19. data/lib/desk/client/macro.rb +142 -0
  20. data/lib/desk/client/topic.rb +90 -0
  21. data/lib/desk/client/user.rb +38 -0
  22. data/lib/desk/configuration.rb +98 -0
  23. data/lib/desk/connection.rb +39 -0
  24. data/lib/desk/error.rb +67 -0
  25. data/lib/desk/request.rb +44 -0
  26. data/lib/desk/version.rb +4 -0
  27. data/lib/faraday/request/multipart_with_file.rb +30 -0
  28. data/lib/faraday/request/oauth.rb +23 -0
  29. data/lib/faraday/response/raise_http_4xx.rb +45 -0
  30. data/lib/faraday/response/raise_http_5xx.rb +24 -0
  31. data/spec/desk/api_spec.rb +70 -0
  32. data/spec/desk/client/article_spec.rb +134 -0
  33. data/spec/desk/client/case_spec.rb +99 -0
  34. data/spec/desk/client/customer_spec.rb +158 -0
  35. data/spec/desk/client/interaction_spec.rb +191 -0
  36. data/spec/desk/client/macro_spec.rb +204 -0
  37. data/spec/desk/client/topic_spec.rb +135 -0
  38. data/spec/desk/client/user_spec.rb +58 -0
  39. data/spec/desk/client_spec.rb +10 -0
  40. data/spec/desk_spec.rb +127 -0
  41. data/spec/faraday/response_spec.rb +34 -0
  42. data/spec/fixtures/article.json +50 -0
  43. data/spec/fixtures/article_create.json +54 -0
  44. data/spec/fixtures/article_destroy.json +3 -0
  45. data/spec/fixtures/article_update.json +54 -0
  46. data/spec/fixtures/articles.json +58 -0
  47. data/spec/fixtures/case.json +59 -0
  48. data/spec/fixtures/case_update.json +59 -0
  49. data/spec/fixtures/cases.json +182 -0
  50. data/spec/fixtures/customer.json +58 -0
  51. data/spec/fixtures/customer_create.json +56 -0
  52. data/spec/fixtures/customer_create_email.json +15 -0
  53. data/spec/fixtures/customer_update.json +47 -0
  54. data/spec/fixtures/customer_update_email.json +15 -0
  55. data/spec/fixtures/customers.json +98 -0
  56. data/spec/fixtures/interaction_create.json +126 -0
  57. data/spec/fixtures/interactions.json +139 -0
  58. data/spec/fixtures/macro.json +8 -0
  59. data/spec/fixtures/macro_action.json +9 -0
  60. data/spec/fixtures/macro_action_update.json +12 -0
  61. data/spec/fixtures/macro_actions.json +69 -0
  62. data/spec/fixtures/macro_create.json +13 -0
  63. data/spec/fixtures/macro_destroy.json +3 -0
  64. data/spec/fixtures/macro_update.json +13 -0
  65. data/spec/fixtures/macros.json +24 -0
  66. data/spec/fixtures/topic.json +9 -0
  67. data/spec/fixtures/topic_create.json +14 -0
  68. data/spec/fixtures/topic_destroy.json +3 -0
  69. data/spec/fixtures/topic_update.json +14 -0
  70. data/spec/fixtures/topics.json +35 -0
  71. data/spec/fixtures/user.json +15 -0
  72. data/spec/fixtures/users.json +24 -0
  73. data/spec/helper.rb +55 -0
  74. metadata +464 -0
@@ -0,0 +1,56 @@
1
+ {
2
+ "success":true,
3
+ "results":
4
+ {
5
+ "customer":
6
+ {
7
+ "id":61,
8
+ "first_name":"John",
9
+ "last_name":"Smith",
10
+ "emails":
11
+ [
12
+ {
13
+ "email":
14
+ {
15
+ "created_at":"2011-01-04T21:35:41Z",
16
+ "customer_contact_type":"home",
17
+ "email":"john.smith@desk.com",
18
+ "updated_at":"2011-01-04T21:35:41Z",
19
+ "verified_at":null
20
+ }
21
+ }
22
+ ],
23
+ "phones":
24
+ [
25
+ {
26
+ "phone":
27
+ {
28
+ "created_at":"2011-01-04T21:35:41Z",
29
+ "customer_contact_type":"home",
30
+ "phone":"123-456-7890",
31
+ "updated_at":"2011-01-04T21:35:41Z"
32
+ }
33
+ }
34
+ ],
35
+ "addresses":
36
+ [
37
+ ],
38
+ "twitters":
39
+ [
40
+ {
41
+ "twitter":
42
+ {
43
+ "created_at":"2011-01-04T21:35:41Z",
44
+ "followers_count":89,
45
+ "login":"johnsmith",
46
+ "profile_image_url":"http://a3.twimg.com/profile_images/58296943/eye_normal.jpg",
47
+ "twitter_user_id":745073,
48
+ "updated_at":"2011-01-04T21:35:41Z",
49
+ "verified":false
50
+ }
51
+ }
52
+ ],
53
+ "custom_tier":"vip"
54
+ }
55
+ }
56
+ }
@@ -0,0 +1,15 @@
1
+ {
2
+ "success":true,
3
+ "results":
4
+ {
5
+ "email":
6
+ {
7
+ "created_at":"2011-02-09T17:06:22Z",
8
+ "customer_contact_type":"work",
9
+ "email":"api@example.com",
10
+ "id":18,
11
+ "updated_at":"2011-02-09T17:06:22Z",
12
+ "verified_at":null
13
+ }
14
+ }
15
+ }
@@ -0,0 +1,47 @@
1
+ {
2
+ "success":true,
3
+ "results":
4
+ {
5
+ "customer":
6
+ {
7
+ "id":1,
8
+ "first_name":"Joslyn",
9
+ "last_name":"Esser",
10
+ "emails":
11
+ [
12
+ {
13
+ "email":
14
+ {
15
+ "created_at":"2011-02-09T17:06:22Z",
16
+ "customer_contact_type":"work",
17
+ "email":"support@desk.com",
18
+ "id":1,
19
+ "updated_at":"2011-02-09T17:06:22Z",
20
+ "verified_at":null
21
+ }
22
+ }
23
+ ],
24
+ "phones":
25
+ [
26
+ ],
27
+ "addresses":
28
+ [
29
+ ],
30
+ "twitters":
31
+ [
32
+ {
33
+ "twitter":
34
+ {
35
+ "created_at":"2011-02-09T17:06:23Z",
36
+ "followers_count":896,
37
+ "login":"Desk",
38
+ "profile_image_url":"http://a2.twimg.com/profile_images/1231458746/Desk_Twitter_Profile_normal.png",
39
+ "twitter_user_id":66799471,
40
+ "updated_at":"2011-02-09T17:06:23Z",
41
+ "verified":true
42
+ }
43
+ }
44
+ ]
45
+ }
46
+ }
47
+ }
@@ -0,0 +1,15 @@
1
+ {
2
+ "success":true,
3
+ "results":
4
+ {
5
+ "email":
6
+ {
7
+ "created_at":"2011-02-09T17:06:22Z",
8
+ "customer_contact_type":"work",
9
+ "email":"api@example.com",
10
+ "id":18,
11
+ "updated_at":"2011-02-09T17:06:22Z",
12
+ "verified_at":null
13
+ }
14
+ }
15
+ }
@@ -0,0 +1,98 @@
1
+ {
2
+ "page": 1,
3
+ "count": 20,
4
+ "total": 541,
5
+ "results": [
6
+ {
7
+ "customer": {
8
+ "custom_test": null,
9
+ "addresses": [
10
+ {
11
+ "address": {
12
+ "region": "NY",
13
+ "city": "Commack",
14
+ "location": "67 Harned Road, Commack, NY 11725, USA",
15
+ "created_at": "2009-12-22T16:21:23-05:00",
16
+ "street_2": null,
17
+ "country": "US",
18
+ "updated_at": "2009-12-22T16:32:37-05:00",
19
+ "postalcode": "11725",
20
+ "street": "67 Harned Road",
21
+ "lng": "-73.196225",
22
+ "customer_contact_type": "home",
23
+ "lat": "40.716894"
24
+ }
25
+ }
26
+ ],
27
+ "phones": [
28
+
29
+ ],
30
+ "last_name": "Suriel",
31
+ "custom_order": "4",
32
+ "first_name": "Jeremy",
33
+ "custom_t2": "",
34
+ "custom_i": "",
35
+ "custom_t3": null,
36
+ "custom_t": "",
37
+ "emails": [
38
+ {
39
+ "email": {
40
+ "verified_at": "2009-11-27T21:41:11-05:00",
41
+ "created_at": "2009-11-27T21:40:55-05:00",
42
+ "updated_at": "2009-11-27T21:41:11-05:00",
43
+ "customer_contact_type": "home",
44
+ "email": "jeremysuriel+twitter@gmail.com"
45
+ }
46
+ }
47
+ ],
48
+ "id": 8,
49
+ "twitters": [
50
+ {
51
+ "twitter": {
52
+ "profile_image_url": "http://a3.twimg.com...",
53
+ "created_at": "2009-11-25T10:35:56-05:00",
54
+ "updated_at": "2010-05-29T22:41:55-04:00",
55
+ "twitter_user_id": 12267802,
56
+ "followers_count": 93,
57
+ "verified": false,
58
+ "login": "jrmey"
59
+ }
60
+ }
61
+ ]
62
+ }
63
+ },
64
+ {
65
+ "customer": {
66
+ "custom_test": null,
67
+ "addresses": [
68
+
69
+ ],
70
+ "phones": [
71
+
72
+ ],
73
+ "last_name": "",
74
+ "custom_order": null,
75
+ "first_name": "jeremy@example.com",
76
+ "custom_t2": null,
77
+ "custom_i": null,
78
+ "custom_t3": null,
79
+ "custom_t": null,
80
+ "emails": [
81
+ {
82
+ "email": {
83
+ "verified_at": null,
84
+ "created_at": "2009-12-05T20:39:00-05:00",
85
+ "updated_at": "2009-12-05T20:39:00-05:00",
86
+ "customer_contact_type": "home",
87
+ "email": "jeremy@example.com"
88
+ }
89
+ }
90
+ ],
91
+ "id": 27,
92
+ "twitters": [
93
+ null
94
+ ]
95
+ }
96
+ }
97
+ ]
98
+ }
@@ -0,0 +1,126 @@
1
+ {
2
+ "success": true,
3
+ "results": {
4
+ "customer": {
5
+ "id": 665,
6
+ "first_name": "API",
7
+ "last_name": "Customer",
8
+ "emails": [
9
+ {
10
+ "email": {
11
+ "created_at": "2010-09-07T20:38:05Z",
12
+ "customer_contact_type": "home",
13
+ "email": "customer@zencoder.com",
14
+ "updated_at": "2010-09-07T20:38:05Z",
15
+ "verified_at": null
16
+ }
17
+ }
18
+ ],
19
+ "phones": [
20
+
21
+ ],
22
+ "addresses": [
23
+
24
+ ],
25
+ "twitters": [
26
+ null
27
+ ],
28
+ "custom_test": null
29
+ },
30
+ "case": {
31
+ "id": 1835,
32
+ "last_available_at": null,
33
+ "created_at": "2010-09-07T20:40:16Z",
34
+ "active_at": null,
35
+ "route_at": "2010-09-07T20:40:15Z",
36
+ "first_resolved_at": null,
37
+ "active_user": null,
38
+ "updated_at": "2010-09-07T20:40:16Z",
39
+ "case_status_at": "2010-09-07T20:40:15Z",
40
+ "priority": 4,
41
+ "last_saved_by_id": null,
42
+ "interaction_in_at": null,
43
+ "assigned_at": null,
44
+ "subject": "this is an api test",
45
+ "routed_at": null,
46
+ "group": null,
47
+ "user": null,
48
+ "first_opened_at": null,
49
+ "channel": "email",
50
+ "resolved_at": null,
51
+ "description": null,
52
+ "customer_id": 665,
53
+ "closed_at": null,
54
+ "changed_at": "2010-09-07T20:40:16Z",
55
+ "case_status_type": "new",
56
+ "labels": [
57
+ "apitest"
58
+ ],
59
+ "pending_at": null,
60
+ "opened_at": null,
61
+ "route_status": "added",
62
+ "thread_count": null,
63
+ "note_count": null,
64
+ "preview": null,
65
+ "custom_order": null
66
+ },
67
+ "interaction": {
68
+ "accept_langs": null,
69
+ "browser": null,
70
+ "browser_version": null,
71
+ "channel": "email",
72
+ "city": null,
73
+ "country": null,
74
+ "country_code": null,
75
+ "created_at": "2010-09-07T20:40:16Z",
76
+ "email": null,
77
+ "engine": null,
78
+ "engine_version": null,
79
+ "id": 2955,
80
+ "basis": null,
81
+ "direction": "in",
82
+ "out_status": null,
83
+ "ip_address": null,
84
+ "lat": null,
85
+ "lng": null,
86
+ "name": null,
87
+ "orig_route_at": "2010-09-07T20:40:16Z",
88
+ "os": null,
89
+ "os_version": null,
90
+ "preferred_lang": null,
91
+ "region": null,
92
+ "group": null,
93
+ "user": null,
94
+ "sent_at": null,
95
+ "case_id": 1835,
96
+ "updated_at": "2010-09-07T20:40:16Z",
97
+ "user_agent": null,
98
+ "interactionable": {
99
+ "email": {
100
+ "bcc": null,
101
+ "cc": null,
102
+ "to": null,
103
+ "from": "testapi@desk.com",
104
+ "reply_to": null,
105
+ "in_reply_to": null,
106
+ "sender": null,
107
+ "message_id": null,
108
+ "uid": null,
109
+ "subject": "this is an api test",
110
+ "body_text": null,
111
+ "body_html": null,
112
+ "body": null,
113
+ "header": null,
114
+ "sent_at": null,
115
+ "created_at": "2010-09-07T20:40:16Z",
116
+ "updated_at": "2010-09-07T20:40:16Z",
117
+ "x_mailer": null,
118
+ "delivered_to": null,
119
+ "interaction_direction": "in",
120
+ "hidden_at": null,
121
+ "hidden_by_id": null
122
+ }
123
+ }
124
+ }
125
+ }
126
+ }
@@ -0,0 +1,139 @@
1
+ {
2
+ "results": [
3
+ {
4
+ "interaction": {
5
+ "accept_langs": null,
6
+ "browser": null,
7
+ "browser_version": null,
8
+ "channel": "email",
9
+ "city": null,
10
+ "country": null,
11
+ "country_code": null,
12
+ "created_at": "2010-08-31T15:44:04Z",
13
+ "email": null,
14
+ "engine": null,
15
+ "engine_version": null,
16
+ "id": 2912,
17
+ "basis": "original",
18
+ "direction": "in",
19
+ "out_status": null,
20
+ "ip_address": null,
21
+ "lat": null,
22
+ "lng": null,
23
+ "name": null,
24
+ "orig_route_at": "2010-08-31T15:44:04Z",
25
+ "os": null,
26
+ "os_version": null,
27
+ "preferred_lang": null,
28
+ "region": null,
29
+ "group": null,
30
+ "user": null,
31
+ "sent_at": null,
32
+ "case_id": 1811,
33
+ "updated_at": "2010-08-31T15:44:04Z",
34
+ "user_agent": null,
35
+ "interactionable": {
36
+ "email": {
37
+ "bcc": null,
38
+ "cc": null,
39
+ "to": "JTest 01 <jtest01@desk.com>",
40
+ "from": "Jeremy Suriel <jeremy@desk.com>",
41
+ "reply_to": null,
42
+ "in_reply_to": null,
43
+ "sender": null,
44
+ "message_id": "<DB902A25-E373-4E49-B45D-B99C0FDAE873@desk.com>",
45
+ "uid": 2479,
46
+ "subject": "Please help me",
47
+ "body_text": "What color is the sky?\n\n\nJeremy Suriel \nChief Architect \u2022 Assist.ly\ntwitter.com/jrmey\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",
48
+ "body_html": "",
49
+ "body": "What color is the sky?\n\n\nJeremy Suriel \nChief Architect \u2022 Assist.ly\ntwitter.com/jrmey\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",
50
+ "header": "Delivered-To: jtest01@desk.com\r\nReceived: by 10.204.62.68 with SMTP id w4cs129345bkh; Tue, 31 Aug 2010\r\n 08:43:56 -0700 (PDT)\r\nReceived: by 10.114.13.14 with SMTP id 14mr7016661wam.157.1283269433994; Tue, \r\n 31 Aug 2010 08:43:53 -0700 (PDT)\r\nReturn-Path: <jeremy@desk.com>\r\nReceived: from mail-px0-f170.google.com (mail-px0-f170.google.com\r\n [209.85.212.170 ]",
51
+ "sent_at": "2010-08-31T15:43:49Z",
52
+ "created_at": "2010-08-31T15:44:04Z",
53
+ "updated_at": "2010-08-31T15:44:04Z",
54
+ "x_mailer": "Apple Mail (2.1081)",
55
+ "delivered_to": "JTest 01 <jtest01@desk.com>",
56
+ "interaction_direction": "in",
57
+ "hidden_at": null,
58
+ "hidden_by_id": null
59
+ }
60
+ }
61
+ }
62
+ },
63
+ {
64
+ "interaction": {
65
+ "accept_langs": null,
66
+ "browser": null,
67
+ "browser_version": null,
68
+ "channel": "email",
69
+ "city": null,
70
+ "country": null,
71
+ "country_code": null,
72
+ "created_at": "2010-08-31T15:44:50Z",
73
+ "email": null,
74
+ "engine": null,
75
+ "engine_version": null,
76
+ "id": 2914,
77
+ "basis": "reply",
78
+ "direction": "out",
79
+ "out_status": "sent",
80
+ "ip_address": null,
81
+ "lat": null,
82
+ "lng": null,
83
+ "name": null,
84
+ "orig_route_at": "2010-08-31T15:44:50Z",
85
+ "os": null,
86
+ "os_version": null,
87
+ "preferred_lang": null,
88
+ "region": null,
89
+ "group": null,
90
+ "user": {
91
+ "id": 1,
92
+ "name": "Agent Jeremy",
93
+ "name_public": "Agent Jeremy",
94
+ "email": "jeremy+agent1@desk.com",
95
+ "created_at": "2009-11-25T14:58:39Z",
96
+ "updated_at": "2010-08-31T15:44:59Z",
97
+ "user_level": "sysadmin",
98
+ "login_count": 579,
99
+ "time_zone": "Eastern Time (US & Canada)",
100
+ "last_login_at": "2010-08-27T13:45:38Z"
101
+ },
102
+ "sent_at": "2010-08-31T15:45:17Z",
103
+ "case_id": 1811,
104
+ "updated_at": "2010-08-31T15:45:18Z",
105
+ "user_agent": null,
106
+ "interactionable": {
107
+ "email": {
108
+ "bcc": "",
109
+ "cc": "",
110
+ "to": "Jeremy Suriel <jeremy@desk.com>",
111
+ "from": "JTest 01 <jtest01@desk.com>",
112
+ "reply_to": null,
113
+ "in_reply_to": "<DB902A25-E373-4E49-B45D-B99C0FDAE873@desk.com>",
114
+ "sender": null,
115
+ "message_id": "<4c7d237242eb3_160d867bebe4121@jeremy.desk.local>",
116
+ "uid": null,
117
+ "subject": "Re: Please help me",
118
+ "body_text": "\n\n__________________________________\nPlease type your reply at the top of the email...\n------------------------------------------------------\n \n \n\nAgent Jeremy | AUG 31,2010 03:44PM UTC\n\n\nBlue!\n\n\n------------------------------------------------------\n\n\n \n\n\nSales | AUG 31,2010 03:44PM UTC | Original message \n \n\n\nWhat color is the sky?\n\n\nJeremy Suriel \nChief Architect \u2022 Assist.ly\ntwitter.com/jrmey\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n------------------------------------------------------\nFor your reference this is Case #: 1811\n------------------------------------------------------\n\nSupport powered by Assistly (http://www.desk.com/)\n\n [ [ cc11a56264793ec471701942ec80bd4e9e7194a5-1975 ] ]",
119
+ "body_html": "<div style='color:#ffffff'>__________________________________</div><div style=\"color: #222; font-family: 'Lucida Grande', Helvetica, Arial, Verdana, sans-serif; font-size:12px; width:800px;\">\n\t<div style=\"color: #ff0000; margin: 0px 0px 10px 10px;\">\n\t\tPlease type your reply at the top of the email...\n\t</div>\n\t<div style=\"border-bottom: dotted 2px #bbb; margin:0px 0px 15px 10px;\"></div>\n\t\n\t\n\t\n\t<div style=\"line-height: 18px; margin-left: 10px;\">\n\t\t<div style=\"font-size: 14px; font-weight: bold; \">\n\t\t\tAgent Jeremy\n\t\t</div>\n\t\t<div style=\"color: #777; font-size: 10px; margin-bottom: 10px;\">\n\t\t\tAUG 31, 2010 &nbsp;|&nbsp; 11:44AM EDT</div>\t\t\n\t\t<div>\n\t\t\tBlue!\n\t\t</div>\n\t</div>\n\t<div style=\"clear:left\"></div>\n\t<div style=\"border-top: solid 2px #e8f6f9; margin: 10px 0px 0px 10px;\"></div>\n\t<div style=\"border-bottom: solid 1px #ddd; margin: 0px 0px 15px 10px;\"></div>\n\n\n\t\n\t\n\t\n\t<div style=\"line-height: 18px; margin-left: 10px;\">\n\t\t<div style=\"font-size: 14px; font-weight: bold; \">\n\t\t\t\n\t\t\tSales\n\t\t\n\t\t</div>\n\t\t<div style=\"color: #777; font-size: 10px; margin-bottom: 10px;\">\n\t\t\tAUG 31, 2010 &nbsp;|&nbsp; 03:44PM UTC\n\t\t\t\n\t\t\t<br />\n\t\t\t<span style=\"background-color: #d8f4fa;\">Original message</span>\n\t\t\t\n\t\t</div>\n\n\n\t\t\t\n\t\t<div style=\"color: #777;\">\n\t\t\n\t\t\tWhat color is the sky?<br/><br/><br/>Jeremy Suriel <br/>Chief Architect \u2022 Assist.ly<br/>twitter.com/jrmey<br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/>\n\t\t</div>\n\t</div>\n\t<div style=\"border-top: solid 2px #e8f6f9; margin: 15px 0px 0px 10px;\"></div>\n\t<div style=\"border-bottom: solid 1px #ddd; margin: 0px 0px 15px 10px;\"></div>\n\t\n\t\t\t\n\t<div style=\"color: #777; font-size: 10px; margin: 0px 0px 15px 10px;\">\n\t\tFor your reference this is Case #: <span style=\"background-color: #d8f4fa;\">1811</span>\n\t</div>\n\t<div style=\"border-bottom: dotted 2px #bbb; margin: 15px 0px 0px 10px;\"></div>\n\t<div style=\"color: #bbb; font-size: 12px; margin-top: 15px; text-align: center;\">\n\t\tSupport powered by <a href=\"http://www.desk.com/\" style=\"color: #0397D6;\">Assistly</a>\n\t</div>\n</div><span style='color:#ffffff'></span>",
120
+ "body": "Blue!",
121
+ "header": null,
122
+ "sent_at": "2010-08-31T15:45:17Z",
123
+ "created_at": "2010-08-31T15:44:50Z",
124
+ "updated_at": "2010-08-31T15:45:17Z",
125
+ "x_mailer": null,
126
+ "delivered_to": null,
127
+ "interaction_direction": "out",
128
+ "hidden_at": null,
129
+ "hidden_by_id": null,
130
+ "out_status": "sent"
131
+ }
132
+ }
133
+ }
134
+ }
135
+ ],
136
+ "page": 1,
137
+ "count": 20,
138
+ "total": 2
139
+ }