symphonia 3.1.5 → 3.2.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: aa7ffaee9227f92a65343e7ceb49c1b456a55979dee59eb58084315f9395c4ff
4
- data.tar.gz: 863eab3a706edd2db29cbe2929fb9c4a873bd57bbe7516dd1aced6c3b844693c
3
+ metadata.gz: 6b48c59788b2e00b86be3e0db6b90f15833b9b26668673aa56c41a676ebca438
4
+ data.tar.gz: 3fa0287a83b8463b1e2a630ce39dd0ad49d7810ed7aefafbaffce517219bea3c
5
5
  SHA512:
6
- metadata.gz: 254b4b7854e3ea0e0c86fb8a97774db2947212d88611e32e4758d02fadd4d4b7d9ff4205eb15f82bc3c7fda78ab6f56b740693c02b3b4f085b9607a509b9f93f
7
- data.tar.gz: 931719ab8a002fa957fb9091960417d0a4a9b7b30bc9f4aa2d8244989b910aa43b79c7dc5afe32102f82bc541944f656c79e573c26a8d45922cde248e16b95db
6
+ metadata.gz: c588275faf8d81e32e22b71fc9cf0cbbdb66ee3b6f328aa83540d0129b513368f51294813535eda0432ae6c8681497cbd83484f2d9947b48985b5408dece2b99
7
+ data.tar.gz: f5a33405a69db155dda2ef9fa8527f066d5bf995b3618baad9d465936943fc379320a28c1a468077a882ced2f4e9a875bbc32a855eb0f1bf9fe78da754e4575a
data/.rubocop.yml CHANGED
@@ -1,7 +1,3 @@
1
- #require:
2
- # - rubocop-rails
3
- All:
4
- Rails: true
5
1
  AllCops:
6
2
  TargetRubyVersion: 2.5
7
3
 
@@ -16,13 +12,13 @@ Metrics/AbcSize:
16
12
  Enabled: false
17
13
  Metrics/BlockLength:
18
14
  Enabled: false
19
- Metrics/LineLength:
20
- Enabled: false
15
+ #Metrics/LineLength:
16
+ # Enabled: false
21
17
  Metrics/MethodLength:
22
18
  Enabled: false
23
19
 
24
- Style/BracesAroundHashParameters:
25
- EnforcedStyle: context_dependent
20
+ #Style/BracesAroundHashParameters:
21
+ # EnforcedStyle: context_dependent
26
22
  Style/Documentation:
27
23
  Enabled: false
28
24
  Style/MutableConstant:
@@ -1,4 +1,3 @@
1
- //= require ckeditor-jquery
2
1
  //= require_self
3
2
 
4
3
  CKEDITOR.editorConfig = function( config )
@@ -0,0 +1,134 @@
1
+ module Symphonia
2
+ module Swagger
3
+ module BaseController
4
+ extend ActiveSupport::Concern
5
+ # General swagger description
6
+ #
7
+ # How to use:
8
+ # `include Symphonia::Swagger::BaseController`
9
+ # # it include all necessary methods then you need call
10
+ # `swagger_me entity: "MyModelName", base_path: "/my_entities"`
11
+ # for change which tags list are used with all this endpoints override method `tag_list`
12
+ #
13
+ class_methods do
14
+
15
+ # @param [String] name of swagger model
16
+ def entity=(name)
17
+ @entity = name
18
+ end
19
+
20
+ # @param [String] path - route
21
+ def base_path=(path)
22
+ @base_path = path
23
+ end
24
+
25
+ # @abstract guess entity name from controller
26
+ def entity
27
+ @entity || name.demodulize.remove("Controller").singularize
28
+ end
29
+
30
+ # @abstract base route to described controller
31
+ def base_path
32
+ @base_path || "/#{entity_name.pluralize}"
33
+ end
34
+
35
+ # @abstract name used in params
36
+ def entity_name
37
+ entity.underscore
38
+ end
39
+
40
+ # @return [Array]
41
+ def tag_list
42
+ [entity]
43
+ end
44
+
45
+ # @param [String] entity is singular name of described model
46
+ # @param [String] base_path in URL where is model located in app
47
+ def swagger_me(entity: name.demodulize.remove("Controller").singularize, base_path: nil)
48
+ self.entity = entity
49
+ self.base_path = base_path || "/#{entity_name.pluralize}"
50
+ include GeneralDefinitions
51
+ end
52
+
53
+ end
54
+ module GeneralDefinitions
55
+ extend ActiveSupport::Concern
56
+ included do
57
+ include ::Swagger::Blocks
58
+
59
+ base = self
60
+ swagger_path "#{base.base_path}.json" do
61
+ operation :get do
62
+ key :summary, "List"
63
+ key :tags, base.tag_list
64
+ parameter do
65
+ key :name, "q"
66
+ key :description, "free-text filter of current entity - `like`"
67
+ key :in, "query"
68
+ schema type: "string"
69
+ end
70
+ parameter do
71
+ key :name, "set_filter"
72
+ key :description, "enable filtering"
73
+ key :in, "query"
74
+ schema type: "boolean"
75
+ end
76
+ parameter do
77
+ key :name, "sort"
78
+ key :description, "name of 'column' for sort. Can be also in format name:asc or :desc"
79
+ key :example, "email:desc (for reverse order users by e-mail"
80
+ key :in, "query"
81
+ schema type: "string"
82
+ end
83
+ parameter do
84
+ key :name, "page"
85
+ key :description, "number of requested page"
86
+ key :in, "query"
87
+ schema type: "integer"
88
+ end
89
+ extend Symphonia::Swagger::Responses
90
+ response 200 do
91
+ key :description, "ok"
92
+ content "application/json" do
93
+ schema type: "array" do
94
+ items do
95
+ key "$ref", base.entity
96
+ end
97
+ end
98
+ end
99
+ end
100
+ end
101
+ end
102
+
103
+ swagger_path "#{base.base_path}/{id}.json" do
104
+ operation :get do
105
+ key :summary, 'Find by ID'
106
+ key :description, 'Returns a single entity'
107
+ key :tags, base.tag_list
108
+ parameter do
109
+ key :name, "id"
110
+ key :in, "path"
111
+ key :description, 'ID to fetch'
112
+ key :required, true
113
+ schema do
114
+ key :type, "integer"
115
+ key :format, "int64"
116
+ end
117
+ end
118
+ extend Symphonia::Swagger::Responses
119
+ response 200 do
120
+ key :description, 'detail object response'
121
+ content "application/json" do
122
+ schema do
123
+ key :'$ref', base.entity
124
+ end
125
+ end
126
+ end
127
+ end
128
+ end
129
+ end
130
+ end
131
+
132
+ end
133
+ end
134
+ end
@@ -2,13 +2,19 @@ module Symphonia
2
2
  class ApiController < ApplicationController
3
3
  include ::Swagger::Blocks
4
4
  # https://github.com/fotinakis/swagger-blocks
5
- swagger_root do
6
- key :swagger, '2.0'
5
+ swagger_component do
6
+ security_scheme "token" do
7
+ key :type, "apiKey"
8
+ key :name, "key"
9
+ key :in, "header"
10
+ end
11
+ end
12
+
13
+ swagger_root openapi: "3.0.0" do
7
14
  info do
8
- key :version, '1.0.0'
9
- key :title, 'Symphonia API'
10
- key :description, ''
11
- # key :termsOfService, 'http://helloreverb.com/terms/'
15
+ key :version, '2.0.0'
16
+ key :title, "API"
17
+ key :description, ""
12
18
  contact do
13
19
  key :name, 'Lukas Pokorny'
14
20
  key :email, 'pokorny@luk4s.cz'
@@ -17,36 +23,16 @@ module Symphonia
17
23
  key :name, 'GPLv3'
18
24
  end
19
25
  end
20
- # tag do
21
- # key :name, 'pet'
22
- # key :description, 'Pets operations'
23
- # externalDocs do
24
- # key :description, 'Find more info here'
25
- # key :url, 'https://swagger.io'
26
- # end
27
- # end
28
- # key :host, 'petstore.swagger.wordnik.com'
29
- key :basePath, '/'
30
- key :consumes, ['application/json']
31
- key :produces, ['application/json']
32
26
 
33
- security_definition :token do
34
- key :type, :apiKey
35
- key :name, :Authorization
36
- key :in, :header
37
- end
38
27
  security do
39
28
  key :token, []
40
29
  end
41
- # security_definition :petstore_auth do
42
- # key :type, :oauth2
43
- # key :authorizationUrl, 'http://swagger.io/api/oauth/dialog'
44
- # key :flow, :implicit
45
- # scopes do
46
- # key 'write:pets', 'modify pets in your account'
47
- # key 'read:pets', 'read your pets'
48
- # end
49
- # end
30
+
31
+ tag name: "admin" do
32
+ key :description, "endpoints required `admin`"
33
+ end
34
+ tag name: "User" do
35
+ end
50
36
  end
51
37
 
52
38
  # A list of all classes that have swagger_* declarations.
@@ -54,11 +40,39 @@ module Symphonia
54
40
  UsersController,
55
41
  User,
56
42
  Swagger::ErrorModel,
57
- self
58
43
  ]
44
+ def self.for_documentation
45
+ SWAGGERED_CLASSES + Symphonia::ApiController::SWAGGERED_CLASSES
46
+ end
47
+
48
+ # @param [String] name of tag
49
+ # @param [String] description
50
+ def self.add_tag(name:, description:)
51
+ swagger_root_node.tag name: name, description: description
52
+ end
53
+
54
+ # @return [Swagger::Blocks::Nodes::RootNode]
55
+ def self.swagger_root_node
56
+ node = Symphonia::ApiController.send(:_swagger_nodes)
57
+ node[:root_node]
58
+ end
59
+
60
+ # @param [String] text
61
+ def self.api_title=(text)
62
+ swagger_root_node.data[:info].data[:title] = text
63
+ end
64
+
65
+ # @param [String] text
66
+ def self.api_description=(text)
67
+ swagger_root_node.data[:info].data[:description] = text
68
+ end
59
69
 
60
70
  def index
61
- render json: ::Swagger::Blocks.build_root_json(SWAGGERED_CLASSES)
71
+ json = ::Swagger::Blocks.build_root_json(self.class.for_documentation + [self.class])
72
+ respond_to do |format|
73
+ format.yaml { render plain: json.deep_stringify_keys.to_yaml }
74
+ format.json { render json: json }
75
+ end
62
76
  end
63
77
  end
64
78
  end
@@ -8,7 +8,7 @@ module Symphonia
8
8
  end
9
9
 
10
10
  def current_session
11
- current_user_session
11
+ current_user_session
12
12
  end
13
13
 
14
14
  end
@@ -1,38 +1,10 @@
1
1
  module Symphonia
2
2
  class UsersController < ApplicationController
3
- include ::Swagger::Blocks
4
-
5
- swagger_path '/admin/users/{id}.json' do
6
- operation :get do
7
- key :summary, 'Find User by ID'
8
- key :description, 'Returns a single user if the user has access'
9
- # key :operationId, 'findPetById'
10
- # key :tags, [
11
- # 'pet'
12
- # ]
13
- parameter do
14
- key :name, :id
15
- key :in, :path
16
- key :description, 'ID of user to fetch'
17
- key :required, true
18
- key :type, :integer
19
- key :format, :int64
20
- end
21
- extend Symphonia::Swagger::Responses
22
- response 200 do
23
- key :description, 'user response'
24
- schema do
25
- key :'$ref', :User
26
- end
27
- end
28
- # response :default do
29
- # key :description, 'unexpected error'
30
- # schema do
31
- # key :'$ref', :ErrorModel
32
- # end
33
- # end
34
- end
3
+ include Symphonia::Swagger::BaseController
4
+ def self.tag_list
5
+ %w[User admin]
35
6
  end
7
+ swagger_me entity: "User", base_path: "/admin/users"
36
8
 
37
9
  helper Symphonia::RendererHelper
38
10
 
@@ -4,8 +4,6 @@ module Symphonia
4
4
  def symphonia_form_for(object, options={}, &block)
5
5
  options.reverse_merge!(builder: Symphonia::FormBuilder)
6
6
 
7
- options = process_options(options)
8
-
9
7
  unless options[:remote] && options[:local].nil?
10
8
  options[:local] = true
11
9
  end
@@ -3,15 +3,20 @@ module Symphonia
3
3
  class ErrorModel
4
4
  include ::Swagger::Blocks
5
5
 
6
- swagger_schema :ErrorModel do
7
- key :required, %i[attribute messages]
8
- property :attribute do
9
- key :type, :string
10
- key :example, "login"
11
- end
12
- property :messages do
13
- key :type, :array
14
- key :example, "[cannot be blank]"
6
+ swagger_component do
7
+ schema :ErrorModel do
8
+ key :required, %w[attribute messages]
9
+ property :attribute do
10
+ key :type, "string"
11
+ key :example, "login"
12
+ end
13
+ property :messages do
14
+ key :type, "array"
15
+ items do
16
+ key :type, "string"
17
+ key :example, "cannot be blank"
18
+ end
19
+ end
15
20
  end
16
21
  end
17
22
  end
@@ -0,0 +1,21 @@
1
+ module Symphonia
2
+ module Swagger
3
+ module Parameters
4
+ def self.extended(base)
5
+
6
+ base.parameter do
7
+ key :name, "format"
8
+ key :description, "specify format of response"
9
+ key :in, "path"
10
+ key :required, true
11
+ schema do
12
+ key :type, "string"
13
+ key :enum, %w[json]
14
+ end
15
+ end
16
+
17
+ end
18
+ end
19
+
20
+ end
21
+ end
@@ -13,8 +13,8 @@ module Symphonia
13
13
  end
14
14
  base.response 422 do
15
15
  key :description, 'unprocessable entity'
16
- schema do
17
- key :'$ref', :ErrorModel
16
+ content "application/json" do
17
+ schema "$ref": "ErrorModel"
18
18
  end
19
19
  end
20
20
  base.response 500 do
@@ -31,26 +31,27 @@ module Symphonia
31
31
  include UserManagement
32
32
 
33
33
  include ::Swagger::Blocks
34
-
35
- swagger_schema :User do
36
- key :required, %i[id login email]
37
- property :id do
38
- key :type, :integer
39
- key :format, :int64
40
- end
41
- property :fist_name do
42
- key :type, :string
43
- end
44
- property :last_name do
45
- key :type, :string
46
- end
47
- property :email do
48
- key :type, :string
49
- key :format, :email
50
- end
51
- property :status do
52
- key :type, :string
53
- key :enum, Symphonia::User.statuses.keys
34
+ swagger_component do
35
+ schema :User do
36
+ key :required, %w[id login email]
37
+ property :id do
38
+ key :type, "integer"
39
+ key :format, "int64"
40
+ end
41
+ property :fist_name do
42
+ key :type, "string"
43
+ end
44
+ property :last_name do
45
+ key :type, "string"
46
+ end
47
+ property :email do
48
+ key :type, "string"
49
+ key :format, "email"
50
+ end
51
+ property :status do
52
+ key :type, "string"
53
+ key :enum, Symphonia::User.statuses.keys
54
+ end
54
55
  end
55
56
  end
56
57
 
@@ -155,7 +156,7 @@ module Symphonia
155
156
  end
156
157
 
157
158
  def language
158
- Symphonia.config.default_locale || I18n.default_locale
159
+ nil
159
160
  end
160
161
  end
161
162
 
@@ -0,0 +1,6 @@
1
+ class AddUuidToUsers < ActiveRecord::Migration[6.0]
2
+ def change
3
+ uuid_type = connection.adapter_name =~ /PostgreSQL/i ? :uuid : :string
4
+ add_column :users, :uuid, uuid_type
5
+ end
6
+ end
@@ -0,0 +1,5 @@
1
+ class AddAvatarToUsers < ActiveRecord::Migration[6.0]
2
+ def change
3
+ add_column :users, :avatar_url, :string
4
+ end
5
+ end
data/db/seeds.rb CHANGED
@@ -6,7 +6,8 @@ u.attributes = {
6
6
  email: 'luk4s.pokorny@gmail.com',
7
7
  password: 'admin',
8
8
  # password_confirmation: 'admin',
9
- admin: true
9
+ admin: true,
10
+ avatar_url: "https://secure.gravatar.com/avatar/3657d5f0e9747c1c21eb2b689a8dba0b?s=64"
10
11
  }
11
12
  u.single_access_token = SecureRandom.hex(20)
12
13
  u.save!(validate: false)
@@ -16,7 +16,8 @@ module Symphonia
16
16
  end
17
17
 
18
18
  def copy_assets
19
- append_to_file 'app/assets/javascripts/application.js', '//= require symphonia/application'
19
+ template 'app/assets/javascripts/application.js'
20
+ append_to_file 'app/assets/config/manifest.js', '//= link symphonia_manifest.js'
20
21
  copy_file 'design.scss', 'app/assets/stylesheets/general.scss'
21
22
  end
22
23
 
@@ -0,0 +1 @@
1
+ //= require symphonia/application
@@ -6,10 +6,17 @@ module Symphonia
6
6
  # def model
7
7
  # YourModel
8
8
  # end
9
+ # OR
10
+ # self.model = YourModel
9
11
  #
10
12
  # def safe_attributes
11
13
  # %i[]
12
14
  # end
15
+ #
16
+ # def swagger_path
17
+ # false # => for disable swagger
18
+ # "/my-custom-path" # => for custom route
19
+ # end
13
20
  module BaseController
14
21
  extend ActiveSupport::Concern
15
22
 
@@ -24,6 +31,7 @@ module Symphonia
24
31
  # @param [Class] model
25
32
  class_attribute :model
26
33
 
34
+ include Symphonia::Swagger::BaseController
27
35
  end
28
36
 
29
37
  class_methods do
@@ -83,10 +83,10 @@ module Symphonia
83
83
 
84
84
  initializer :assets do |_app|
85
85
  config.assets.precompile << 'symphonia/application.css'
86
- if defined?(::Ckeditor)
87
- config.assets.precompile << 'ckeditor/**/*'
88
- config.assets.precompile << 'symphonia/symphonia_ckeditor.js'
89
- end
86
+ #if defined?(::Ckeditor)
87
+ # config.assets.precompile << 'ckeditor/**/*'
88
+ # config.assets.precompile << 'symphonia/symphonia_ckeditor.js'
89
+ #end
90
90
  end
91
91
 
92
92
  initializer :symphonia_general_permissions do |_app|
@@ -174,7 +174,7 @@ module Symphonia
174
174
 
175
175
  class DateTimeAttribute < Attribute
176
176
  def format_value(view, value, entity)
177
- value && view.l(value, format_options)
177
+ value && view.l(value.localtime, format_options)
178
178
  end
179
179
  end
180
180
  class DatetimeAttribute < DateTimeAttribute
@@ -1,3 +1,3 @@
1
1
  module Symphonia
2
- VERSION = '3.1.5'
2
+ VERSION = '3.2.1'
3
3
  end
@@ -3,7 +3,7 @@ module Symphonia
3
3
  routes { Symphonia::Engine.routes }
4
4
 
5
5
  it "#index" do
6
- get :index
6
+ get :index, params: {format: "yml"}
7
7
  end
8
8
  end
9
9
  end
@@ -17,16 +17,21 @@ class DummyBaseA < Symphonia::ApplicationController
17
17
  self.model = ModelA
18
18
  end
19
19
  class DummyBaseB < DummyBaseA
20
- # include Symphonia::BaseController
21
20
  self.model = ModelB
22
21
  end
23
22
 
24
23
  RSpec.describe DummyBaseB do
25
- # subject { described_class.new }
24
+
26
25
  controller do
26
+ before_action :set_locale, only: :index
27
+
27
28
  def show
28
29
  render plain: model.name
29
30
  end
31
+
32
+ def index
33
+ render plain: t(:language)
34
+ end
30
35
  end
31
36
  it "#model" do
32
37
  subject = DummyBaseA.new
@@ -39,4 +44,34 @@ RSpec.describe DummyBaseB do
39
44
  get :show, params: { id: 1 }
40
45
  expect(response.body).to eq "ModelB"
41
46
  end
47
+
48
+ describe "#set_locale" do
49
+ before do
50
+ I18n.locale = :cs
51
+ end
52
+ context "logged user", logged: true do
53
+ before { Symphonia::User.current.language = :cs }
54
+ it "enforce language of user" do
55
+ get :index
56
+ expect(response.body).to eq "Čeština"
57
+ Symphonia::User.current.language = :en
58
+ get :index
59
+ expect(response.body).to eq "English"
60
+ end
61
+
62
+ it "ignore :locale params" do
63
+ get :index, params: { locale: "en" }
64
+ expect(response.body).to eq "Čeština"
65
+ end
66
+ end
67
+ it "anonymous default language" do
68
+ get :index
69
+ expect(response.body).to eq "Čeština"
70
+ end
71
+
72
+ it "anonymous language by :locale" do
73
+ get :index, params: { locale: "en" }
74
+ expect(response.body).to eq "English"
75
+ end
76
+ end
42
77
  end
data/spec/spec_helper.rb CHANGED
@@ -11,7 +11,7 @@ Dir.glob(File.expand_path('../support/*.rb', __FILE__)).each do |file|
11
11
  require file
12
12
  end
13
13
 
14
- ActiveRecord::Migration.maintain_test_schema!
14
+ # ActiveRecord::Migration.maintain_test_schema!
15
15
 
16
16
  Paperclip::Attachment.default_options[:path] = "#{Rails.root}/spec/test_files/:class/:id_partition/:style.:extension"
17
17
  # See http://rubydoc.info/gems/rspec-core/RSpec/Core/Configuration
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: symphonia
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.1.5
4
+ version: 3.2.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Lukas Pokorny
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-01-20 00:00:00.000000000 Z
11
+ date: 2020-05-01 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rake
@@ -240,14 +240,14 @@ dependencies:
240
240
  requirements:
241
241
  - - "~>"
242
242
  - !ruby/object:Gem::Version
243
- version: '4.3'
243
+ version: 4.4.0
244
244
  type: :runtime
245
245
  prerelease: false
246
246
  version_requirements: !ruby/object:Gem::Requirement
247
247
  requirements:
248
248
  - - "~>"
249
249
  - !ruby/object:Gem::Version
250
- version: '4.3'
250
+ version: 4.4.0
251
251
  - !ruby/object:Gem::Dependency
252
252
  name: the_sortable_tree
253
253
  requirement: !ruby/object:Gem::Requirement
@@ -310,14 +310,14 @@ dependencies:
310
310
  requirements:
311
311
  - - "~>"
312
312
  - !ruby/object:Gem::Version
313
- version: '2.0'
313
+ version: '3.0'
314
314
  type: :runtime
315
315
  prerelease: false
316
316
  version_requirements: !ruby/object:Gem::Requirement
317
317
  requirements:
318
318
  - - "~>"
319
319
  - !ruby/object:Gem::Version
320
- version: '2.0'
320
+ version: '3.0'
321
321
  - !ruby/object:Gem::Dependency
322
322
  name: rspec-rails
323
323
  requirement: !ruby/object:Gem::Requirement
@@ -450,6 +450,7 @@ files:
450
450
  - app/assets/stylesheets/symphonia/symphonia_bootstrap.scss
451
451
  - app/channels/application_cable/channel.rb
452
452
  - app/controllers/base_controller.rb
453
+ - app/controllers/concerns/symphonia/swagger/base_controller.rb
453
454
  - app/controllers/symphonia/accounts_controller.rb
454
455
  - app/controllers/symphonia/admin_controller.rb
455
456
  - app/controllers/symphonia/api_controller.rb
@@ -476,6 +477,7 @@ files:
476
477
  - app/models/symphonia/preference.rb
477
478
  - app/models/symphonia/role.rb
478
479
  - app/models/symphonia/swagger/error_model.rb
480
+ - app/models/symphonia/swagger/parameters.rb
479
481
  - app/models/symphonia/swagger/responses.rb
480
482
  - app/models/symphonia/user.rb
481
483
  - app/models/symphonia/user_session.rb
@@ -545,6 +547,8 @@ files:
545
547
  - db/migrate/20130828175114_create_attachments.rb
546
548
  - db/migrate/20141213204351_create_admin_modules.rb
547
549
  - db/migrate/20190706130409_add_external_id_to_users.rb
550
+ - db/migrate/20200428180001_add_uuid_to_users.rb
551
+ - db/migrate/20200428180008_add_avatar_to_users.rb
548
552
  - db/seeds.rb
549
553
  - lib/generators/symphonia/entity_controller/entity_controller_generator.rb
550
554
  - lib/generators/symphonia/entity_controller/templates/controller.rb
@@ -553,6 +557,7 @@ files:
553
557
  - lib/generators/symphonia/setup/templates/404.html
554
558
  - lib/generators/symphonia/setup/templates/500.html
555
559
  - lib/generators/symphonia/setup/templates/Gemfile
560
+ - lib/generators/symphonia/setup/templates/app/assets/javascripts/application.js.tt
556
561
  - lib/generators/symphonia/setup/templates/base_layout.html.erb
557
562
  - lib/generators/symphonia/setup/templates/design.scss
558
563
  - lib/generators/symphonia/setup/templates/settings.rb