api_me 0.4.0 → 0.4.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 +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
|