apress-api 1.22.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/.drone.yml +30 -0
- data/.gitignore +15 -0
- data/.rspec +4 -0
- data/Appraisals +31 -0
- data/CHANGELOG.md +227 -0
- data/Gemfile +8 -0
- data/LICENSE.txt +22 -0
- data/README.md +31 -0
- data/Rakefile +2 -0
- data/app/controllers/apress/api/deprecated_versions_controller.rb +15 -0
- data/app/controllers/apress/api/v1/callbacks_controller.rb +30 -0
- data/app/controllers/apress/api/v1/tokens_controller.rb +24 -0
- data/app/docs/schema/api/v1/types/apress/api/link.rb +29 -0
- data/app/docs/schema/api/v1/types/apress/api/links.rb +24 -0
- data/app/docs/swagger/v1/controllers/apress/api/tokens_controller.rb +64 -0
- data/app/docs/swagger/v1/default_responses/bad_request.rb +16 -0
- data/app/docs/swagger/v1/default_responses/not_found.rb +16 -0
- data/app/docs/swagger/v1/default_responses/unauthenticated.rb +16 -0
- data/app/docs/swagger/v1/default_responses/unauthorized.rb +16 -0
- data/app/docs/swagger/v1/default_responses/unprocessable.rb +16 -0
- data/app/docs/swagger/v1/default_responses/updates_locked.rb +13 -0
- data/app/docs/swagger/v1/models/apress/api/client.rb +53 -0
- data/app/docs/swagger/v1/models/apress/api/simple_error.rb +27 -0
- data/app/docs/swagger/v1/models/apress/api/unproccesable_error.rb +16 -0
- data/app/docs/swagger/v1/models/apress/api/unprocessable_error.rb +37 -0
- data/app/docs/swagger/v1/root.rb +28 -0
- data/app/interactors/apress/api/callbacks/base_callback.rb +42 -0
- data/app/interactors/apress/api/delayed_fire_callback.rb +25 -0
- data/app/jobs/apress/api/event_handler_enqueueing_job.rb +19 -0
- data/app/jobs/apress/api/fire_callback_job.rb +25 -0
- data/app/models/apress/api/client.rb +60 -0
- data/app/policies/apress/api/callback_policy.rb +15 -0
- data/app/services/apress/api/auth_service.rb +37 -0
- data/app/views/apress/api/shared/_exception.json.jbuilder +4 -0
- data/app/views/apress/api/shared/error.json.jbuilder +5 -0
- data/app/views/apress/api/shared/parameter_missing_errors.json.jbuilder +9 -0
- data/app/views/apress/api/shared/unprocessable_errors.json.jbuilder +9 -0
- data/app/views/apress/api/v1/clients/_client.json.jbuilder +2 -0
- data/app/views/apress/api/v1/tokens/create.json.jbuilder +4 -0
- data/apress-api.gemspec +46 -0
- data/config/routes.rb +17 -0
- data/db/migrate/20150716000000_create_api_clients.rb +38 -0
- data/dip.yml +48 -0
- data/docker-compose.development.yml +18 -0
- data/docker-compose.drone.yml +7 -0
- data/docker-compose.yml +20 -0
- data/lib/apress-api.rb +1 -0
- data/lib/apress/api.rb +25 -0
- data/lib/apress/api/api_controller/authentification.rb +33 -0
- data/lib/apress/api/api_controller/base.rb +63 -0
- data/lib/apress/api/api_controller/compatibility.rb +26 -0
- data/lib/apress/api/api_controller/pagination.rb +60 -0
- data/lib/apress/api/api_controller/pagination_helper.rb +55 -0
- data/lib/apress/api/api_controller/rescue.rb +89 -0
- data/lib/apress/api/api_controller/responds.rb +25 -0
- data/lib/apress/api/callbacks/config.rb +56 -0
- data/lib/apress/api/callbacks/fire_callback_error.rb +12 -0
- data/lib/apress/api/callbacks/integration.rb +28 -0
- data/lib/apress/api/callbacks/repeat_callback_error.rb +12 -0
- data/lib/apress/api/engine.rb +33 -0
- data/lib/apress/api/extensions/jbuilder/jbuilder_template.rb +41 -0
- data/lib/apress/api/rspec.rb +48 -0
- data/lib/apress/api/rspec/utils.rb +17 -0
- data/lib/apress/api/testing/json_matcher.rb +9 -0
- data/lib/apress/api/version.rb +5 -0
- data/lib/tasks/docs.rake +12 -0
- data/spec/controllers/api_controller/authentification_spec.rb +79 -0
- data/spec/controllers/api_controller/pagination_spec.rb +199 -0
- data/spec/controllers/api_controller/rescue_spec.rb +167 -0
- data/spec/controllers/deprecated_versions_controller_spec.rb +10 -0
- data/spec/controllers/v1/callbacks_controller_spec.rb +50 -0
- data/spec/controllers/v1/tokens_controller_spec.rb +53 -0
- data/spec/factories/client_factory.rb +4 -0
- data/spec/helpers/paginating_cache_spec.rb +72 -0
- data/spec/interactors/apress/api/delayed_fire_callback_spec.rb +43 -0
- data/spec/internal/app/integrations/error_client/fire_callback.rb +14 -0
- data/spec/internal/app/integrations/service_client/fire_callback.rb +7 -0
- data/spec/internal/app/jobs/handler_job.rb +5 -0
- data/spec/internal/app/jobs/second_handler_job.rb +5 -0
- data/spec/internal/app/models/dummy_model.rb +15 -0
- data/spec/internal/config/database.yml +5 -0
- data/spec/internal/config/environments/test.rb +5 -0
- data/spec/internal/config/initializers/api.rb +10 -0
- data/spec/internal/config/routes.rb +3 -0
- data/spec/internal/db/schema.rb +5 -0
- data/spec/internal/log/.gitignore +1 -0
- data/spec/jobs/apress/api/event_handler_equeueing_job_spec.rb +31 -0
- data/spec/jobs/apress/api/fire_callback_job_spec.rb +34 -0
- data/spec/lib/apress/api/callbacks/integration_spec.rb +24 -0
- data/spec/models/client_spec.rb +25 -0
- data/spec/services/auth_service_spec.rb +64 -0
- data/spec/spec_helper.rb +34 -0
- metadata +518 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 0675e01e2bf8451ccf0aea116eb8210702f95f4a
|
4
|
+
data.tar.gz: f845d4e05146deefea5441834397d667069d3239
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: b555258e9441cf634c25eeb41a918f69fdd70fe98a109a2b509c791449937bbd2eb9296c167fc167e47cbdf4831dace20835e437d38eb2e9e1f6145955288b87
|
7
|
+
data.tar.gz: 7dd2ba7675a18d8696af7f24a813493df6eb7feb40b2afbee180f890bdd26ce65c02e43b6da45a033ab0ba3fb0e7dfaffab2e5d22e0c451f1c511ebcd94cb1f1
|
data/.drone.yml
ADDED
@@ -0,0 +1,30 @@
|
|
1
|
+
build:
|
2
|
+
test:
|
3
|
+
image: abakpress/dind-testing
|
4
|
+
privileged: true
|
5
|
+
pull: true
|
6
|
+
volumes:
|
7
|
+
- /home/data/drone/images:/images
|
8
|
+
- /home/data/drone/gems:/bundle
|
9
|
+
environment:
|
10
|
+
- COMPOSE_FILE_EXT=drone
|
11
|
+
- RUBY_IMAGE_TAG=2.2-latest
|
12
|
+
- POSTGRES_IMAGE_TAG=9.3-latest
|
13
|
+
commands:
|
14
|
+
- wrapdocker docker -v
|
15
|
+
|
16
|
+
- fetch-images --image abakpress/ruby-app:$RUBY_IMAGE_TAG
|
17
|
+
|
18
|
+
- dip provision
|
19
|
+
- dip rspec
|
20
|
+
|
21
|
+
release:
|
22
|
+
image: abakpress/gem-publication
|
23
|
+
pull: true
|
24
|
+
when:
|
25
|
+
event: push
|
26
|
+
branch: master
|
27
|
+
volumes:
|
28
|
+
- /home/data/drone/rubygems:/root/.gem
|
29
|
+
commands:
|
30
|
+
- release-gem --public
|
data/.gitignore
ADDED
data/.rspec
ADDED
data/Appraisals
ADDED
@@ -0,0 +1,31 @@
|
|
1
|
+
appraise "rails3.2" do
|
2
|
+
gem "rails", "~> 3.2.0", require: false
|
3
|
+
gem "strong_parameters", ">= 0.2", require: false
|
4
|
+
end
|
5
|
+
|
6
|
+
appraise "rails4.0" do
|
7
|
+
gem "rails", "~> 4.0.0", require: false
|
8
|
+
end
|
9
|
+
|
10
|
+
appraise "rails4.1" do
|
11
|
+
gem "rails", "~> 4.1.0", require: false
|
12
|
+
end
|
13
|
+
|
14
|
+
appraise "rails4.2" do
|
15
|
+
gem "rails", "~> 4.2.0", require: false
|
16
|
+
end
|
17
|
+
|
18
|
+
appraise "rails5.0" do
|
19
|
+
gem "rails", "~> 5.0.0", require: false
|
20
|
+
gem "rails-controller-testing", require: false
|
21
|
+
end
|
22
|
+
|
23
|
+
appraise "rails5.1" do
|
24
|
+
gem "rails", "~> 5.1.0", require: false
|
25
|
+
gem "rails-controller-testing", require: false
|
26
|
+
end
|
27
|
+
|
28
|
+
appraise "rails5.2" do
|
29
|
+
gem "rails", "~> 5.2.0", require: false
|
30
|
+
gem "rails-controller-testing", require: false
|
31
|
+
end
|
data/CHANGELOG.md
ADDED
@@ -0,0 +1,227 @@
|
|
1
|
+
# v1.22.0
|
2
|
+
|
3
|
+
* 2018-08-22 [7bb90fa](../../commit/7bb90fa) - __(Artem Napolskih)__ chore: Add automatic publication
|
4
|
+
* 2018-08-20 [ce83eba](../../commit/ce83eba) - __(Artem Napolskih)__ feat: rails 5-x support
|
5
|
+
|
6
|
+
# v1.21.0
|
7
|
+
|
8
|
+
* 2018-07-19 [09ac671](../../commit/09ac671) - __(Zhidkov Denis)__ feat: allow to add several handlers for each service event
|
9
|
+
https://jira.railsc.ru/browse/ORDERS-1916
|
10
|
+
|
11
|
+
# v1.20.2
|
12
|
+
|
13
|
+
* 2018-05-31 [e950f34](../../commit/e950f34) - __(Denis Korobicyn)__ fix: add rescue instead of stub in tests
|
14
|
+
|
15
|
+
# v1.20.1
|
16
|
+
|
17
|
+
* 2018-05-30 [4ffdc34](../../commit/4ffdc34) - __(Denis Korobicyn)__ Version 1.20.1
|
18
|
+
* 2018-05-30 [8f0930f](../../commit/8f0930f) - __(Denis Korobicyn)__ fix: autoload for pagination headers
|
19
|
+
|
20
|
+
# v1.20.0
|
21
|
+
|
22
|
+
* 2018-05-29 [876a71c](../../commit/876a71c) - __(Denis Korobicyn)__ feature: add correct headers on json pagination cache
|
23
|
+
https://jira.railsc.ru/browse/ORDERS-1524
|
24
|
+
|
25
|
+
# v1.19.2
|
26
|
+
|
27
|
+
* 2018-04-16 [243a81f](../../commit/243a81f) - __(Denis Korobicyn)__ feature(callbacks): add inf reapet errors
|
28
|
+
https://jira.railsc.ru/browse/ORDERS-1484
|
29
|
+
|
30
|
+
* 2018-04-11 [ca1c1f2](../../commit/ca1c1f2) - __(Denis Korobicyn)__ fix(callbacks): add exponential backoff
|
31
|
+
https://jira.railsc.ru/browse/ORDERS-1484
|
32
|
+
|
33
|
+
# v1.19.1
|
34
|
+
|
35
|
+
* 2018-04-10 [bf3b4ce](../../commit/bf3b4ce) - __(Denis Korobicyn)__ chore(dorne): allow only master release
|
36
|
+
* 2018-04-06 [553c515](../../commit/553c515) - __(Denis Korobicyn)__ fix(callbacks): add fatal exeptions
|
37
|
+
https://jira.railsc.ru/browse/ORDERS-1484
|
38
|
+
|
39
|
+
# v1.19.0
|
40
|
+
|
41
|
+
* 2018-04-03 [12aa8e0](../../commit/12aa8e0) - __(Denis Korobicyn)__ feature: add callbacks logic
|
42
|
+
https://jira.railsc.ru/browse/ORDERS-1484
|
43
|
+
|
44
|
+
# v1.18.0
|
45
|
+
|
46
|
+
* 2018-01-30 [26a7884](../../commit/26a7884) - __(Dmitry Bochkarev)__ chore: restrict pg version
|
47
|
+
http://samson.railsc.ru/projects/pulscen-production/deploys/9785
|
48
|
+
https://jira.railsc.ru/browse/PC4-21470
|
49
|
+
|
50
|
+
https://github.com/abak-press/pulscen/commit/ff1e27f89c45a30bb0479383d864a15a526422fd
|
51
|
+
https://github.com/abak-press/pulscen/pull/16479
|
52
|
+
|
53
|
+
* 2017-12-22 [33d5523](../../commit/33d5523) - __(Dmitry Bochkarev)__ fix(newrelic): не реквайрим устаревший модуль
|
54
|
+
https://jira.railsc.ru/browse/PC4-19900
|
55
|
+
|
56
|
+
* 2017-12-22 [5132ad7](../../commit/5132ad7) - __(Dmitry Bochkarev)__ fix(new_relic): выпил ::NewRelic::Agent::Instrumentation::Rails3::Errors
|
57
|
+
https://jira.railsc.ru/browse/PC4-19900
|
58
|
+
|
59
|
+
модуль был удален, использвание методов в коде нет:
|
60
|
+
https://jira.railsc.ru/browse/PC4-19900?focusedCommentId=146483&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-146483
|
61
|
+
|
62
|
+
# v1.17.1
|
63
|
+
|
64
|
+
* 2017-09-07 [08c3799](../../commit/08c3799) - __(Denis Korobicyn)__ fix: api tests
|
65
|
+
|
66
|
+
# v1.17.0
|
67
|
+
|
68
|
+
* 2017-06-28 [96ff1ea](../../commit/96ff1ea) - __(Denis Korobicyn)__ fix: namespaces for default responses
|
69
|
+
https://jira.railsc.ru/browse/PC4-19812
|
70
|
+
|
71
|
+
* 2017-04-25 [0cc731e](../../commit/0cc731e) - __(Denis Korobicyn)__ feature: move swagger to apress-documentation
|
72
|
+
https://jira.railsc.ru/browse/PC4-19470
|
73
|
+
|
74
|
+
# v1.16.1
|
75
|
+
|
76
|
+
* 2017-08-02 [9f03ee6](../../commit/9f03ee6) - __(Artem Napolskih)__ fix: rails 4 New Relic support
|
77
|
+
|
78
|
+
# v1.16.0
|
79
|
+
|
80
|
+
* 2017-07-31 [2da0e08](../../commit/2da0e08) - __(Artem Napolskih)__ feature: Add tokens controller load hook
|
81
|
+
|
82
|
+
# v1.15.0
|
83
|
+
|
84
|
+
* 2017-07-28 [ee55219](../../commit/ee55219) - __(Artem Napolskih)__ feature: no find Client when access_id not given
|
85
|
+
|
86
|
+
# v1.14.0
|
87
|
+
|
88
|
+
* 2017-07-18 [df408d2](../../commit/df408d2) - __(Nikolay Kondratyev)__ feat(swagger): add type representing a links object
|
89
|
+
|
90
|
+
# v1.13.0
|
91
|
+
|
92
|
+
* 2017-07-13 [10c6c6c](../../commit/10c6c6c) - __(Dmitry Bochkarev)__ fix(drone): неверные отступы в .drone.yml
|
93
|
+
при возникновении ошибки ActionController::ParameterMissing
|
94
|
+
возвращается 400 статус, а не 404
|
95
|
+
|
96
|
+
* 2017-07-09 [8ee510c](../../commit/8ee510c) - __(Dmitry Bochkarev)__ fix: 400 статус для ActionController::ParameterMissing
|
97
|
+
* 2017-06-27 [98e02cd](../../commit/98e02cd) - __(Semyon Pupkov)__ chore: add rails 4.0 and 4.1 to Appraisals
|
98
|
+
* 2017-05-25 [4d746a4](../../commit/4d746a4) - __(JSinx)__ Release 1.12.1
|
99
|
+
* 2017-05-25 [ef793b8](../../commit/ef793b8) - __(JSinx)__ fix(client): namespace Apress::Api for model Client
|
100
|
+
* 2017-04-21 [db5ac0e](../../commit/db5ac0e) - __(Semyon Pupkov)__ chore: require only necessary files
|
101
|
+
* 2017-04-20 [d5a9c5a](../../commit/d5a9c5a) - __(Semyon Pupkov)__ chore: remove support for rails 3.1 and ruby 1.9
|
102
|
+
|
103
|
+
# v1.12.0
|
104
|
+
|
105
|
+
* 2017-02-10 [a54b723](../../commit/a54b723) - __(Nikolay Kondratyev)__ feat(gems): update swagger-core dependency
|
106
|
+
* 2017-02-21 [45b4bee](../../commit/45b4bee) - __(Andrey Shmelkov)__ feature(pagination): Link, X-Per-Page, X-Page headers
|
107
|
+
В метод #pagination_headers добавлена поддержка заголовков X-Page,
|
108
|
+
X-Per-Page и Link (RFC 5988)
|
109
|
+
|
110
|
+
https://jira.railsc.ru/browse/RAD-294
|
111
|
+
|
112
|
+
# v1.11.0
|
113
|
+
|
114
|
+
* 2017-01-10 [e7048d7](../../commit/e7048d7) - __(Semyon Pupkov)__ feature: render status in body for unproccesable error
|
115
|
+
|
116
|
+
# v1.10.2
|
117
|
+
|
118
|
+
* 2017-01-11 [6da5c9c](../../commit/6da5c9c) - __(Semyon Pupkov)__ fix: old UnproccesableError class does not work across alias
|
119
|
+
https://github.com/abak-press/apress-api/issues/34
|
120
|
+
|
121
|
+
# v1.10.1
|
122
|
+
|
123
|
+
* 2016-12-26 [7663d55](../../commit/7663d55) - __(Michail Merkushin)__ fix: Include Newrelic modules for different Rails versions
|
124
|
+
https://jira.railsc.ru/browse/PC4-18051
|
125
|
+
|
126
|
+
# v1.10.0
|
127
|
+
|
128
|
+
* 2016-12-09 [3a4459f](../../commit/3a4459f) - __(Pavel Galkin)__ fix: move UnproccesableError alias to a separate file
|
129
|
+
* 2016-12-08 [ef4ece2](../../commit/ef4ece2) - __(Nikolay Kondratyev)__ feat(gems): add swagger-core dependency
|
130
|
+
* 2016-12-08 [2f188ce](../../commit/2f188ce) - __(Nikolay Kondratyev)__ feat(rspec): add swagger schema matcher
|
131
|
+
* 2016-11-29 [12c2a02](../../commit/12c2a02) - __(Nikolay Kondratyev)__ fix: security definitions
|
132
|
+
* 2016-12-07 [eb10a20](../../commit/eb10a20) - __(Pavel Galkin)__ fix: typo in error class
|
133
|
+
Сложное слово!
|
134
|
+
|
135
|
+
# v1.9.0
|
136
|
+
|
137
|
+
* 2016-12-06 [7ea5ec2](../../commit/7ea5ec2) - __(Michail Merkushin)__ chore: Add drone and dip
|
138
|
+
* 2016-12-05 [1242c99](../../commit/1242c99) - __(Michail Merkushin)__ feature: Add newrelic tracers
|
139
|
+
https://jira.railsc.ru/browse/PC4-18051
|
140
|
+
|
141
|
+
# v1.8.3
|
142
|
+
|
143
|
+
* 2016-09-21 [c7659b1](../../commit/c7659b1) - __(Semyon Pupkov)__ refactor: remove dependency from migration_comments
|
144
|
+
* 2016-09-21 [c157718](../../commit/c157718) - __(Semyon Pupkov)__ chore: add docker-compose
|
145
|
+
|
146
|
+
# v1.8.2
|
147
|
+
|
148
|
+
* 2016-09-12 [2f52c26](../../commit/2f52c26) - __(Denis Korobicyn)__ chore: lock rails < 5.0.0
|
149
|
+
* 2016-09-12 [cbb16ec](../../commit/cbb16ec) - __(Denis Korobicyn)__ fix: remove asset_path hacks
|
150
|
+
https://jira.railsc.ru/browse/PC4-17992
|
151
|
+
|
152
|
+
# v1.8.1
|
153
|
+
|
154
|
+
* 2016-08-23 [4f83163](../../commit/4f83163) - __(Salahutdinov Dmitry)__ feature: speed up swagger load
|
155
|
+
* 2016-08-11 [0adce54](../../commit/0adce54) - __(Salahutdinov Dmitry)__ fix: minor type fix
|
156
|
+
* 2016-08-10 [93678e7](../../commit/93678e7) - __(Salahutdinov Dmitry)__ fix: try out swaggered api from any host/port, use hostless path
|
157
|
+
|
158
|
+
# v1.8.0
|
159
|
+
|
160
|
+
* 2016-07-13 [59e65ec](../../commit/59e65ec) - __(Denis Korobicyn)__ feature: swagger documentation
|
161
|
+
|
162
|
+
# v1.7.0
|
163
|
+
|
164
|
+
* 2016-07-20 [39880d3](../../commit/39880d3) - __(Sergey Kucher)__ feature: ability to handle standard error's descendants for unprocessable
|
165
|
+
https://jira.railsc.ru/browse/ORDERS-86
|
166
|
+
|
167
|
+
# v1.6.0
|
168
|
+
|
169
|
+
* 2016-06-06 [022ec6a](../../commit/022ec6a) - __(Denis Korobicyn)__ feature: unproccessable method
|
170
|
+
|
171
|
+
# v1.5.0
|
172
|
+
|
173
|
+
* 2016-05-06 [c8935c8](../../commit/c8935c8) - __(Denis Korobicyn)__ feature: paginating params preprocessing
|
174
|
+
|
175
|
+
# v1.4.0
|
176
|
+
|
177
|
+
* 2016-04-29 [1635272](../../commit/1635272) - __(Denis Korobicyn)__ feature: json paginating_cache helper
|
178
|
+
https://jira.railsc.ru/browse/PC4-17107
|
179
|
+
|
180
|
+
* 2016-04-22 [966ac22](../../commit/966ac22) - __(Denis Korobicyn)__ feature: removed cache stubs
|
181
|
+
https://jira.railsc.ru/browse/PC4-17107
|
182
|
+
|
183
|
+
# v1.3.0
|
184
|
+
|
185
|
+
* 2016-04-25 [faf3bde](../../commit/faf3bde) - __(Michail Merkushin)__ feature: Allways find current_api_client
|
186
|
+
|
187
|
+
# v1.2.0
|
188
|
+
|
189
|
+
* 2016-03-28 [20d6676](../../commit/20d6676) - __(Salahutdinov Dmitry)__ feature: пагинация в заголовках
|
190
|
+
https://jira.railsc.ru/browse/PC4-16460
|
191
|
+
|
192
|
+
# v1.1.0
|
193
|
+
|
194
|
+
* 2016-03-14 [cb8f200](../../commit/cb8f200) - __(Denis Korobitcin)__ feature: added caching module
|
195
|
+
https://jira.railsc.ru/browse/PC4-16800
|
196
|
+
|
197
|
+
# v1.0.0
|
198
|
+
|
199
|
+
* 2016-01-10 [464b9c8](../../commit/464b9c8) - __(Michail Merkushin)__ feature: not always return 200 when ajax
|
200
|
+
https://jira.railsc.ru/browse/PC4-16378
|
201
|
+
|
202
|
+
# v0.2.1
|
203
|
+
|
204
|
+
* 2015-12-16 [d5d46a6](../../commit/d5d46a6) - __(Michail Merkushin)__ feature: make AuthService#access_id as public meth
|
205
|
+
https://jira.railsc.ru/browse/PC4-16202
|
206
|
+
|
207
|
+
# v0.2.0
|
208
|
+
|
209
|
+
* 2015-11-18 [4b336ed](../../commit/4b336ed) - __(Denis Korobitcin)__ feature(api-rescue): render_json method
|
210
|
+
|
211
|
+
# v0.1.0
|
212
|
+
|
213
|
+
* 2015-09-17 [b09a647](../../commit/b09a647) - __(Sergey Kucher)__ chore: move match_json_schema from barmen pc4-15522
|
214
|
+
|
215
|
+
# v0.0.2
|
216
|
+
|
217
|
+
* 2015-08-12 [a1f5e0d](../../commit/a1f5e0d) - __(Michail Merkushin)__ feature: respond with 403 on Pundit errors
|
218
|
+
https://jira.railsc.ru/browse/PC4-15338
|
219
|
+
|
220
|
+
# v0.0.1
|
221
|
+
|
222
|
+
* 2015-08-06 [cf77643](../../commit/cf77643) - __(bibendi)__ move column device_id to gem api-application
|
223
|
+
* 2015-08-05 [eba14a6](../../commit/eba14a6) - __(bibendi)__ fix: add lazy load hook on client and small fixes
|
224
|
+
https://jira.railsc.ru/browse/PC4-15271
|
225
|
+
|
226
|
+
* 2015-07-22 [015c863](../../commit/015c863) - __(bibendi)__ Initial commit
|
227
|
+
* 2015-07-17 [dcee43c](../../commit/dcee43c) - __(Artem Napolskih)__ Initial commit
|
data/Gemfile
ADDED
data/LICENSE.txt
ADDED
@@ -0,0 +1,22 @@
|
|
1
|
+
Copyright (c) 2015 bibendi
|
2
|
+
|
3
|
+
MIT License
|
4
|
+
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining
|
6
|
+
a copy of this software and associated documentation files (the
|
7
|
+
"Software"), to deal in the Software without restriction, including
|
8
|
+
without limitation the rights to use, copy, modify, merge, publish,
|
9
|
+
distribute, sublicense, and/or sell copies of the Software, and to
|
10
|
+
permit persons to whom the Software is furnished to do so, subject to
|
11
|
+
the following conditions:
|
12
|
+
|
13
|
+
The above copyright notice and this permission notice shall be
|
14
|
+
included in all copies or substantial portions of the Software.
|
15
|
+
|
16
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
17
|
+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
18
|
+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
19
|
+
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
20
|
+
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
21
|
+
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
22
|
+
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
data/README.md
ADDED
@@ -0,0 +1,31 @@
|
|
1
|
+
# Apress::Api
|
2
|
+
|
3
|
+
Базовый контроллер АПИ с авторизацией HMAC
|
4
|
+
|
5
|
+
## Installation
|
6
|
+
|
7
|
+
Add this line to your application's Gemfile:
|
8
|
+
|
9
|
+
```ruby
|
10
|
+
gem 'apress-api'
|
11
|
+
```
|
12
|
+
|
13
|
+
And then execute:
|
14
|
+
|
15
|
+
$ bundle
|
16
|
+
|
17
|
+
Or install it yourself as:
|
18
|
+
|
19
|
+
$ gem install apress-api
|
20
|
+
|
21
|
+
## Usage
|
22
|
+
|
23
|
+
TODO: Write usage instructions here
|
24
|
+
|
25
|
+
## Contributing
|
26
|
+
|
27
|
+
1. Fork it ( https://github.com/abak-press/apress-api/fork )
|
28
|
+
2. Create your feature branch (`git checkout -b my-new-feature`)
|
29
|
+
3. Commit your changes (`git commit -am 'Add some feature'`)
|
30
|
+
4. Push to the branch (`git push origin my-new-feature`)
|
31
|
+
5. Create a new Pull Request
|
data/Rakefile
ADDED
@@ -0,0 +1,15 @@
|
|
1
|
+
module Apress
|
2
|
+
module Api
|
3
|
+
class DeprecatedVersionsController < ApiController::Base
|
4
|
+
if (Rails::VERSION::MAJOR == 4 && Rails::VERSION::MINOR == 2) || Rails::VERSION::MAJOR > 4
|
5
|
+
skip_before_action :authenticate, only: :show
|
6
|
+
else
|
7
|
+
skip_before_filter :authenticate, only: :show
|
8
|
+
end
|
9
|
+
|
10
|
+
def show
|
11
|
+
render_error(410)
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
@@ -0,0 +1,30 @@
|
|
1
|
+
module Apress
|
2
|
+
module Api
|
3
|
+
module V1
|
4
|
+
class CallbacksController < ApiController::Base
|
5
|
+
include Pundit
|
6
|
+
|
7
|
+
def create
|
8
|
+
authorize :'apress/api/callback'
|
9
|
+
|
10
|
+
event_params = params[:params] || {}
|
11
|
+
|
12
|
+
Resque.redis.multi do
|
13
|
+
Apress::Api::Callbacks::Config.handlers(
|
14
|
+
service: params.require(:service),
|
15
|
+
event: params.require(:event)
|
16
|
+
).each { |handler| Resque.enqueue(Apress::Api::EventHandlerEnqueueingJob, handler, event_params) }
|
17
|
+
end
|
18
|
+
|
19
|
+
head 201
|
20
|
+
end
|
21
|
+
|
22
|
+
private
|
23
|
+
|
24
|
+
def pundit_user
|
25
|
+
current_api_client
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
@@ -0,0 +1,24 @@
|
|
1
|
+
module Apress
|
2
|
+
module Api
|
3
|
+
module V1
|
4
|
+
class TokensController < ApiController::Base
|
5
|
+
if (Rails::VERSION::MAJOR == 4 && Rails::VERSION::MINOR == 2) || Rails::VERSION::MAJOR > 4
|
6
|
+
skip_before_action :authenticate, only: :create
|
7
|
+
else
|
8
|
+
skip_before_filter :authenticate, only: :create
|
9
|
+
end
|
10
|
+
|
11
|
+
def create
|
12
|
+
@client = Apress::Api::Client.find_by_access_id!(params.require(:client_id))
|
13
|
+
|
14
|
+
return bad_request if @client.refresh_token != params.require(:refresh_token)
|
15
|
+
return forbidden if @client.refresh_token_expired?
|
16
|
+
|
17
|
+
@client.regenerate_tokens!
|
18
|
+
end
|
19
|
+
|
20
|
+
ActiveSupport.run_load_hooks(:"apress/api/tokens_controller", self)
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|