lifen 0.2.0 → 0.2.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: e020ba55f8060ba2aee6a8f5a8d11be901ca23ce
4
- data.tar.gz: e70f400e649576ce7db7df4d15e9f58d15fd58ba
3
+ metadata.gz: 75f915f68d0f6d3185d5830ffb7d35519516a306
4
+ data.tar.gz: bccbde30e8be900129a9752f9735024a73335707
5
5
  SHA512:
6
- metadata.gz: 9adf3bec7ffd0a1047356ed1a046ea2e2203c6ed7bd810cf0a4e23b2cc3957acd039d9d1a941d8b34c08175d1d34a5f712ade496af6ad139e7b60186caccfb82
7
- data.tar.gz: 6d841f1e80fe39ab291a3496f339b764783910c0b9eb368721efb80869dce74c104dc182699f54b8da23a76c9af90e8310da925603f810a05c77b7073743a1c5
6
+ metadata.gz: 22b519b174c804ec29e6670be2b0dc48b595d4166af8df4537b831cef28e898f6fd1e1d5f3b9843e1ae2e8892555018262130d6112bc7c39d4debd73ea9313cb
7
+ data.tar.gz: 2416769de82ff4d2cdc68ab766e35ce6f171d6c4c41826b061efe189b70640f07ed79daa235ec418e7f37af954acbe419617e45eebf9b9f79d95a6b66780f4fd
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- lifen (0.2.0)
4
+ lifen (0.2.1)
5
5
  faraday (>= 0.9)
6
6
  virtus (>= 1.0)
7
7
 
data/README.md CHANGED
@@ -47,6 +47,9 @@ Lifen can be configured (ideally inside an initializer) like so:
47
47
  flow.attach_users!(user)
48
48
  flow.detach_users!(user)
49
49
 
50
+ flow = Lifen::Flow.new(user: user, title: "honestica Rocks !", active_users: [user_1, user_2])
51
+ flow.create
52
+
50
53
  ### Managing messages
51
54
 
52
55
  message = Lifen::Message.new(flow: flow, content: "Hello World !")
data/lib/lifen/flow.rb CHANGED
@@ -7,13 +7,35 @@ module Lifen
7
7
  attribute :active_users, Array[Lifen::User]
8
8
 
9
9
  def create
10
- json = client.post("central/api/chats", {title: title})
10
+ params = {title: title}
11
11
 
12
- flow = self.class.new(json.first)
12
+ users_to_attach = []
13
+ if !active_users.empty?
14
+ users_to_attach = active_users
15
+ params[:users] = active_users.map(&:uuid)
16
+ end
17
+
18
+ json = client.post("central/api/chats?rel=activeUsers", params)
19
+
20
+ json_flow = json.first
21
+
22
+ flow = self.class.new(json_flow)
13
23
 
14
24
  self.user = user
15
25
  self.uuid = flow.uuid
26
+
16
27
  self.active_users = []
28
+ Array(json_flow["activeUsers"]).each do |element|
29
+ element[:first_name] = element["firstName"]
30
+ element[:last_name] = element["lastName"]
31
+
32
+ self.active_users << Lifen::User.new(element)
33
+ end
34
+
35
+ users_to_attach.each do |user|
36
+ raise Lifen::Error, "User #{user.uuid} was not attached to this flow" if !active_users.map(&:uuid).include? user.uuid
37
+ end
38
+
17
39
  self.title = flow.title
18
40
 
19
41
  self
@@ -27,6 +49,9 @@ module Lifen
27
49
  json = client.post("central/api/chats/#{uuid}/attach_users?rel=activeUsers", params)
28
50
 
29
51
  Array(json["activeUsers"]).each do |element|
52
+ element[:first_name] = element["firstName"]
53
+ element[:last_name] = element["lastName"]
54
+
30
55
  self.active_users << Lifen::User.new(element)
31
56
  end
32
57
 
data/lib/lifen/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Lifen
2
- VERSION = "0.2.0"
2
+ VERSION = "0.2.1"
3
3
  end
@@ -2,7 +2,7 @@
2
2
  http_interactions:
3
3
  - request:
4
4
  method: post
5
- uri: https://develop.lifen.fr/central/api/chats
5
+ uri: https://develop.lifen.fr/central/api/chats?rel=activeUsers
6
6
  body:
7
7
  encoding: UTF-8
8
8
  string: '{"title":"Rspec Flow"}'
@@ -51,7 +51,7 @@ http_interactions:
51
51
  body:
52
52
  encoding: UTF-8
53
53
  string: '[{"uuid":"11e65eca-4af7-d795-bf1a-0242ac110002","version":0,"title":"Rspec
54
- Flow","type":"regular"}]'
54
+ Flow","type":"regular","activeUsers":[{"uuid":"11e6b876-ba09-1d98-9f4c-0242ac110002","version":0,"firstName":"User","lastName":"User","hasEmail":false,"activated":false,"registered":false}]}]'
55
55
  http_version:
56
56
  recorded_at: Wed, 10 Aug 2016 07:16:01 GMT
57
57
  recorded_with: VCR 3.0.3
@@ -0,0 +1,56 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: post
5
+ uri: https://develop.lifen.fr/central/api/chats?rel=activeUsers
6
+ body:
7
+ encoding: UTF-8
8
+ string: '{"title":"Rspec Flow","users":["11e6b877-2997-01eb-9f4c-0242ac110002"]}'
9
+ headers:
10
+ User-Agent:
11
+ - Faraday v0.10.0
12
+ X-Auth-Token:
13
+ - valid_token
14
+ Content-Type:
15
+ - application/json
16
+ Accept-Encoding:
17
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
18
+ Accept:
19
+ - "*/*"
20
+ response:
21
+ status:
22
+ code: 200
23
+ message: OK
24
+ headers:
25
+ Server:
26
+ - Apache-Coyote/1.1
27
+ X-B3-Sampled:
28
+ - '1'
29
+ X-B3-Spanid:
30
+ - 6cd65dd2be54abcb
31
+ X-B3-Traceid:
32
+ - 6cd65dd2be54abcb
33
+ X-Content-Type-Options:
34
+ - nosniff
35
+ X-Xss-Protection:
36
+ - 1; mode=block
37
+ Cache-Control:
38
+ - no-cache, no-store, max-age=0, must-revalidate
39
+ Pragma:
40
+ - no-cache
41
+ Expires:
42
+ - '0'
43
+ Content-Type:
44
+ - application/hal+json;charset=UTF-8
45
+ Transfer-Encoding:
46
+ - chunked
47
+ Date:
48
+ - Fri, 02 Dec 2016 10:48:50 GMT
49
+ Connection:
50
+ - close
51
+ body:
52
+ encoding: UTF-8
53
+ string: '[{"uuid":"11e6b878-2da2-d06c-ac0e-0242ac110002","version":0,"title":"Essai","activeUsers":[{"uuid":"11e6b876-ba09-1d98-9f4c-0242ac110002","version":0,"firstName":"User","lastName":"User","hasEmail":false,"activated":false,"registered":false},{"uuid":"11e6b877-2997-01eb-9f4c-0242ac110002","version":0,"firstName":"User","lastName":"User","hasEmail":false,"activated":false,"registered":false}],"type":"regular"}]'
54
+ http_version:
55
+ recorded_at: Fri, 02 Dec 2016 10:48:16 GMT
56
+ recorded_with: VCR 3.0.3
data/spec/flows_spec.rb CHANGED
@@ -74,6 +74,30 @@ describe Lifen::Flow do
74
74
  expect(@new_flow.title).to eq("Rspec Flow")
75
75
 
76
76
  end
77
+
78
+ context 'attaching users at the same time' do
79
+
80
+ let(:user) { Lifen::User.new(token: "valid_token", uuid: "11e6b876-ba09-1d98-9f4c-0242ac110002") }
81
+ let(:other_user) { Lifen::User.new(uuid: "11e6b877-2997-01eb-9f4c-0242ac110002") }
82
+
83
+ let(:flow) { Lifen::Flow.new(user: user, title: "Rspec Flow", active_users: [other_user]) }
84
+
85
+ it 'creates a flow with attached users' do
86
+
87
+ VCR.use_cassette "flows/create_with_users" do
88
+ flow.create
89
+ end
90
+
91
+ expect(flow.active_users.size).to eq(2)
92
+ first_user = flow.active_users.first
93
+
94
+ expect(first_user.uuid).to eq("11e6b876-ba09-1d98-9f4c-0242ac110002")
95
+ expect(first_user.first_name).to eq("User")
96
+
97
+ expect(flow.active_users.last.uuid).to eq("11e6b877-2997-01eb-9f4c-0242ac110002")
98
+ end
99
+
100
+ end
77
101
  end
78
102
 
79
103
  describe 'attach_users' do
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: lifen
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.2.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Etienne Depaulis
@@ -156,6 +156,7 @@ files:
156
156
  - spec/cassettes/flows/attach_users/invalid_user_uuid.yml
157
157
  - spec/cassettes/flows/attach_users/valid.yml
158
158
  - spec/cassettes/flows/create.yml
159
+ - spec/cassettes/flows/create_with_users.yml
159
160
  - spec/cassettes/flows/detach_users/valid.yml
160
161
  - spec/cassettes/flows/detach_users/valid_again.yml
161
162
  - spec/cassettes/flows/internal_error.yml
@@ -204,6 +205,7 @@ test_files:
204
205
  - spec/cassettes/flows/attach_users/invalid_user_uuid.yml
205
206
  - spec/cassettes/flows/attach_users/valid.yml
206
207
  - spec/cassettes/flows/create.yml
208
+ - spec/cassettes/flows/create_with_users.yml
207
209
  - spec/cassettes/flows/detach_users/valid.yml
208
210
  - spec/cassettes/flows/detach_users/valid_again.yml
209
211
  - spec/cassettes/flows/internal_error.yml