colppy 0.1.0

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.
@@ -0,0 +1,97 @@
1
+ module Colppy
2
+ module UserActions
3
+ extend self
4
+
5
+ def session_key
6
+ @user.key
7
+ end
8
+
9
+ def username
10
+ @user.username
11
+ end
12
+
13
+ def user=(new_user)
14
+ @user = new_user
15
+ end
16
+
17
+ def sign_in(user = nil)
18
+ user ||= @user
19
+ ensure_user_valid!(user)
20
+
21
+ user.sign_in(self)
22
+ end
23
+
24
+ def sign_out(user = nil)
25
+ user ||= @user
26
+ ensure_user_valid!(user)
27
+
28
+ user.sign_out(self)
29
+ end
30
+
31
+ def session_params
32
+ {
33
+ sesion: {
34
+ usuario: username,
35
+ claveSesion: session_key
36
+ }
37
+ }
38
+ end
39
+
40
+ private
41
+
42
+ def ensure_user_valid!(user)
43
+ unless user.is_a?(Colppy::User)
44
+ raise ClientError.new("The user should be a Colppy::User instance")
45
+ end
46
+ end
47
+ end
48
+
49
+ class User < Resource
50
+ include Digest
51
+ attr_reader :username, :key
52
+
53
+ def initialize(username, password, key = nil)
54
+ @username = username
55
+ @password = md5(password)
56
+ @key = key
57
+ end
58
+
59
+ def sign_in(client)
60
+ response = client.call(
61
+ :user,
62
+ :sign_in,
63
+ {
64
+ usuario: @username,
65
+ password: @password
66
+ }
67
+ )
68
+ save_session(response[:data]) if response[:success]
69
+ end
70
+
71
+ def sign_out(client)
72
+ response = client.call(
73
+ :user,
74
+ :sign_out,
75
+ sesion: {
76
+ usuario: @username,
77
+ claveSesion: key
78
+ }
79
+ )
80
+ destroy_session if response[:success]
81
+ end
82
+
83
+ private
84
+
85
+ def attr_inspect
86
+ [:username, :key]
87
+ end
88
+
89
+ def save_session(sign_in_data)
90
+ @key = sign_in_data[:claveSesion]
91
+ end
92
+
93
+ def destroy_session
94
+ @key = nil
95
+ end
96
+ end
97
+ end
@@ -0,0 +1,3 @@
1
+ module Colppy
2
+ VERSION = "0.1.0".freeze
3
+ end
metadata ADDED
@@ -0,0 +1,174 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: colppy
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ platform: ruby
6
+ authors:
7
+ - Agustin Cavilliotti
8
+ autorequire:
9
+ bindir: exe
10
+ cert_chain: []
11
+ date: 2016-09-01 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: faraday
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ">="
18
+ - !ruby/object:Gem::Version
19
+ version: '0.8'
20
+ - - "<"
21
+ - !ruby/object:Gem::Version
22
+ version: '0.10'
23
+ type: :runtime
24
+ prerelease: false
25
+ version_requirements: !ruby/object:Gem::Requirement
26
+ requirements:
27
+ - - ">="
28
+ - !ruby/object:Gem::Version
29
+ version: '0.8'
30
+ - - "<"
31
+ - !ruby/object:Gem::Version
32
+ version: '0.10'
33
+ - !ruby/object:Gem::Dependency
34
+ name: multi_json
35
+ requirement: !ruby/object:Gem::Requirement
36
+ requirements:
37
+ - - "~>"
38
+ - !ruby/object:Gem::Version
39
+ version: '1.3'
40
+ type: :runtime
41
+ prerelease: false
42
+ version_requirements: !ruby/object:Gem::Requirement
43
+ requirements:
44
+ - - "~>"
45
+ - !ruby/object:Gem::Version
46
+ version: '1.3'
47
+ - !ruby/object:Gem::Dependency
48
+ name: pry
49
+ requirement: !ruby/object:Gem::Requirement
50
+ requirements:
51
+ - - ">="
52
+ - !ruby/object:Gem::Version
53
+ version: '0'
54
+ type: :development
55
+ prerelease: false
56
+ version_requirements: !ruby/object:Gem::Requirement
57
+ requirements:
58
+ - - ">="
59
+ - !ruby/object:Gem::Version
60
+ version: '0'
61
+ - !ruby/object:Gem::Dependency
62
+ name: httplog
63
+ requirement: !ruby/object:Gem::Requirement
64
+ requirements:
65
+ - - ">="
66
+ - !ruby/object:Gem::Version
67
+ version: '0'
68
+ type: :development
69
+ prerelease: false
70
+ version_requirements: !ruby/object:Gem::Requirement
71
+ requirements:
72
+ - - ">="
73
+ - !ruby/object:Gem::Version
74
+ version: '0'
75
+ - !ruby/object:Gem::Dependency
76
+ name: bundler
77
+ requirement: !ruby/object:Gem::Requirement
78
+ requirements:
79
+ - - "~>"
80
+ - !ruby/object:Gem::Version
81
+ version: '1.12'
82
+ type: :development
83
+ prerelease: false
84
+ version_requirements: !ruby/object:Gem::Requirement
85
+ requirements:
86
+ - - "~>"
87
+ - !ruby/object:Gem::Version
88
+ version: '1.12'
89
+ - !ruby/object:Gem::Dependency
90
+ name: rake
91
+ requirement: !ruby/object:Gem::Requirement
92
+ requirements:
93
+ - - "~>"
94
+ - !ruby/object:Gem::Version
95
+ version: '10.0'
96
+ type: :development
97
+ prerelease: false
98
+ version_requirements: !ruby/object:Gem::Requirement
99
+ requirements:
100
+ - - "~>"
101
+ - !ruby/object:Gem::Version
102
+ version: '10.0'
103
+ - !ruby/object:Gem::Dependency
104
+ name: minitest
105
+ requirement: !ruby/object:Gem::Requirement
106
+ requirements:
107
+ - - "~>"
108
+ - !ruby/object:Gem::Version
109
+ version: '5.0'
110
+ type: :development
111
+ prerelease: false
112
+ version_requirements: !ruby/object:Gem::Requirement
113
+ requirements:
114
+ - - "~>"
115
+ - !ruby/object:Gem::Version
116
+ version: '5.0'
117
+ description: Allow to interact with the services available on the Colppy API (https://colppy.atlassian.net/wiki/display/CA/Bienvenidos+-+Colppy+API)
118
+ email:
119
+ - cavi21@gmail.com
120
+ executables: []
121
+ extensions: []
122
+ extra_rdoc_files: []
123
+ files:
124
+ - ".gitignore"
125
+ - ".rubocop.yml"
126
+ - ".ruby-version"
127
+ - ".travis.yml"
128
+ - CODE_OF_CONDUCT.md
129
+ - Gemfile
130
+ - LICENSE.txt
131
+ - README.md
132
+ - Rakefile
133
+ - bin/console
134
+ - bin/setup
135
+ - colppy.gemspec
136
+ - lib/colppy.rb
137
+ - lib/colppy/client.rb
138
+ - lib/colppy/core/gateway.rb
139
+ - lib/colppy/core/services.rb
140
+ - lib/colppy/core/support/hash.rb
141
+ - lib/colppy/digest.rb
142
+ - lib/colppy/errors.rb
143
+ - lib/colppy/resource.rb
144
+ - lib/colppy/resources/company.rb
145
+ - lib/colppy/resources/customer.rb
146
+ - lib/colppy/resources/product.rb
147
+ - lib/colppy/resources/sell_invoice.rb
148
+ - lib/colppy/resources/user.rb
149
+ - lib/colppy/version.rb
150
+ homepage: https://github.com/goodpeople/colppy
151
+ licenses:
152
+ - MIT
153
+ metadata: {}
154
+ post_install_message:
155
+ rdoc_options: []
156
+ require_paths:
157
+ - lib
158
+ required_ruby_version: !ruby/object:Gem::Requirement
159
+ requirements:
160
+ - - ">="
161
+ - !ruby/object:Gem::Version
162
+ version: '0'
163
+ required_rubygems_version: !ruby/object:Gem::Requirement
164
+ requirements:
165
+ - - ">="
166
+ - !ruby/object:Gem::Version
167
+ version: '0'
168
+ requirements: []
169
+ rubyforge_project:
170
+ rubygems_version: 2.4.5.1
171
+ signing_key:
172
+ specification_version: 4
173
+ summary: Client to interact with Colppy API
174
+ test_files: []