api_me 0.4.0 → 0.4.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +3 -0
- data/api_me.gemspec +1 -1
- data/lib/api_me.rb +13 -4
- data/lib/api_me/version.rb +1 -1
- data/spec/acceptance/api/v1/users_spec.rb +8 -0
- metadata +4 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: d6be2bfc501d6e34780bb7d71cc7f9504110bbe5
|
4
|
+
data.tar.gz: 0cdf554cf51fc1c08cc960b9aa03d9869a631ecc
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: af00b5703f9677aa28ae0e7ae5422440931e246d90ef0f3b2ea0166d4e85b53e2c259e22568e77fa5c65bac992b2d118bb0742a616dd916f30ab08bb8c9ce5d2
|
7
|
+
data.tar.gz: d46be75bc55cf3ab8fa89f8c33af26c9a139098b680153a62b750a05f15130fe61802cde9955ca8731f0a046d77b548050090ecd5c58936deea169ae0cc432b0
|
data/README.md
CHANGED
@@ -108,5 +108,8 @@ end
|
|
108
108
|
- [ ] Add the ability to specify the api controller path (I.E. app/controllers/api/v2)
|
109
109
|
- [ ] Add the ability to inject the resource route into the routes file in the resource generators
|
110
110
|
|
111
|
+
## Code Of Conduct
|
112
|
+
Wildland Open Source [Code Of Conduct](https://github.com/wildland/code-of-conduct)
|
113
|
+
|
111
114
|
## License
|
112
115
|
Copyright (c) 2014, Api Me is developed and maintained by Sam Clopton, and is released under the open MIT Licence.
|
data/api_me.gemspec
CHANGED
@@ -9,7 +9,7 @@ Gem::Specification.new do |s|
|
|
9
9
|
s.version = ApiMe::VERSION
|
10
10
|
s.authors = ['Sam Clopton', 'Joe Weakley']
|
11
11
|
s.email = ['samsinite@gmail.com']
|
12
|
-
s.homepage = 'https://github.com/
|
12
|
+
s.homepage = 'https://github.com/wildland/api_me'
|
13
13
|
s.summary = 'Api Me'
|
14
14
|
s.description = "This friendly library gives you helpers and generators to assist building RESTful API's in your Rails app."
|
15
15
|
s.license = 'MIT'
|
data/lib/api_me.rb
CHANGED
@@ -11,6 +11,7 @@ module ApiMe
|
|
11
11
|
|
12
12
|
included do
|
13
13
|
rescue_from Pundit::NotAuthorizedError, with: :user_not_authorized
|
14
|
+
rescue_from ActiveRecord::RecordNotFound, with: :resource_not_found
|
14
15
|
end
|
15
16
|
|
16
17
|
module ClassMethods
|
@@ -73,7 +74,7 @@ module ApiMe
|
|
73
74
|
end
|
74
75
|
|
75
76
|
def show
|
76
|
-
@object =
|
77
|
+
@object = find_resource
|
77
78
|
authorize @object
|
78
79
|
|
79
80
|
render json: @object, serializer: serializer_klass
|
@@ -90,7 +91,7 @@ module ApiMe
|
|
90
91
|
end
|
91
92
|
|
92
93
|
def update
|
93
|
-
@object =
|
94
|
+
@object = find_resource
|
94
95
|
authorize @object
|
95
96
|
@object.update!(object_params)
|
96
97
|
|
@@ -100,14 +101,14 @@ module ApiMe
|
|
100
101
|
end
|
101
102
|
|
102
103
|
def destroy
|
103
|
-
@object =
|
104
|
+
@object = find_resource
|
104
105
|
authorize @object
|
105
106
|
@object.destroy
|
106
107
|
|
107
108
|
render status: 204, nothing: true
|
108
109
|
end
|
109
110
|
|
110
|
-
|
111
|
+
protected
|
111
112
|
|
112
113
|
def object_params
|
113
114
|
params.require(params_klass_symbol).permit(*policy(@object || model_klass).permitted_attributes)
|
@@ -127,6 +128,10 @@ module ApiMe
|
|
127
128
|
render json: payload, status: 403
|
128
129
|
end
|
129
130
|
|
131
|
+
def resource_not_found
|
132
|
+
render status: 404, nothing: true
|
133
|
+
end
|
134
|
+
|
130
135
|
def model_klass
|
131
136
|
self.class.model_klass
|
132
137
|
end
|
@@ -150,4 +155,8 @@ module ApiMe
|
|
150
155
|
def filter_params
|
151
156
|
params[:filters]
|
152
157
|
end
|
158
|
+
|
159
|
+
def find_resource
|
160
|
+
model_klass.find_by_id!(params[:id])
|
161
|
+
end
|
153
162
|
end
|
data/lib/api_me/version.rb
CHANGED
@@ -15,6 +15,14 @@ describe 'Users API' do
|
|
15
15
|
expect(json['users'].length).to eq(users.count)
|
16
16
|
end
|
17
17
|
|
18
|
+
it 'returns a 404 for a user that does not exist' do
|
19
|
+
invalid_user_id = User.maximum(:id).to_i + 1
|
20
|
+
|
21
|
+
get '/api/v1/users/' + invalid_user_id.to_s + '/'
|
22
|
+
|
23
|
+
expect(last_response.status).to eq(404)
|
24
|
+
end
|
25
|
+
|
18
26
|
it 'sends an individual user' do
|
19
27
|
user = User.create(username: 'Test')
|
20
28
|
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: api_me
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.4.
|
4
|
+
version: 0.4.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Sam Clopton
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2015-
|
12
|
+
date: 2015-07-13 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: activerecord
|
@@ -210,7 +210,7 @@ files:
|
|
210
210
|
- spec/internal/log/.gitignore
|
211
211
|
- spec/internal/public/favicon.ico
|
212
212
|
- spec/spec_helper.rb
|
213
|
-
homepage: https://github.com/
|
213
|
+
homepage: https://github.com/wildland/api_me
|
214
214
|
licenses:
|
215
215
|
- MIT
|
216
216
|
metadata: {}
|
@@ -231,7 +231,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
231
231
|
version: '0'
|
232
232
|
requirements: []
|
233
233
|
rubyforge_project:
|
234
|
-
rubygems_version: 2.
|
234
|
+
rubygems_version: 2.2.2
|
235
235
|
signing_key:
|
236
236
|
specification_version: 4
|
237
237
|
summary: Api Me
|