tramway-api 2.0.0.1 → 2.0.0.3
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 +11 -11
- data/app/controllers/tramway/api/application_controller.rb +1 -1
- data/app/controllers/tramway/api/v1/application_controller.rb +3 -3
- data/app/controllers/tramway/api/v1/records_controller.rb +2 -2
- data/app/forms/tramway/api/authentication_form.rb +1 -1
- data/app/serializers/tramway/api/v1/application_serializer.rb +1 -1
- data/lib/tramway/api/version.rb +1 -1
- data/lib/tramway/api.rb +2 -2
- metadata +6 -6
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: '02842d5a30eaebb897096a3237c1b1199f024aa440cfaf8cf90443b546c6afd0'
|
4
|
+
data.tar.gz: 9aba2f649d293ffb1cac067c65f43031a6128150f2c72883248bf399c3b30cba
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 2de3d13f5c0bdfd45cb8f51d976b6962f754fa98c8418430f30bfcdc69aa8abb5d5b3164e5d18e53f662f5efd84cc8564b1e43712d1604807bceae78d8f0cf4a
|
7
|
+
data.tar.gz: 6786d18d5af7a09e92121f05729b8d7168d2d019fdcedb75be4e296febdd52ab150f8b7bb50143e611032684975bc6b11cfe4cc014663ff484329b498939fa2e
|
data/README.md
CHANGED
@@ -27,20 +27,20 @@ coming soon...
|
|
27
27
|
* только с ActiveRecord
|
28
28
|
* только с версией Rails 5.1.* (поддержка 5.2 вскоре будет реализована автором гема, поддержка автором Rails 6 начнётся с версии 6.1. По религиозным автор не использует Rails версий *.0.*
|
29
29
|
* Ruby >= 2.3
|
30
|
-
* все модели, которые будут использованы гемом должны наследоваться от `Tramway::
|
30
|
+
* все модели, которые будут использованы гемом должны наследоваться от `Tramway::ApplicationRecord`
|
31
31
|
* все модели, которые будут использованы гемом должны иметь атрибут `state`, типа `string` или `text`. Этот атрибут нужен для реализации мягкого удаления. Полное удаление записей из базы не поддерживается
|
32
32
|
* все модели, которые будут использованы гемом должны иметь атрибут
|
33
33
|
|
34
34
|
Недостатки, которые будут вскоре ликвидированы:
|
35
35
|
|
36
|
-
* ядро `tramway
|
36
|
+
* ядро `tramway` подгружает в себя ненужных для API гемов (недостаток не имеет смысла в случае использования вместе с этим решением гема `tramway-admin`):
|
37
37
|
* bootstrap
|
38
38
|
* font_awesome5_rails
|
39
39
|
* haml
|
40
40
|
* требуется ручное добавление требуемых для работы гемов
|
41
41
|
```ruby
|
42
42
|
gem 'active_model_serializers', '0.10.5'
|
43
|
-
gem 'tramway
|
43
|
+
gem 'tramway'
|
44
44
|
gem 'knock'
|
45
45
|
gem 'audited'
|
46
46
|
gem 'ransack'
|
@@ -57,7 +57,7 @@ rails new tramway_api_sample
|
|
57
57
|
```ruby
|
58
58
|
gem 'tramway-api', '>= 1.1.0.1'
|
59
59
|
gem 'active_model_serializers', '0.10.5'
|
60
|
-
gem 'tramway
|
60
|
+
gem 'tramway'
|
61
61
|
gem 'state_machine', github: 'seuros/state_machine'
|
62
62
|
gem 'knock'
|
63
63
|
```
|
@@ -66,7 +66,7 @@ Run `bundle install`
|
|
66
66
|
|
67
67
|
### Initialize @application object
|
68
68
|
|
69
|
-
[How-to](https://github.com/Purple-Magic/tramway
|
69
|
+
[How-to](https://github.com/Purple-Magic/tramway/blob/develop/README.md#every-tramway-application-need-initialized-application-object-or-if-you-create-tramway-plugin-it-should-be-application_engine-object)
|
70
70
|
|
71
71
|
*config/routes.rb*
|
72
72
|
|
@@ -127,7 +127,7 @@ t.uuid :uuid, default: 'uuid_generate_v4()'
|
|
127
127
|
*app/models/user.rb*
|
128
128
|
|
129
129
|
```ruby
|
130
|
-
class User < Tramway::
|
130
|
+
class User < Tramway::ApplicationRecord
|
131
131
|
has_secure_password
|
132
132
|
|
133
133
|
def self.from_token_payload(payload)
|
@@ -158,7 +158,7 @@ end
|
|
158
158
|
})
|
159
159
|
```
|
160
160
|
|
161
|
-
Run `rails g tramway:
|
161
|
+
Run `rails g tramway:install`
|
162
162
|
|
163
163
|
Run `rails db:create db:migrate`
|
164
164
|
|
@@ -173,7 +173,7 @@ end
|
|
173
173
|
Create file *app/forms/user_sign_up_form.rb*
|
174
174
|
|
175
175
|
```ruby
|
176
|
-
class UserSignUpForm < Tramway::
|
176
|
+
class UserSignUpForm < Tramway::ApplicationForm
|
177
177
|
properties :username, :email, :password
|
178
178
|
end
|
179
179
|
```
|
@@ -397,7 +397,7 @@ You also able to use pagination, provided by `kaminari`
|
|
397
397
|
*app/forms/your_model_form.rb*
|
398
398
|
|
399
399
|
```ruby
|
400
|
-
class YourModelForm < Tramway::
|
400
|
+
class YourModelForm < Tramway::ApplicationForm
|
401
401
|
properties :attribute1, :attribute2, :name
|
402
402
|
|
403
403
|
association :another_association_model
|
@@ -480,7 +480,7 @@ end
|
|
480
480
|
*app/forms/your_model_form.rb*
|
481
481
|
|
482
482
|
```ruby
|
483
|
-
class YourModelForm < Tramway::
|
483
|
+
class YourModelForm < Tramway::ApplicationForm
|
484
484
|
properties :attribute1, :attribute2, :name
|
485
485
|
|
486
486
|
association :another_association_model
|
@@ -533,7 +533,7 @@ It returns just one record, if it is not deleted.
|
|
533
533
|
*app/serializers/user_serializer.rb*
|
534
534
|
|
535
535
|
```ruby
|
536
|
-
class UserSerializer < Tramway::
|
536
|
+
class UserSerializer < Tramway::ApplicationSerializer
|
537
537
|
attributes :username, :email
|
538
538
|
end
|
539
539
|
```
|
@@ -2,7 +2,7 @@
|
|
2
2
|
|
3
3
|
module Tramway
|
4
4
|
module Api
|
5
|
-
class ApplicationController < ::
|
5
|
+
class ApplicationController < ActionController::Base
|
6
6
|
include ::Knock::Authenticable
|
7
7
|
protect_from_forgery with: :null_session, if: proc { |c| c.request.format == 'application/json' }
|
8
8
|
rescue_from ActiveRecord::RecordNotFound, with: :not_found if Rails.env.production?
|
@@ -73,7 +73,7 @@ module Tramway
|
|
73
73
|
project: (@application_engine || application_name),
|
74
74
|
role: role,
|
75
75
|
model_name: params[:model],
|
76
|
-
|
76
|
+
current_user: current_tramway_user
|
77
77
|
)
|
78
78
|
end.compact.uniq - [false]
|
79
79
|
|
@@ -110,11 +110,11 @@ module Tramway
|
|
110
110
|
protected
|
111
111
|
|
112
112
|
def application_name
|
113
|
-
@application ||= Tramway
|
113
|
+
@application ||= Tramway.application&.model_class&.first || Tramway.application
|
114
114
|
begin
|
115
115
|
@application.name
|
116
116
|
rescue
|
117
|
-
raise("Tramway::Api @application not initialized, Tramway
|
117
|
+
raise("Tramway::Api @application not initialized, Tramway.application: #{::Tramway.application}, model_class: #{Tramway.application&.model_class }")
|
118
118
|
end
|
119
119
|
end
|
120
120
|
|
@@ -59,8 +59,8 @@ module Tramway::Api::V1
|
|
59
59
|
end
|
60
60
|
|
61
61
|
def application
|
62
|
-
if ::Tramway
|
63
|
-
@application = Tramway
|
62
|
+
if ::Tramway.application
|
63
|
+
@application = Tramway.application&.model_class&.first || Tramway.application
|
64
64
|
end
|
65
65
|
end
|
66
66
|
end
|
data/lib/tramway/api/version.rb
CHANGED
data/lib/tramway/api.rb
CHANGED
@@ -11,7 +11,7 @@ module Tramway
|
|
11
11
|
include ::Tramway::Api::SingletonModels
|
12
12
|
|
13
13
|
def auth_config
|
14
|
-
@@auth_config ||= [{ user_model: ::Tramway::User
|
14
|
+
@@auth_config ||= [{ user_model: ::Tramway::User, auth_attributes: :email }]
|
15
15
|
end
|
16
16
|
|
17
17
|
def auth_config=(params)
|
@@ -41,7 +41,7 @@ module Tramway
|
|
41
41
|
error = Tramway::Error.new(
|
42
42
|
plugin: :admin,
|
43
43
|
method: :get_models_by_key,
|
44
|
-
message: "Looks like you have not create at lease one instance of #{Tramway
|
44
|
+
message: "Looks like you have not create at lease one instance of #{Tramway.application.model_class} model"
|
45
45
|
)
|
46
46
|
raise error.message
|
47
47
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: tramway-api
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.0.0.
|
4
|
+
version: 2.0.0.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Pavel Kalashnikov
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2023-01-16 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: active_model_serializers
|
@@ -39,19 +39,19 @@ dependencies:
|
|
39
39
|
- !ruby/object:Gem::Version
|
40
40
|
version: '0'
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
|
-
name: tramway
|
42
|
+
name: tramway
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
45
|
- - ">="
|
46
46
|
- !ruby/object:Gem::Version
|
47
|
-
version: 1.
|
47
|
+
version: 0.1.0
|
48
48
|
type: :runtime
|
49
49
|
prerelease: false
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
51
51
|
requirements:
|
52
52
|
- - ">="
|
53
53
|
- !ruby/object:Gem::Version
|
54
|
-
version: 1.
|
54
|
+
version: 0.1.0
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
56
|
name: uuid
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
@@ -116,7 +116,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
116
116
|
- !ruby/object:Gem::Version
|
117
117
|
version: '0'
|
118
118
|
requirements: []
|
119
|
-
rubygems_version: 3.1
|
119
|
+
rubygems_version: 3.4.1
|
120
120
|
signing_key:
|
121
121
|
specification_version: 4
|
122
122
|
summary: Engine for api
|