Skip to content

Commit 049d77f

Browse files
authored
app-worker and app-user (#5)
* app-worker and app-user * fix test * version 1.0.0
1 parent eadf464 commit 049d77f

File tree

11 files changed

+129
-28
lines changed

11 files changed

+129
-28
lines changed

Gemfile

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ gem 'rake', '~> 12.0'
77
gem 'rspec', '~> 3.0'
88

99
group :development do
10+
gem 'faker'
1011
gem 'pry'
1112
gem 'rubocop', require: false
1213
gem 'rubocop-rspec'

Gemfile.lock

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
PATH
22
remote: .
33
specs:
4-
cirro-ruby-client (0.1.2)
4+
cirro-ruby-client (0.1.3)
55
json_api_client
66
jwt
77

@@ -23,6 +23,8 @@ GEM
2323
concurrent-ruby (1.1.7)
2424
crack (0.4.4)
2525
diff-lcs (1.4.4)
26+
faker (2.14.0)
27+
i18n (>= 1.6, < 2)
2628
faraday (1.0.1)
2729
multipart-post (>= 1.2, < 3)
2830
faraday_middleware (1.0.0)
@@ -95,6 +97,7 @@ PLATFORMS
9597

9698
DEPENDENCIES
9799
cirro-ruby-client!
100+
faker
98101
pry
99102
rake (~> 12.0)
100103
rspec (~> 3.0)

lib/cirro_io/client.rb

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
require 'cirro_io/client/response_debugging_middleware'
55
require 'cirro_io/client/jwt_authentication'
66
require 'cirro_io/client/base'
7+
require 'cirro_io/client/app_user'
78
require 'cirro_io/client/app_worker'
89

910
module CirroIO

lib/cirro_io/client/app_user.rb

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
module CirroIO
2+
module Client
3+
class AppUser < Base
4+
def self.resource_name
5+
'app-users'
6+
end
7+
end
8+
end
9+
end

lib/cirro_io/client/app_worker.rb

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
module CirroIO
22
module Client
33
class AppWorker < Base
4+
has_one :app_user
5+
46
def self.resource_name
57
'app-workers'
68
end

lib/cirro_io/client/version.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
# rubocop:disable Style/MutableConstant
22
module CirroIO
33
module Client
4-
VERSION = '0.1.3'
4+
VERSION = '1.0.0'
55
end
66
end
77
# rubocop:enable Style/MutableConstant
Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
RSpec.describe CirroIO::Client::AppUser do
2+
describe 'create' do
3+
before do
4+
configure_api_client
5+
end
6+
7+
let(:email) { Faker::Internet.email }
8+
let(:first_name) { Faker::Name.first_name }
9+
let(:last_name) { Faker::Name.last_name }
10+
let(:password) { 'abcd12345' }
11+
let(:time_zone) { 'Berlin' }
12+
13+
it 'creates a app user' do
14+
stub_request(:post, "#{test_site}/v1/app-users")
15+
.to_return(body: File.read('./spec/fixtures/app_user.json'), headers: { 'Content-Type' => 'application/json' })
16+
17+
app_user = described_class.new(email: email,
18+
first_name: first_name,
19+
last_name: last_name,
20+
password: password,
21+
time_zone: time_zone)
22+
23+
app_user.save
24+
25+
expect(app_user).to be_valid
26+
expect(app_user.id).to eq('3')
27+
end
28+
end
29+
30+
describe 'find' do
31+
before do
32+
configure_api_client
33+
end
34+
35+
it 'finds a app user' do
36+
stub_request(:get, "#{test_site}/v1/app-users/3")
37+
.to_return(body: File.read('./spec/fixtures/app_user.json'), headers: { 'Content-Type' => 'application/json' })
38+
39+
app_user = described_class.find(3).first
40+
41+
expect(app_user.id).to eq('3')
42+
end
43+
end
44+
end
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
RSpec.describe CirroIO::Client::AppWorker do
2+
describe 'create' do
3+
before do
4+
configure_api_client
5+
end
6+
7+
it 'creates a app worker' do
8+
stub_request(:post, "#{test_site}/v1/app-workers")
9+
.to_return(body: File.read('./spec/fixtures/app_worker.json'), headers: { 'Content-Type' => 'application/json' })
10+
11+
stub_request(:get, "#{test_site}/v1/app-users/4")
12+
.to_return(body: File.read('./spec/fixtures/app_user.json'), headers: { 'Content-Type' => 'application/json' })
13+
14+
app_worker = described_class.new
15+
app_worker.app_user = CirroIO::Client::AppUser.find(4).first
16+
app_worker.worker_document = {}
17+
18+
app_worker.save
19+
20+
expect(app_worker).to be_valid
21+
expect(app_worker.id).to eq('1')
22+
end
23+
end
24+
end

spec/fixtures/app_user.json

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
{
2+
"data":{
3+
"id":"3",
4+
"type":"app-users",
5+
"links":{
6+
"self":"http:g/api.app.localhost:3000/api/v1/app-users/3"
7+
},
8+
"attributes":{
9+
"email":"[email protected]",
10+
"first-name":"Graig",
11+
"last-name":"Monahan",
12+
"time-zone":"Berlin",
13+
"screenname":"quia"
14+
}
15+
}
16+
}

spec/fixtures/private_key.pem

Lines changed: 25 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -1,27 +1,27 @@
11
-----BEGIN RSA PRIVATE KEY-----
2-
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
2727
-----END RSA PRIVATE KEY-----

0 commit comments

Comments
 (0)