ribose 0.3.0 → 0.3.1
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 +5 -5
- data/README.md +77 -0
- data/lib/ribose/actions/create.rb +2 -1
- data/lib/ribose/actions/update.rb +2 -1
- data/lib/ribose/calendar.rb +2 -2
- data/lib/ribose/conversation.rb +18 -0
- data/lib/ribose/event.rb +86 -0
- data/lib/ribose/file_version.rb +42 -0
- data/lib/ribose/space_category.rb +15 -0
- data/lib/ribose/space_file.rb +14 -0
- data/lib/ribose/version.rb +1 -1
- data/lib/ribose.rb +3 -0
- data/spec/fixtures/calendar_event.json +48 -0
- data/spec/fixtures/conversation.json +1 -1
- data/spec/fixtures/event_created.json +21 -0
- data/spec/fixtures/event_updated.json +23 -0
- data/spec/fixtures/file_version.json +14 -0
- data/spec/fixtures/space_categories.json +150 -0
- data/spec/fixtures/space_file_icon.json +4 -0
- data/spec/ribose/conversation_spec.rb +14 -0
- data/spec/ribose/event_spec.rb +85 -0
- data/spec/ribose/file_version_spec.rb +20 -0
- data/spec/ribose/space_category_spec.rb +13 -0
- data/spec/ribose/space_file_spec.rb +13 -0
- data/spec/support/fake_ribose_api.rb +61 -0
- metadata +15 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: b7c4b6c53a6c8d7f9a5648e1aa4cb0bf8e37ffa9cac3d9d1fecd5c6fbbc1c81a
|
4
|
+
data.tar.gz: 3a8eaac73e14e834ce155b3e2ca1c4ac1593d0925ad26dc61085c0a570f0883e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 1fe42b371ab20c599bc152089f439aebd1ad02c5e04dccdef71b64e5b353b3c88984dfe2d4b088ebe5d75e27d54d6ebc433dae3ebadfc5531abe9167a21c79c4
|
7
|
+
data.tar.gz: a6dd3241989f1499e3ee48710f8118eeafc886f4716cf3e59ef75a128eec2ae057073d7a5f39f23749744da25aa334b927afbdcabfd1991c50572a557f7b872f
|
data/README.md
CHANGED
@@ -231,6 +231,12 @@ Ribose::SpaceFile.all(space_id, options)
|
|
231
231
|
Ribose::SpaceFile.fetch(space_id, file_id, options = {})
|
232
232
|
```
|
233
233
|
|
234
|
+
#### Fetch a file icon
|
235
|
+
|
236
|
+
```ruby
|
237
|
+
Ribose::SpaceFile.fetch_icon(space_id, file_id, options = {})
|
238
|
+
```
|
239
|
+
|
234
240
|
#### Create a file upload
|
235
241
|
|
236
242
|
```ruby
|
@@ -249,6 +255,16 @@ Ribose::SpaceFile.update(space_id, file_id, new_file_attributes = {})
|
|
249
255
|
Ribose::SpaceFile.delete(space_id, file_id)
|
250
256
|
```
|
251
257
|
|
258
|
+
### File Version
|
259
|
+
|
260
|
+
#### Fetch file version
|
261
|
+
|
262
|
+
```ruby
|
263
|
+
Ribose::FileVersion.fetch(
|
264
|
+
space_id: space_id, file_id: file_id, version_id: version_id
|
265
|
+
)
|
266
|
+
```
|
267
|
+
|
252
268
|
### Conversations
|
253
269
|
|
254
270
|
#### Listing Space Conversations
|
@@ -283,6 +299,12 @@ Ribose::Conversation.update(space_id, conversation_id, new_attributes_hash)
|
|
283
299
|
Ribose::Conversation.destroy(space_id: "space_id", conversation_id: "12345")
|
284
300
|
```
|
285
301
|
|
302
|
+
#### Mark a conversation as favorite
|
303
|
+
|
304
|
+
```ruby
|
305
|
+
Ribose::Conversation.mark_as_favorite(space_id, conversation_id)
|
306
|
+
```
|
307
|
+
|
286
308
|
### Message
|
287
309
|
|
288
310
|
#### List Conversation Messages
|
@@ -556,6 +578,53 @@ Ribose::Calendar.create(
|
|
556
578
|
Ribose::Calendar.delete(calendar_id)
|
557
579
|
```
|
558
580
|
|
581
|
+
### Event
|
582
|
+
|
583
|
+
#### List calendar events
|
584
|
+
|
585
|
+
```ruby
|
586
|
+
Ribose::Event.all(calendar_id)
|
587
|
+
```
|
588
|
+
|
589
|
+
#### Fetch a calendar event
|
590
|
+
|
591
|
+
```ruby
|
592
|
+
Ribose::Event.fetch(calendar_id, event_id)
|
593
|
+
```
|
594
|
+
|
595
|
+
#### Create a calendar event
|
596
|
+
|
597
|
+
```ruby
|
598
|
+
Ribose::Event.create(
|
599
|
+
calendar_id,
|
600
|
+
name: "Sample Event",
|
601
|
+
date_start: "04/04/2018",
|
602
|
+
time_start: "4:30pm",
|
603
|
+
date_finish: "04/04/2018",
|
604
|
+
time_finish: "5:30pm",
|
605
|
+
recurring_type: "not_repeat",
|
606
|
+
until: "never",
|
607
|
+
repeat_every: "1",
|
608
|
+
where: "Skype",
|
609
|
+
description: "Sample event",
|
610
|
+
all_day: false,
|
611
|
+
)
|
612
|
+
```
|
613
|
+
|
614
|
+
#### Update a calendar event
|
615
|
+
|
616
|
+
```ruby
|
617
|
+
Ribose::Event.update(
|
618
|
+
calendar_id, event_id, new_attributes_hash, options_params
|
619
|
+
)
|
620
|
+
```
|
621
|
+
|
622
|
+
#### Delete a calendar event
|
623
|
+
|
624
|
+
```ruby
|
625
|
+
Ribose::Event.delete(calendar_id, event_id)
|
626
|
+
```
|
627
|
+
|
559
628
|
### User
|
560
629
|
|
561
630
|
#### Create a signup request
|
@@ -610,6 +679,14 @@ Ribose::Wiki.update(
|
|
610
679
|
Ribose::Wiki.delete(space_id, wiki_id)
|
611
680
|
```
|
612
681
|
|
682
|
+
### Space categories
|
683
|
+
|
684
|
+
#### List space categories
|
685
|
+
|
686
|
+
```ruby
|
687
|
+
Ribose::SpaceCategory.all
|
688
|
+
```
|
689
|
+
|
613
690
|
## Development
|
614
691
|
|
615
692
|
We are following Sandi Metz's Rules for this gem, you can read the
|
data/lib/ribose/calendar.rb
CHANGED
@@ -14,14 +14,14 @@ module Ribose
|
|
14
14
|
# @params length [Integer] How many days to fetch
|
15
15
|
# @return [Sawyer::Resource] The calendar events
|
16
16
|
#
|
17
|
-
def self.fetch(calendar_ids, start: Date.today, length: 7)
|
17
|
+
def self.fetch(calendar_ids, start: Date.today, length: 7, **others)
|
18
18
|
query = {
|
19
19
|
length: length,
|
20
20
|
cal_ids: Ribose.encode_ids(calendar_ids),
|
21
21
|
start: start.to_time.to_i / (60 * 60 * 24),
|
22
22
|
}
|
23
23
|
|
24
|
-
super(nil, query: query)
|
24
|
+
super(nil, query: others.merge(query))
|
25
25
|
end
|
26
26
|
|
27
27
|
private
|
data/lib/ribose/conversation.rb
CHANGED
@@ -62,6 +62,24 @@ module Ribose
|
|
62
62
|
new(space_id: space_id, conversation_id: conversation_id, **opts).delete
|
63
63
|
end
|
64
64
|
|
65
|
+
def mark_as_favorite
|
66
|
+
response = Ribose::Request.put(
|
67
|
+
"#{resource_path}/mark_as_favorite",
|
68
|
+
resource_key.to_sym => { is_favorite: true },
|
69
|
+
)
|
70
|
+
|
71
|
+
response[resource]
|
72
|
+
end
|
73
|
+
|
74
|
+
# Mark a conversation a favorite
|
75
|
+
#
|
76
|
+
# @param space_id [String] The Space UUID
|
77
|
+
# @param conversation_id [String] Conversation UUID
|
78
|
+
#
|
79
|
+
def self.mark_as_favorite(space_id, conversation_id)
|
80
|
+
new(space_id: space_id, conversation_id: conversation_id).mark_as_favorite
|
81
|
+
end
|
82
|
+
|
65
83
|
private
|
66
84
|
|
67
85
|
attr_reader :space_id, :conversation_id
|
data/lib/ribose/event.rb
ADDED
@@ -0,0 +1,86 @@
|
|
1
|
+
module Ribose
|
2
|
+
class Event < Ribose::Base
|
3
|
+
include Ribose::Actions::Fetch
|
4
|
+
include Ribose::Actions::Create
|
5
|
+
include Ribose::Actions::Update
|
6
|
+
include Ribose::Actions::Delete
|
7
|
+
|
8
|
+
# List calendar events
|
9
|
+
#
|
10
|
+
# @params calendar_id [Integer] Calendar Ids
|
11
|
+
# @params options [Hash] The options parameters
|
12
|
+
# @return [Sawyer::Resource] Calendar Events
|
13
|
+
#
|
14
|
+
def self.all(calendar_id, options = {})
|
15
|
+
Ribose::Calendar.fetch(calendar_id, options)
|
16
|
+
end
|
17
|
+
|
18
|
+
# Fetch a calendar event
|
19
|
+
#
|
20
|
+
# @params calendar_id - The calendar ID
|
21
|
+
# @params event_id - The calendar event ID
|
22
|
+
# @return [Sawyer::Resource] Event details
|
23
|
+
#
|
24
|
+
def self.fetch(calendar_id, event_id, options = {})
|
25
|
+
new(options.merge(calendar_id: calendar_id, resource_id: event_id)).fetch
|
26
|
+
end
|
27
|
+
|
28
|
+
# Create a calendar event
|
29
|
+
#
|
30
|
+
# @params calendar_id - The calendar Id
|
31
|
+
# @attributes [Hash] - New Event attributes
|
32
|
+
# @return [Sawyer::Resource] The new event
|
33
|
+
#
|
34
|
+
def self.create(calendar_id, attrs, options = {})
|
35
|
+
new(options.merge(calendar_id: calendar_id, **attrs)).create["events"]
|
36
|
+
end
|
37
|
+
|
38
|
+
# Update a calendar event
|
39
|
+
#
|
40
|
+
# @params calendar_id [Integer] The calendar Id
|
41
|
+
# @params event_id [Integer] The calendar event Id
|
42
|
+
# @params attributes [Hash] New attributes for event
|
43
|
+
# @params options [Hash] The additional query params
|
44
|
+
#
|
45
|
+
def self.update(calendar_id, event_id, attributes, options = {})
|
46
|
+
new(options.merge(
|
47
|
+
calendar_id: calendar_id, resource_id: event_id, **attributes,
|
48
|
+
)).update["events"]
|
49
|
+
end
|
50
|
+
|
51
|
+
# Delete a calendar event
|
52
|
+
#
|
53
|
+
# @params calendar_id The calendar Id
|
54
|
+
# @params event_id The calendar event Id
|
55
|
+
# @params options [Hash] The query params
|
56
|
+
#
|
57
|
+
def self.delete(calendar_id, event_id, options = {})
|
58
|
+
new(options.merge(calendar_id: calendar_id, resource_id: event_id)).delete
|
59
|
+
end
|
60
|
+
|
61
|
+
private
|
62
|
+
|
63
|
+
attr_reader :calendar_id
|
64
|
+
|
65
|
+
def resource
|
66
|
+
"event"
|
67
|
+
end
|
68
|
+
|
69
|
+
def validate(date_start:, date_finish:, time_start:, time_finish:, **others)
|
70
|
+
others.merge(
|
71
|
+
date_start: date_start,
|
72
|
+
time_start: time_start,
|
73
|
+
date_finish: date_finish,
|
74
|
+
time_finish: time_finish,
|
75
|
+
)
|
76
|
+
end
|
77
|
+
|
78
|
+
def extract_local_attributes
|
79
|
+
@calendar_id = attributes.delete(:calendar_id)
|
80
|
+
end
|
81
|
+
|
82
|
+
def resources_path
|
83
|
+
"calendar/calendar/#{calendar_id}/event"
|
84
|
+
end
|
85
|
+
end
|
86
|
+
end
|
@@ -0,0 +1,42 @@
|
|
1
|
+
module Ribose
|
2
|
+
class FileVersion < Ribose::Base
|
3
|
+
include Ribose::Actions::Fetch
|
4
|
+
|
5
|
+
# Fetch file version
|
6
|
+
#
|
7
|
+
# @params :space_id [UUID] The space Id
|
8
|
+
# @params :file_id [UUID] The space file Id
|
9
|
+
# @params :version_id [UUID] The file version Id
|
10
|
+
# @returns [Sawyer::Resource] The file version
|
11
|
+
#
|
12
|
+
def self.fetch(space_id:, file_id:, version_id:, **options)
|
13
|
+
new(
|
14
|
+
file_id: file_id,
|
15
|
+
space_id: space_id,
|
16
|
+
resource_id: version_id,
|
17
|
+
**options,
|
18
|
+
).fetch
|
19
|
+
end
|
20
|
+
|
21
|
+
private
|
22
|
+
|
23
|
+
attr_reader :file_id, :space_id
|
24
|
+
|
25
|
+
def resource
|
26
|
+
nil
|
27
|
+
end
|
28
|
+
|
29
|
+
def extract_local_attributes
|
30
|
+
@file_id = attributes.delete(:file_id)
|
31
|
+
@space_id = attributes.delete(:space_id)
|
32
|
+
end
|
33
|
+
|
34
|
+
def resource_path
|
35
|
+
[files_path, file_id, "versions", resource_id].join("/")
|
36
|
+
end
|
37
|
+
|
38
|
+
def files_path
|
39
|
+
["spaces", space_id, "file", "files"].join("/")
|
40
|
+
end
|
41
|
+
end
|
42
|
+
end
|
data/lib/ribose/space_file.rb
CHANGED
@@ -66,6 +66,20 @@ module Ribose
|
|
66
66
|
new(space_id: space_id, resource_id: file_id, **options).delete
|
67
67
|
end
|
68
68
|
|
69
|
+
def fetch_icon
|
70
|
+
Ribose::Request.get([resource_path, "icon"].join("/"))
|
71
|
+
end
|
72
|
+
|
73
|
+
# Fetch a space file icon
|
74
|
+
#
|
75
|
+
# @param space_id [String] The Space UUID
|
76
|
+
# @param file_id [String] The space file ID
|
77
|
+
# @return [Sawyer::Resource]
|
78
|
+
#
|
79
|
+
def self.fetch_icon(space_id, file_id, options = {})
|
80
|
+
new(space_id: space_id, resource_id: file_id, **options).fetch_icon
|
81
|
+
end
|
82
|
+
|
69
83
|
private
|
70
84
|
|
71
85
|
attr_reader :space_id
|
data/lib/ribose/version.rb
CHANGED
data/lib/ribose.rb
CHANGED
@@ -0,0 +1,48 @@
|
|
1
|
+
{
|
2
|
+
"filter": {
|
3
|
+
"enabled": [
|
4
|
+
123456789
|
5
|
+
],
|
6
|
+
"userSetting": [0]
|
7
|
+
},
|
8
|
+
"cal_info": [
|
9
|
+
{
|
10
|
+
"id": 123456789,
|
11
|
+
"owner_type": "User",
|
12
|
+
"name": "johndoe",
|
13
|
+
"owner_id": "2970d105-5ccc-4a8c",
|
14
|
+
"owner_name": "Personal",
|
15
|
+
"display_name": "johndoe (Personal)",
|
16
|
+
"can_manage": true,
|
17
|
+
"can_create_event": true
|
18
|
+
}
|
19
|
+
],
|
20
|
+
"spaces_permission": {
|
21
|
+
"268b0407-c3a3-4aad-8693-fdba789f7f0d": false,
|
22
|
+
"457e8438-1c6f-423f-8bf2-77b9d5102fb0": true,
|
23
|
+
"52e47e18-9a9d-4663-94c5-abcb18fa783a": true,
|
24
|
+
"a45387e2-a573-48ba-8df0-f1424d8a8ec9": false,
|
25
|
+
"a7f7b94e-a007-4457-868f-5af319706ad5": false
|
26
|
+
},
|
27
|
+
"event": {
|
28
|
+
"id": 456789,
|
29
|
+
"name": "Sample event",
|
30
|
+
"description": "",
|
31
|
+
"where": "",
|
32
|
+
"all_day": true,
|
33
|
+
"recurring_type": "not_repeat",
|
34
|
+
"my_note": null,
|
35
|
+
"old_head_id": null,
|
36
|
+
"calendar_id": 123456789,
|
37
|
+
"created_by": "2970d105-5ccc-4a8c-b0c4-ec32d539a00a",
|
38
|
+
"utc_start": "2018-03-13T12:00:00.000Z",
|
39
|
+
"utc_finish": "2018-03-13T13:00:00.000Z",
|
40
|
+
"utc_old_start": null,
|
41
|
+
"utc_old_finish": null,
|
42
|
+
"can_save": true,
|
43
|
+
"can_delete": true,
|
44
|
+
"timestamp": 1520690119
|
45
|
+
},
|
46
|
+
"head_event": null,
|
47
|
+
"recurring": []
|
48
|
+
}
|
@@ -0,0 +1,21 @@
|
|
1
|
+
{
|
2
|
+
"events": {
|
3
|
+
"id": 789012345,
|
4
|
+
"name": "Sample Event",
|
5
|
+
"description": "Sample event",
|
6
|
+
"where": "Skype",
|
7
|
+
"all_day": false,
|
8
|
+
"recurring_type": "not_repeat",
|
9
|
+
"my_note": null,
|
10
|
+
"old_head_id": null,
|
11
|
+
"calendar_id": 18987,
|
12
|
+
"created_by": "2970d105-5ccc",
|
13
|
+
"utc_start": "2018-04-04T18:00:00.000Z",
|
14
|
+
"utc_finish": "2018-04-04T18:30:00.000Z",
|
15
|
+
"utc_old_start": null,
|
16
|
+
"utc_old_finish": null,
|
17
|
+
"can_save": true,
|
18
|
+
"can_delete": true,
|
19
|
+
"timestamp": 1521387260
|
20
|
+
}
|
21
|
+
}
|
@@ -0,0 +1,23 @@
|
|
1
|
+
{
|
2
|
+
"events": [
|
3
|
+
{
|
4
|
+
"id": 345678901,
|
5
|
+
"name": "Sample event",
|
6
|
+
"description": "",
|
7
|
+
"where": "",
|
8
|
+
"all_day": true,
|
9
|
+
"recurring_type": "not_repeat",
|
10
|
+
"my_note": "",
|
11
|
+
"old_head_id": null,
|
12
|
+
"calendar_id": 123456789,
|
13
|
+
"created_by": "bdc6aced-f7d0-465d-9d8b",
|
14
|
+
"utc_start": "2017-11-07T12:00:00.000Z",
|
15
|
+
"utc_finish": "2017-11-07T13:00:00.000Z",
|
16
|
+
"utc_old_start": null,
|
17
|
+
"utc_old_finish": null,
|
18
|
+
"can_save": true,
|
19
|
+
"can_delete": true,
|
20
|
+
"timestamp": 1508401619
|
21
|
+
}
|
22
|
+
]
|
23
|
+
}
|
@@ -0,0 +1,14 @@
|
|
1
|
+
{
|
2
|
+
"version": 1,
|
3
|
+
"name": "sample.png",
|
4
|
+
"description": "",
|
5
|
+
"created_at": "2017-11-30T09:12:03.000+00:00",
|
6
|
+
"updated_at": "2017-11-30T09:12:05.000+00:00",
|
7
|
+
"position": 1,
|
8
|
+
"current_version_id": 789012,
|
9
|
+
"icon_path": "/spaces/456789/file/files/11570/versions/13235?type=usual",
|
10
|
+
"content_size": 81421,
|
11
|
+
"author": "John Doe",
|
12
|
+
"content_type": "image/png",
|
13
|
+
"file_info_id": 11570
|
14
|
+
}
|
@@ -0,0 +1,150 @@
|
|
1
|
+
[
|
2
|
+
{
|
3
|
+
"id": 1,
|
4
|
+
"name": "animals"
|
5
|
+
},
|
6
|
+
{
|
7
|
+
"id": 2,
|
8
|
+
"name": "architecture"
|
9
|
+
},
|
10
|
+
{
|
11
|
+
"id": 3,
|
12
|
+
"name": "art"
|
13
|
+
},
|
14
|
+
{
|
15
|
+
"id": 4,
|
16
|
+
"name": "business"
|
17
|
+
},
|
18
|
+
{
|
19
|
+
"id": 5,
|
20
|
+
"name": "cars_and_motorcycles"
|
21
|
+
},
|
22
|
+
{
|
23
|
+
"id": 6,
|
24
|
+
"name": "common_interest"
|
25
|
+
},
|
26
|
+
{
|
27
|
+
"id": 7,
|
28
|
+
"name": "diy_and_crafts"
|
29
|
+
},
|
30
|
+
{
|
31
|
+
"id": 8,
|
32
|
+
"name": "design"
|
33
|
+
},
|
34
|
+
{
|
35
|
+
"id": 9,
|
36
|
+
"name": "education"
|
37
|
+
},
|
38
|
+
{
|
39
|
+
"id": 10,
|
40
|
+
"name": "entertainment"
|
41
|
+
},
|
42
|
+
{
|
43
|
+
"id": 11,
|
44
|
+
"name": "fashion"
|
45
|
+
},
|
46
|
+
{
|
47
|
+
"id": 12,
|
48
|
+
"name": "film_music_books"
|
49
|
+
},
|
50
|
+
{
|
51
|
+
"id": 13,
|
52
|
+
"name": "food_and_drink"
|
53
|
+
},
|
54
|
+
{
|
55
|
+
"id": 14,
|
56
|
+
"name": "gardening"
|
57
|
+
},
|
58
|
+
{
|
59
|
+
"id": 15,
|
60
|
+
"name": "geek"
|
61
|
+
},
|
62
|
+
{
|
63
|
+
"id": 16,
|
64
|
+
"name": "geography"
|
65
|
+
},
|
66
|
+
{
|
67
|
+
"id": 17,
|
68
|
+
"name": "groups_and_organizations"
|
69
|
+
},
|
70
|
+
{
|
71
|
+
"id": 18,
|
72
|
+
"name": "hair_and_beauty"
|
73
|
+
},
|
74
|
+
{
|
75
|
+
"id": 19,
|
76
|
+
"name": "health_and_fitness"
|
77
|
+
},
|
78
|
+
{
|
79
|
+
"id": 20,
|
80
|
+
"name": "history"
|
81
|
+
},
|
82
|
+
{
|
83
|
+
"id": 21,
|
84
|
+
"name": "holidays_and_events"
|
85
|
+
},
|
86
|
+
{
|
87
|
+
"id": 22,
|
88
|
+
"name": "home_decor"
|
89
|
+
},
|
90
|
+
{
|
91
|
+
"id": 23,
|
92
|
+
"name": "humor"
|
93
|
+
},
|
94
|
+
{
|
95
|
+
"id": 24,
|
96
|
+
"name": "illustrations_and_posters"
|
97
|
+
},
|
98
|
+
{
|
99
|
+
"id": 25,
|
100
|
+
"name": "kids"
|
101
|
+
},
|
102
|
+
{
|
103
|
+
"id": 26,
|
104
|
+
"name": "mens_fashion"
|
105
|
+
},
|
106
|
+
{
|
107
|
+
"id": 27,
|
108
|
+
"name": "outdoors"
|
109
|
+
},
|
110
|
+
{
|
111
|
+
"id": 28,
|
112
|
+
"name": "philosophy"
|
113
|
+
},
|
114
|
+
{
|
115
|
+
"id": 29,
|
116
|
+
"name": "photography"
|
117
|
+
},
|
118
|
+
{
|
119
|
+
"id": 30,
|
120
|
+
"name": "products"
|
121
|
+
},
|
122
|
+
{
|
123
|
+
"id": 31,
|
124
|
+
"name": "religion_and_spirituality"
|
125
|
+
},
|
126
|
+
{
|
127
|
+
"id": 32,
|
128
|
+
"name": "science_and_nature"
|
129
|
+
},
|
130
|
+
{
|
131
|
+
"id": 33,
|
132
|
+
"name": "sports"
|
133
|
+
},
|
134
|
+
{
|
135
|
+
"id": 34,
|
136
|
+
"name": "technology"
|
137
|
+
},
|
138
|
+
{
|
139
|
+
"id": 35,
|
140
|
+
"name": "travel"
|
141
|
+
},
|
142
|
+
{
|
143
|
+
"id": 36,
|
144
|
+
"name": "weddings"
|
145
|
+
},
|
146
|
+
{
|
147
|
+
"id": 37,
|
148
|
+
"name": "others"
|
149
|
+
}
|
150
|
+
]
|
@@ -59,6 +59,20 @@ RSpec.describe Ribose::Conversation do
|
|
59
59
|
end
|
60
60
|
end
|
61
61
|
|
62
|
+
describe ".mark_as_favorite" do
|
63
|
+
it "marks a conversation as favorite" do
|
64
|
+
space_id = 123_456_789
|
65
|
+
conversation_id = 456_789
|
66
|
+
stub_ribose_space_conversation_mafav_api(space_id, conversation_id)
|
67
|
+
|
68
|
+
conversation = Ribose::Conversation.mark_as_favorite(
|
69
|
+
space_id, conversation_id
|
70
|
+
)
|
71
|
+
|
72
|
+
expect(conversation.is_favorite).to eq(true)
|
73
|
+
end
|
74
|
+
end
|
75
|
+
|
62
76
|
describe ".destroy" do
|
63
77
|
it "remvoes a conversation from a space" do
|
64
78
|
space_id = 123456789
|
@@ -0,0 +1,85 @@
|
|
1
|
+
require "spec_helper"
|
2
|
+
|
3
|
+
RSpec.describe Ribose::Event do
|
4
|
+
describe ".all" do
|
5
|
+
it "retrieves the list of events" do
|
6
|
+
calendar_id = 123
|
7
|
+
stub_ribose_calendar_events_api(calendar_id)
|
8
|
+
|
9
|
+
calendar_events = Ribose::Event.all(calendar_id).events
|
10
|
+
|
11
|
+
expect(calendar_events.first.id).not_to be_nil
|
12
|
+
expect(calendar_events.first.calendar_id).to eq(123)
|
13
|
+
expect(calendar_events.first.name).to eq("Sample event")
|
14
|
+
end
|
15
|
+
end
|
16
|
+
|
17
|
+
describe ".fetch" do
|
18
|
+
it "retrives the details for an event" do
|
19
|
+
event_id = 456_789
|
20
|
+
calendar_id = 123_456_789
|
21
|
+
|
22
|
+
stub_ribose_event_fetch_api(calendar_id, event_id)
|
23
|
+
event = Ribose::Event.fetch(calendar_id, event_id)
|
24
|
+
|
25
|
+
expect(event.id).to eq(event_id)
|
26
|
+
expect(event.name).to eq("Sample event")
|
27
|
+
expect(event.calendar_id).to eq(calendar_id)
|
28
|
+
end
|
29
|
+
end
|
30
|
+
|
31
|
+
describe ".create" do
|
32
|
+
it "creates a new event" do
|
33
|
+
calendar_id = 123_456_789
|
34
|
+
|
35
|
+
stub_ribose_event_create_api(calendar_id, event_attributes)
|
36
|
+
event = Ribose::Event.create(calendar_id, event_attributes)
|
37
|
+
|
38
|
+
expect(event.id).not_to be_nil
|
39
|
+
expect(event.name).to eq(event_attributes[:name])
|
40
|
+
expect(event.description).to eq(event_attributes[:description])
|
41
|
+
end
|
42
|
+
end
|
43
|
+
|
44
|
+
describe ".update" do
|
45
|
+
it "updates an existing event" do
|
46
|
+
event_id = 345_678_901
|
47
|
+
calendar_id = 123_456_789
|
48
|
+
|
49
|
+
stub_ribose_event_update_api(calendar_id, event_id, event_attributes)
|
50
|
+
event = Ribose::Event.update(calendar_id, event_id, event_attributes)
|
51
|
+
|
52
|
+
expect(event.first.id).not_to be_nil
|
53
|
+
expect(event.first.name).to eq("Sample event")
|
54
|
+
end
|
55
|
+
end
|
56
|
+
|
57
|
+
describe ".delete" do
|
58
|
+
it "removes a calendar event" do
|
59
|
+
event_id = 456_789
|
60
|
+
calendar_id = 123_456_789
|
61
|
+
stub_ribose_event_delete_api(calendar_id, event_id)
|
62
|
+
|
63
|
+
expect do
|
64
|
+
Ribose::Event.delete(calendar_id, event_id)
|
65
|
+
end.not_to raise_error
|
66
|
+
end
|
67
|
+
end
|
68
|
+
|
69
|
+
def event_attributes
|
70
|
+
@event_attributes ||= {
|
71
|
+
name: "Sample Event",
|
72
|
+
recurring_type: "not_repeat",
|
73
|
+
until: "never",
|
74
|
+
repeat_every: "1",
|
75
|
+
where: "Skype",
|
76
|
+
description: "Sample event",
|
77
|
+
all_day: false,
|
78
|
+
|
79
|
+
date_start: "04/04/2018",
|
80
|
+
time_start: "4:30pm",
|
81
|
+
date_finish: "04/04/2018",
|
82
|
+
time_finish: "5:30pm",
|
83
|
+
}
|
84
|
+
end
|
85
|
+
end
|
@@ -0,0 +1,20 @@
|
|
1
|
+
require "spec_helper"
|
2
|
+
|
3
|
+
RSpec.describe Ribose::FileVersion do
|
4
|
+
describe ".fetch" do
|
5
|
+
it "retrieves the details of a file version" do
|
6
|
+
file_id = 123_456
|
7
|
+
space_id = 456_789
|
8
|
+
version_id = 789_012
|
9
|
+
|
10
|
+
stub_ribose_file_version_fetch_api(space_id, file_id, version_id)
|
11
|
+
file_version = Ribose::FileVersion.fetch(
|
12
|
+
space_id: space_id, file_id: file_id, version_id: version_id,
|
13
|
+
)
|
14
|
+
|
15
|
+
expect(file_version.version).to eq(1)
|
16
|
+
expect(file_version.author).to eq("John Doe")
|
17
|
+
expect(file_version.current_version_id).to eq(789012)
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
@@ -0,0 +1,13 @@
|
|
1
|
+
require "spec_helper"
|
2
|
+
|
3
|
+
RSpec.describe Ribose::SpaceCategory do
|
4
|
+
describe ".all" do
|
5
|
+
it "retrieves the list of space categories" do
|
6
|
+
stub_ribose_space_categories_api
|
7
|
+
categories = Ribose::SpaceCategory.all
|
8
|
+
|
9
|
+
expect(categories.first.id).not_to be_nil
|
10
|
+
expect(categories.first.name).to eq("animals")
|
11
|
+
end
|
12
|
+
end
|
13
|
+
end
|
@@ -67,6 +67,19 @@ RSpec.describe Ribose::SpaceFile do
|
|
67
67
|
end
|
68
68
|
end
|
69
69
|
|
70
|
+
describe ".fetch_icon" do
|
71
|
+
it "retrives the details for a file icon" do
|
72
|
+
file_id = 456_789_012
|
73
|
+
space_id = 123_456_789
|
74
|
+
|
75
|
+
stub_ribose_space_file_fetch_icon_api(space_id, file_id)
|
76
|
+
icon = Ribose::SpaceFile.fetch_icon(space_id, file_id)
|
77
|
+
|
78
|
+
expect(icon.icon_processed).to be_truthy
|
79
|
+
expect(icon.icon_path).to eq("/spaces/files/icon_path?type=usual")
|
80
|
+
end
|
81
|
+
end
|
82
|
+
|
70
83
|
def file_attributes
|
71
84
|
{
|
72
85
|
file: sample_fixture_file,
|
@@ -127,6 +127,40 @@ module Ribose
|
|
127
127
|
)
|
128
128
|
end
|
129
129
|
|
130
|
+
def stub_ribose_event_fetch_api(calender_id, event_id)
|
131
|
+
stub_api_response(
|
132
|
+
:get,
|
133
|
+
"calendar/calendar/#{calender_id}/event/#{event_id}",
|
134
|
+
filename: "calendar_event",
|
135
|
+
)
|
136
|
+
end
|
137
|
+
|
138
|
+
def stub_ribose_event_create_api(calender_id, event_attributes)
|
139
|
+
stub_api_response(
|
140
|
+
:post,
|
141
|
+
"calendar/calendar/#{calender_id}/event",
|
142
|
+
data: { event: event_attributes },
|
143
|
+
filename: "event_created",
|
144
|
+
)
|
145
|
+
end
|
146
|
+
|
147
|
+
def stub_ribose_event_update_api(calender_id, event_id, attributes)
|
148
|
+
stub_api_response(
|
149
|
+
:put,
|
150
|
+
"calendar/calendar/#{calender_id}/event/#{event_id}",
|
151
|
+
data: { event: attributes },
|
152
|
+
filename: "event_updated",
|
153
|
+
)
|
154
|
+
end
|
155
|
+
|
156
|
+
def stub_ribose_event_delete_api(calender_id, event_id)
|
157
|
+
stub_api_response(
|
158
|
+
:delete,
|
159
|
+
"calendar/calendar/#{calender_id}/event/#{event_id}",
|
160
|
+
filename: "empty",
|
161
|
+
)
|
162
|
+
end
|
163
|
+
|
130
164
|
def stub_ribose_app_user_create_api(attributes)
|
131
165
|
stub_api_response(
|
132
166
|
:post,
|
@@ -159,6 +193,11 @@ module Ribose
|
|
159
193
|
stub_api_response(:get, file_endppoint, filename: "space_file")
|
160
194
|
end
|
161
195
|
|
196
|
+
def stub_ribose_space_file_fetch_icon_api(space_id, file_id)
|
197
|
+
path = ["spaces", space_id, "file", "files", file_id, "icon"].join("/")
|
198
|
+
stub_api_response(:get, path, filename: "space_file_icon")
|
199
|
+
end
|
200
|
+
|
162
201
|
def stub_ribose_space_file_update_api(space_id, file_id, attributes)
|
163
202
|
stub_api_response(
|
164
203
|
:put,
|
@@ -173,6 +212,14 @@ module Ribose
|
|
173
212
|
stub_api_response(:delete, file_endppoint, filename: "empty")
|
174
213
|
end
|
175
214
|
|
215
|
+
def stub_ribose_file_version_fetch_api(sid, fid, vid)
|
216
|
+
stub_api_response(
|
217
|
+
:get,
|
218
|
+
["spaces", sid, "file/files", fid, "versions", vid].join("/"),
|
219
|
+
filename: "file_version",
|
220
|
+
)
|
221
|
+
end
|
222
|
+
|
176
223
|
def stub_ribose_space_conversation_list(space_id)
|
177
224
|
stub_api_response(
|
178
225
|
:get, conversations_path(space_id), filename: "conversations"
|
@@ -207,6 +254,14 @@ module Ribose
|
|
207
254
|
)
|
208
255
|
end
|
209
256
|
|
257
|
+
def stub_ribose_space_conversation_mafav_api(sid, cid)
|
258
|
+
stub_api_response(
|
259
|
+
:put,
|
260
|
+
[conversations_path(sid), cid, "mark_as_favorite"].join("/"),
|
261
|
+
filename: "conversation",
|
262
|
+
)
|
263
|
+
end
|
264
|
+
|
210
265
|
def stub_ribose_space_conversation_remove(space_id, conversation_id)
|
211
266
|
path = [conversations_path(space_id), conversation_id].join("/")
|
212
267
|
stub_api_response(:delete, path, filename: "empty", status: 200)
|
@@ -433,6 +488,12 @@ module Ribose
|
|
433
488
|
)
|
434
489
|
end
|
435
490
|
|
491
|
+
def stub_ribose_space_categories_api
|
492
|
+
stub_api_response(
|
493
|
+
:get, "space_categories", filename: "space_categories"
|
494
|
+
)
|
495
|
+
end
|
496
|
+
|
436
497
|
private
|
437
498
|
|
438
499
|
def ribose_endpoint(endpoint)
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ribose
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.3.
|
4
|
+
version: 0.3.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ribose Inc.
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2018-
|
11
|
+
date: 2018-06-20 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: id_pack
|
@@ -176,8 +176,10 @@ files:
|
|
176
176
|
- lib/ribose/connection_invitation.rb
|
177
177
|
- lib/ribose/conversation.rb
|
178
178
|
- lib/ribose/error.rb
|
179
|
+
- lib/ribose/event.rb
|
179
180
|
- lib/ribose/feed.rb
|
180
181
|
- lib/ribose/file_uploader.rb
|
182
|
+
- lib/ribose/file_version.rb
|
181
183
|
- lib/ribose/join_space_request.rb
|
182
184
|
- lib/ribose/leaderboard.rb
|
183
185
|
- lib/ribose/member.rb
|
@@ -191,6 +193,7 @@ files:
|
|
191
193
|
- lib/ribose/session.rb
|
192
194
|
- lib/ribose/setting.rb
|
193
195
|
- lib/ribose/space.rb
|
196
|
+
- lib/ribose/space_category.rb
|
194
197
|
- lib/ribose/space_file.rb
|
195
198
|
- lib/ribose/space_invitation.rb
|
196
199
|
- lib/ribose/stream.rb
|
@@ -203,6 +206,7 @@ files:
|
|
203
206
|
- spec/fixtures/app_relation.json
|
204
207
|
- spec/fixtures/app_relations.json
|
205
208
|
- spec/fixtures/calendar.json
|
209
|
+
- spec/fixtures/calendar_event.json
|
206
210
|
- spec/fixtures/calendar_events.json
|
207
211
|
- spec/fixtures/calendars.json
|
208
212
|
- spec/fixtures/connection_invitation.json
|
@@ -215,9 +219,12 @@ files:
|
|
215
219
|
- spec/fixtures/conversation_created.json
|
216
220
|
- spec/fixtures/conversations.json
|
217
221
|
- spec/fixtures/empty.json
|
222
|
+
- spec/fixtures/event_created.json
|
223
|
+
- spec/fixtures/event_updated.json
|
218
224
|
- spec/fixtures/feeds.json
|
219
225
|
- spec/fixtures/file_upload_prepared.json
|
220
226
|
- spec/fixtures/file_uploaded.json
|
227
|
+
- spec/fixtures/file_version.json
|
221
228
|
- spec/fixtures/general_information.json
|
222
229
|
- spec/fixtures/join_space_request.json
|
223
230
|
- spec/fixtures/join_space_request_created.json
|
@@ -235,8 +242,10 @@ files:
|
|
235
242
|
- spec/fixtures/setting.json
|
236
243
|
- spec/fixtures/settings.json
|
237
244
|
- spec/fixtures/space.json
|
245
|
+
- spec/fixtures/space_categories.json
|
238
246
|
- spec/fixtures/space_created.json
|
239
247
|
- spec/fixtures/space_file.json
|
248
|
+
- spec/fixtures/space_file_icon.json
|
240
249
|
- spec/fixtures/space_files.json
|
241
250
|
- spec/fixtures/space_invitation.json
|
242
251
|
- spec/fixtures/space_invitation_updated.json
|
@@ -261,8 +270,10 @@ files:
|
|
261
270
|
- spec/ribose/connection_spec.rb
|
262
271
|
- spec/ribose/conversation_spec.rb
|
263
272
|
- spec/ribose/error_spec.rb
|
273
|
+
- spec/ribose/event_spec.rb
|
264
274
|
- spec/ribose/feed_spec.rb
|
265
275
|
- spec/ribose/file_uploader_spec.rb
|
276
|
+
- spec/ribose/file_version_spec.rb
|
266
277
|
- spec/ribose/join_space_request_spec.rb
|
267
278
|
- spec/ribose/leaderboard_spec.rb
|
268
279
|
- spec/ribose/member_role_spec.rb
|
@@ -273,6 +284,7 @@ files:
|
|
273
284
|
- spec/ribose/resource_helper_spec.rb
|
274
285
|
- spec/ribose/session_spec.rb
|
275
286
|
- spec/ribose/setting_spec.rb
|
287
|
+
- spec/ribose/space_category_spec.rb
|
276
288
|
- spec/ribose/space_file_spec.rb
|
277
289
|
- spec/ribose/space_invitation_spec.rb
|
278
290
|
- spec/ribose/space_spec.rb
|
@@ -303,7 +315,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
303
315
|
version: '0'
|
304
316
|
requirements: []
|
305
317
|
rubyforge_project:
|
306
|
-
rubygems_version: 2.
|
318
|
+
rubygems_version: 2.7.7
|
307
319
|
signing_key:
|
308
320
|
specification_version: 4
|
309
321
|
summary: The Ruby interface for Ribose API
|