ecom_core 1.1.5 → 1.1.10

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.
Files changed (28) hide show
  1. checksums.yaml +4 -4
  2. data/app/controllers/concerns/ecom/core/resource_typeable.rb +3 -3
  3. data/app/controllers/ecom/core/application_modules_controller.rb +3 -3
  4. data/app/controllers/ecom/core/user_roles_controller.rb +3 -3
  5. data/app/controllers/ecom/core/users_controller.rb +4 -4
  6. data/app/models/ecom/core/attendance_sheet.rb +58 -0
  7. data/app/models/ecom/core/attendance_sheet_entry.rb +8 -0
  8. data/app/models/ecom/core/crew.rb +0 -1
  9. data/app/models/ecom/core/crew_time.rb +7 -7
  10. data/app/serializers/ecom/core/application_module_serializer.rb +2 -2
  11. data/app/serializers/ecom/core/lookup_serializer.rb +2 -2
  12. data/app/serializers/ecom/core/resource_type_serializer.rb +2 -2
  13. data/app/serializers/ecom/core/user_role_serializer.rb +2 -2
  14. data/app/serializers/ecom/core/user_serializer.rb +2 -2
  15. data/app/services/ecom/core/menu_service.rb +3 -3
  16. data/db/data/20200401064242_move_date_to_attendance_sheet.rb +20 -0
  17. data/db/migrate/20200401040433_create_ecom_core_attendance_sheets.rb +13 -0
  18. data/db/migrate/20200401071343_remove_date_column_from_crew_times.rb +5 -0
  19. data/db/migrate/20200401122539_create_ecom_core_attendance_sheet_entries.rb +14 -0
  20. data/db/migrate/20200401142959_relate_crew_time_with_attendance_sheet_entry.rb +8 -0
  21. data/db/migrate/20200401144137_remove_crew_time_id_from_crew.rb +7 -0
  22. data/lib/ecom/core/version.rb +1 -1
  23. data/lib/ecom_core.rb +2 -1
  24. data/spec/factories/ecom/core/attendance_sheet_entries.rb +7 -0
  25. data/spec/factories/ecom/core/attendance_sheets.rb +9 -0
  26. data/spec/factories/ecom/core/crew_times.rb +1 -2
  27. metadata +22 -13
  28. data/app/serializers/ecom/core/application_serializer.rb +0 -20
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: bb5b6db138db077ae3162b60efbfdee5cabb4b362821364f6855bb64a31c1bc7
4
- data.tar.gz: 6f3327caa33dd591ec4d4ee429c4c956035209a0c653f683200ec64faa3f6a68
3
+ metadata.gz: 21d88a79d247105aca7d954e252af349bcec619aae7f3022a6a8600c87789473
4
+ data.tar.gz: dde26dadde5937c3038971b740f4c9f3a66d6d7e55f712fde53b2efc6531d427
5
5
  SHA512:
6
- metadata.gz: 89d2fdcac80008992d68c0b7fde70cc75064d014144875592f141dc8007d46c14ac3cec922f5c9b139d04544d0dc62f3e377ba13116b42c2ff69cbc81c9fc3ad
7
- data.tar.gz: aea4236c00a9636d34ff52afccd465bc6b6c238c6bd7cf883d08ab61504fb687432c39243129c877201ea5263b2a0ed140c54a953a484291721277e357660b09
6
+ metadata.gz: 694ccf565bb676c5bf30b593fe87fce5bb5437687d1e30ebe349f3b93b7dd505c3f87985e2ad45f80bd487f5c0bc7086265a0a6d8a2480fdea6ae95edbb7e9a1
7
+ data.tar.gz: 7bcd844e8182301b169b43d3bb503a60640f5677223aa91442fe2bf901e99d3572fdd541725a6a6c0bb1137c78591ddb0d6bb8feebf499aa681f2eb20199ca2a
@@ -8,13 +8,13 @@ module Ecom
8
8
  end
9
9
 
10
10
  def index
11
- render json: ResourceTypeSerializer.new(@clazz.all).serializable_hash
11
+ render json: @clazz.all
12
12
  end
13
13
 
14
14
  def create
15
15
  resource_type = @clazz.new(resource_type_params)
16
16
  if resource_type.save
17
- render json: ResourceTypeSerializer.new(resource_type).serializable_hash, status: :created
17
+ render json: resource_type, status: :created
18
18
  else
19
19
  render json: { success: false, errors: resource_type.errors }, status: :unprocessable_entity
20
20
  end
@@ -23,7 +23,7 @@ module Ecom
23
23
  def update
24
24
  resource_type = @clazz.find(params[:id])
25
25
  if resource_type.update(resource_type_params)
26
- render json: ResourceTypeSerializer.new(resource_type).serializable_hash
26
+ render json: resource_type
27
27
  else
28
28
  render json: { success: false, errors: resource_type.errors }, status: :unprocessable_entity
29
29
  end
@@ -2,13 +2,13 @@ module Ecom
2
2
  module Core
3
3
  class ApplicationModulesController < ApplicationController
4
4
  def index
5
- render json: ApplicationModuleSerializer.new(ApplicationModule.all).serializable_hash
5
+ render json: ApplicationModule.all
6
6
  end
7
7
 
8
8
  def create
9
9
  application_module = ApplicationModule.new(application_module_params)
10
10
  if application_module.save
11
- render json: ApplicationModuleSerializer.new(application_module).serializable_hash, status: :created
11
+ render json: application_module, status: :created
12
12
  else
13
13
  render json: { success: false, errors: application_module.errors }, status: :unprocessable_entity
14
14
  end
@@ -17,7 +17,7 @@ module Ecom
17
17
  def update
18
18
  application_module = ApplicationModule.find(params[:id])
19
19
  if application_module.update(application_module_params)
20
- render json: ApplicationModuleSerializer.new(application_module).serializable_hash
20
+ render json: application_module
21
21
  else
22
22
  render json: { success: false, errors: application_module.errors }, status: :unprocessable_entity
23
23
  end
@@ -4,14 +4,14 @@ module Ecom
4
4
  before_action :set_user_role, only: [:update]
5
5
 
6
6
  def index
7
- render json: UserRoleSerializer.new(UserRole.all).serializable_hash
7
+ render json: UserRole.all
8
8
  end
9
9
 
10
10
  def create
11
11
  user_role = UserRole.new(user_role_params)
12
12
 
13
13
  if user_role.save
14
- render json: UserRoleSerializer.new(user_role).serializable_hash, status: :created
14
+ render json: user_role, status: :created
15
15
  else
16
16
  render json: { success: false, errors: user_role.errors }, status: :unprocessable_entity
17
17
  end
@@ -19,7 +19,7 @@ module Ecom
19
19
 
20
20
  def update
21
21
  if @user_role.update(user_role_params)
22
- render json: UserRoleSerializer.new(@user_role).serializable_hash
22
+ render json: @user_role
23
23
  else
24
24
  render json: { success: false, errors: @user_role.errors }, status: :unprocessable_entity
25
25
  end
@@ -4,17 +4,17 @@ module Ecom
4
4
  before_action :set_user, only: [:update]
5
5
 
6
6
  def index
7
- render json: UserSerializer.new(User.all).serializable_hash
7
+ render json: User.all
8
8
  end
9
9
 
10
10
  def active
11
- render json: UserSerializer.new(User.active).serializable_hash
11
+ render json: User.active
12
12
  end
13
13
 
14
14
  def create
15
15
  user = User.new(user_params)
16
16
  if user.save
17
- render json: UserSerializer.new(user).serializable_hash, status: :created
17
+ render json: user, status: :created
18
18
  else
19
19
  render json: { success: false, errors: user.errors }, status: :unprocessable_entity
20
20
  end
@@ -22,7 +22,7 @@ module Ecom
22
22
 
23
23
  def update
24
24
  if @user.update(user_params)
25
- render json: UserSerializer.new(@user).serializable_hash
25
+ render json: @user
26
26
  else
27
27
  render json: { success: false, errors: @user.errors }, status: :unprocessable_entity
28
28
  end
@@ -0,0 +1,58 @@
1
+ module Ecom
2
+ module Core
3
+ class AttendanceSheet < ApplicationRecord
4
+ OPEN = 'Open'.freeze
5
+ CLOSED = 'Closed'.freeze
6
+
7
+ validates :date, :opened_at, presence: true, uniqueness: true
8
+ validates :status, inclusion: [OPEN, CLOSED]
9
+
10
+ has_many :attendance_sheet_entries
11
+
12
+ scope :open, -> { find_by(status: OPEN) }
13
+
14
+ def self.exists_for_today?
15
+ AttendanceSheet.where(date: Date.today).exists?
16
+ end
17
+
18
+ def self.open_exists_for_today?
19
+ where(status: OPEN, date: Date.today).exists?
20
+ end
21
+
22
+ # Attendance sheet should be created using the
23
+ # method below only. This is because we need to
24
+ # check if there is an open attendance already,
25
+ # and also that we have only one attendace sheet
26
+ # per day.
27
+ def self.create_current
28
+ raise 'Attendance sheet already created for the day.' if AttendanceSheet.exists_for_today?
29
+
30
+ AttendanceSheet.create(date: Date.today, opened_at: Time.now, status: OPEN)
31
+ end
32
+
33
+ def self.close_current
34
+ sheet = AttendanceSheet.find_by(date: Date.today, status: OPEN)
35
+
36
+ raise 'There is no attendance sheet to close.' if sheet.nil?
37
+
38
+ sheet.closed_at = Time.now
39
+ sheet.status = CLOSED
40
+ sheet.save
41
+ sheet
42
+ end
43
+
44
+ # This method should be used by privileged users
45
+ # to close the attendance sheet after the date has
46
+ # passed. Normally, timekeepers need to open and close
47
+ # an attendance sheet of a date on the specific date.
48
+ def self.close
49
+ raise 'There is no attendance sheet to close.' unless AttendanceSheet.open_exists_for_today?
50
+
51
+ sheet = AttendanceSheet.open
52
+ sheet.closed_at = Time.now
53
+ sheet.save
54
+ sheet
55
+ end
56
+ end
57
+ end
58
+ end
@@ -0,0 +1,8 @@
1
+ module Ecom
2
+ module Core
3
+ class AttendanceSheetEntry < ApplicationRecord
4
+ belongs_to :attendance_sheet
5
+ belongs_to :crew
6
+ end
7
+ end
8
+ end
@@ -8,7 +8,6 @@ module Ecom
8
8
  if: proc { |c| c.employment_date.nil? }
9
9
 
10
10
  belongs_to :crew_type
11
- has_many :crew_times, class_name: 'Ecom::Core::CrewTime'
12
11
 
13
12
  validates :name, :qualification, presence: true
14
13
  validates :employment, inclusion: [PERMANENT, TEMPORARY]
@@ -1,15 +1,15 @@
1
1
  module Ecom
2
2
  module Core
3
3
  class CrewTime < ApplicationRecord
4
- belongs_to :crew
4
+ belongs_to :attendance_sheet_entry
5
5
  belongs_to :overtime_type, optional: true
6
6
 
7
- validates :date, :hours, :converted_hours, presence: true
8
- validates_each :date do |record, attr, value|
9
- if record.crew && value && (value < record.crew.employment_date)
10
- record.errors.add(attr, 'should be after employment date')
11
- end
12
- end
7
+ validates :hours, :converted_hours, presence: true
8
+ # validates_each :date do |record, attr, value|
9
+ # if record.crew && value && (value < record.crew.employment_date)
10
+ # record.errors.add(attr, 'should be after employment date')
11
+ # end
12
+ # end
13
13
 
14
14
  before_save :calculate_converted_hours
15
15
 
@@ -1,7 +1,7 @@
1
1
  module Ecom
2
2
  module Core
3
- class ApplicationModuleSerializer < ApplicationSerializer
4
- attributes :code, :name
3
+ class ApplicationModuleSerializer < ActiveModel::Serializer
4
+ attributes :id, :code, :name
5
5
  end
6
6
  end
7
7
  end
@@ -1,7 +1,7 @@
1
1
  module Ecom
2
2
  module Core
3
- class LookupSerializer < ApplicationSerializer
4
- attributes :name, :type
3
+ class LookupSerializer < ActiveModel::Serializer
4
+ attributes :id, :name, :type
5
5
  end
6
6
  end
7
7
  end
@@ -1,7 +1,7 @@
1
1
  module Ecom
2
2
  module Core
3
- class ResourceTypeSerializer < ApplicationSerializer
4
- attributes :code, :name, :base_unit, :type
3
+ class ResourceTypeSerializer < ActiveModel::Serializer
4
+ attributes :id, :code, :name, :base_unit, :type
5
5
  end
6
6
  end
7
7
  end
@@ -1,7 +1,7 @@
1
1
  module Ecom
2
2
  module Core
3
- class UserRoleSerializer < ApplicationSerializer
4
- attributes :name
3
+ class UserRoleSerializer < ActiveModel::Serializer
4
+ attributes :id, :name
5
5
  end
6
6
  end
7
7
  end
@@ -1,7 +1,7 @@
1
1
  module Ecom
2
2
  module Core
3
- class UserSerializer < ApplicationSerializer
4
- attributes :first_name, :last_name, :email, :active
3
+ class UserSerializer < ActiveModel::Serializer
4
+ attributes :id, :first_name, :last_name, :email, :active
5
5
  end
6
6
  end
7
7
  end
@@ -9,12 +9,12 @@ module Ecom
9
9
  SQL
10
10
  menu = Menu.joins(join_sql).where('UR.id IN (?)', role_ids).distinct
11
11
  menu_list = menu.select { |m| m.parent.nil? }.each_with_object([]) do |item, list|
12
- list << { id: item.id, label: item.label, icon: item.icon, route: item.route, children: [] }
12
+ list << { id: item.id, label: item.label, icon: item.icon, routerLink: item.route, items: [] }
13
13
  end
14
14
 
15
15
  menu_list.each do |ml|
16
- ml[:children] = menu.reject { |m| m.parent.nil? }.each_with_object([]) do |item, list|
17
- list << { id: item.id, label: item.label, icon: item.icon, route: item.route } if item.parent_id == ml[:id]
16
+ ml[:items] = menu.reject { |m| m.parent.nil? }.each_with_object([]) do |item, list|
17
+ list << { id: item.id, label: item.label, icon: item.icon, routerLink: item.route } if item.parent_id == ml[:id]
18
18
  end
19
19
  end
20
20
  menu_list
@@ -0,0 +1,20 @@
1
+ class MoveDateToAttendanceSheet < ActiveRecord::Migration[6.0]
2
+ def up
3
+ dates = Ecom::Core::CrewTime.pluck('DISTINCT date(date)')
4
+
5
+ return if dates.count.zero?
6
+
7
+ attendances = []
8
+ dates.each do |date|
9
+ attendances << Ecom::Core::AttendanceSheet.new(date: date)
10
+ end
11
+
12
+ Ecom::Core::AttendanceSheet.transaction do
13
+ attendances.each(&:save)
14
+ end
15
+ end
16
+
17
+ def down
18
+ raise ActiveRecord::IrreversibleMigration
19
+ end
20
+ end
@@ -0,0 +1,13 @@
1
+ class CreateEcomCoreAttendanceSheets < ActiveRecord::Migration[6.0]
2
+ def change
3
+ create_table :ecom_core_attendance_sheets do |t|
4
+ t.date :date, null: false, unique: true
5
+ t.time :opened_at, null: false
6
+ t.time :closed_at
7
+ t.string :remark
8
+ t.string :status, null: false, default: 'Open'
9
+
10
+ t.timestamps
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,5 @@
1
+ class RemoveDateColumnFromCrewTimes < ActiveRecord::Migration[6.0]
2
+ def change
3
+ remove_column :ecom_core_crew_times, :date
4
+ end
5
+ end
@@ -0,0 +1,14 @@
1
+ class CreateEcomCoreAttendanceSheetEntries < ActiveRecord::Migration[6.0]
2
+ def change
3
+ create_table :ecom_core_attendance_sheet_entries do |t|
4
+ t.references :attendance_sheet, null: false, index: { name: 'ase_on_as_indx' }
5
+ t.references :crew, null: false, index: { name: 'ase_on_crew_indx' }
6
+ t.float :total_hours
7
+
8
+ t.timestamps
9
+ end
10
+ add_foreign_key :ecom_core_attendance_sheet_entries, :ecom_core_attendance_sheets,
11
+ column: :attendance_sheet_id
12
+ add_foreign_key :ecom_core_attendance_sheet_entries, :ecom_core_crews, column: :crew_id
13
+ end
14
+ end
@@ -0,0 +1,8 @@
1
+ class RelateCrewTimeWithAttendanceSheetEntry < ActiveRecord::Migration[6.0]
2
+ def change
3
+ add_column :ecom_core_crew_times, :attendance_sheet_entry_id, :integer,
4
+ index: { name: 'ase_on_ct_indx' }
5
+ add_foreign_key :ecom_core_crew_times, :ecom_core_attendance_sheet_entries,
6
+ column: :attendance_sheet_entry_id
7
+ end
8
+ end
@@ -0,0 +1,7 @@
1
+ class RemoveCrewTimeIdFromCrew < ActiveRecord::Migration[6.0]
2
+ def change
3
+ remove_foreign_key :ecom_core_crew_times, :ecom_core_crews, column: :crew_id
4
+ remove_index :ecom_core_crew_times, name: 'ct_on_crew_indx'
5
+ remove_column :ecom_core_crew_times, :crew_id
6
+ end
7
+ end
@@ -1,5 +1,5 @@
1
1
  module Ecom
2
2
  module Core
3
- VERSION = '1.1.5'.freeze
3
+ VERSION = '1.1.10'.freeze
4
4
  end
5
5
  end
@@ -2,4 +2,5 @@ require 'ecom/core'
2
2
  require 'ecom/core/engine'
3
3
  require 'ancestry'
4
4
  require 'aasm'
5
- require 'fast_jsonapi'
5
+ require 'active_model_serializers'
6
+ require 'data_migrate'
@@ -0,0 +1,7 @@
1
+ FactoryBot.define do
2
+ factory :attendance_sheet_entry, class: 'Ecom::Core::AttendanceSheetEntry' do
3
+ association :attendance_sheet
4
+ association :crew
5
+ total_hours { FFaker::Random.rand(0..8) }
6
+ end
7
+ end
@@ -0,0 +1,9 @@
1
+ FactoryBot.define do
2
+ factory :attendance_sheet, class: 'Ecom::Core::AttendanceSheet' do
3
+ date { Date.today }
4
+ opened_at { Time.now }
5
+ closed_at { nil }
6
+ remark { FFaker::Name.name }
7
+ status { Ecom::Core::AttendanceSheet::OPEN }
8
+ end
9
+ end
@@ -1,13 +1,12 @@
1
1
  FactoryBot.define do
2
2
  factory :crew_time, class: 'Ecom::Core::CrewTime' do
3
- date { Date.today }
4
3
  checkin_time { Time.now }
5
4
  checkout_time { Time.now + 2 * 60 * 60 }
6
5
  hours { 2 }
7
6
  converted_hours { 2 }
8
- association :crew
9
7
  remark { FFaker::Name.name }
10
8
  overtime { false }
11
9
  overtime_type { nil }
10
+ association :attendance_sheet_entry
12
11
  end
13
12
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ecom_core
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.5
4
+ version: 1.1.10
5
5
  platform: ruby
6
6
  authors:
7
7
  - Henock L.
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-03-28 00:00:00.000000000 Z
11
+ date: 2020-04-02 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: aasm
@@ -53,19 +53,19 @@ dependencies:
53
53
  - !ruby/object:Gem::Version
54
54
  version: '0'
55
55
  - !ruby/object:Gem::Dependency
56
- name: fast_jsonapi
56
+ name: active_model_serializers
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
- - - ">="
59
+ - - "~>"
60
60
  - !ruby/object:Gem::Version
61
- version: '0'
61
+ version: 0.10.0
62
62
  type: :runtime
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
- - - ">="
66
+ - - "~>"
67
67
  - !ruby/object:Gem::Version
68
- version: '0'
68
+ version: 0.10.0
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: jwt
71
71
  requirement: !ruby/object:Gem::Requirement
@@ -95,13 +95,13 @@ dependencies:
95
95
  - !ruby/object:Gem::Version
96
96
  version: 6.0.2
97
97
  - !ruby/object:Gem::Dependency
98
- name: factory_bot_rails
98
+ name: data_migrate
99
99
  requirement: !ruby/object:Gem::Requirement
100
100
  requirements:
101
101
  - - ">="
102
102
  - !ruby/object:Gem::Version
103
103
  version: '0'
104
- type: :development
104
+ type: :runtime
105
105
  prerelease: false
106
106
  version_requirements: !ruby/object:Gem::Requirement
107
107
  requirements:
@@ -109,7 +109,7 @@ dependencies:
109
109
  - !ruby/object:Gem::Version
110
110
  version: '0'
111
111
  - !ruby/object:Gem::Dependency
112
- name: ffaker
112
+ name: factory_bot_rails
113
113
  requirement: !ruby/object:Gem::Requirement
114
114
  requirements:
115
115
  - - ">="
@@ -123,7 +123,7 @@ dependencies:
123
123
  - !ruby/object:Gem::Version
124
124
  version: '0'
125
125
  - !ruby/object:Gem::Dependency
126
- name: rspec-rails
126
+ name: ffaker
127
127
  requirement: !ruby/object:Gem::Requirement
128
128
  requirements:
129
129
  - - ">="
@@ -137,7 +137,7 @@ dependencies:
137
137
  - !ruby/object:Gem::Version
138
138
  version: '0'
139
139
  - !ruby/object:Gem::Dependency
140
- name: rubocop
140
+ name: rspec-rails
141
141
  requirement: !ruby/object:Gem::Requirement
142
142
  requirements:
143
143
  - - ">="
@@ -216,6 +216,8 @@ files:
216
216
  - app/controllers/ecom/core/users_controller.rb
217
217
  - app/models/ecom/core/application_module.rb
218
218
  - app/models/ecom/core/application_record.rb
219
+ - app/models/ecom/core/attendance_sheet.rb
220
+ - app/models/ecom/core/attendance_sheet_entry.rb
219
221
  - app/models/ecom/core/crew.rb
220
222
  - app/models/ecom/core/crew_time.rb
221
223
  - app/models/ecom/core/crew_type.rb
@@ -251,7 +253,6 @@ files:
251
253
  - app/models/ecom/core/work_product.rb
252
254
  - app/models/ecom/core/work_product_template.rb
253
255
  - app/serializers/ecom/core/application_module_serializer.rb
254
- - app/serializers/ecom/core/application_serializer.rb
255
256
  - app/serializers/ecom/core/lookup_serializer.rb
256
257
  - app/serializers/ecom/core/resource_type_serializer.rb
257
258
  - app/serializers/ecom/core/user_role_serializer.rb
@@ -260,6 +261,7 @@ files:
260
261
  - app/services/ecom/core/token_auth_service.rb
261
262
  - config/database.ci.yml
262
263
  - config/routes.rb
264
+ - db/data/20200401064242_move_date_to_attendance_sheet.rb
263
265
  - db/migrate/20190101112620_create_ecom_core_lookups.rb
264
266
  - db/migrate/20190101112625_create_ecom_core_overtime_types.rb
265
267
  - db/migrate/20191119010518_create_ecom_core_task_template_types.rb
@@ -296,12 +298,19 @@ files:
296
298
  - db/migrate/20200315153640_create_ecom_core_equipment_items.rb
297
299
  - db/migrate/20200315160810_create_ecom_core_equipment_valuations.rb
298
300
  - db/migrate/20200316125323_create_ecom_core_equipment_components.rb
301
+ - db/migrate/20200401040433_create_ecom_core_attendance_sheets.rb
302
+ - db/migrate/20200401071343_remove_date_column_from_crew_times.rb
303
+ - db/migrate/20200401122539_create_ecom_core_attendance_sheet_entries.rb
304
+ - db/migrate/20200401142959_relate_crew_time_with_attendance_sheet_entry.rb
305
+ - db/migrate/20200401144137_remove_crew_time_id_from_crew.rb
299
306
  - lib/ecom/core.rb
300
307
  - lib/ecom/core/engine.rb
301
308
  - lib/ecom/core/version.rb
302
309
  - lib/ecom_core.rb
303
310
  - lib/tasks/ecom_core_tasks.rake
304
311
  - spec/factories/ecom/core/application_modules.rb
312
+ - spec/factories/ecom/core/attendance_sheet_entries.rb
313
+ - spec/factories/ecom/core/attendance_sheets.rb
305
314
  - spec/factories/ecom/core/crew_times.rb
306
315
  - spec/factories/ecom/core/crew_types.rb
307
316
  - spec/factories/ecom/core/crews.rb
@@ -1,20 +0,0 @@
1
- module Ecom
2
- module Core
3
- class ApplicationSerializer
4
- include FastJsonapi::ObjectSerializer
5
-
6
- def serializable_hash
7
- data = super[:data]
8
- if data.is_a? Hash
9
- data[:attributes]
10
- elsif data.is_a? Array
11
- data.map { |d| d[:attributes] }
12
- elsif data.nil?
13
- nil
14
- else
15
- data
16
- end
17
- end
18
- end
19
- end
20
- end