Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions Gemfile
Original file line number Diff line number Diff line change
Expand Up @@ -61,6 +61,7 @@ gem 'slack-ruby-client'
gem 'whenever', '~> 0.9.5', require: false
gem 'sendgrid-ruby'
gem 'fake_email_validator'
gem 'fast_jsonapi'

group :development do
gem 'spring'
Expand Down
3 changes: 3 additions & 0 deletions Gemfile.lock
Original file line number Diff line number Diff line change
Expand Up @@ -185,6 +185,8 @@ GEM
multipart-post (>= 1.2, < 3)
faraday_middleware (0.12.2)
faraday (>= 0.7.4, < 1.0)
fast_jsonapi (1.5)
activesupport (>= 4.2)
ffaker (2.10.0)
ffi (1.9.25)
foreman (0.85.0)
Expand Down Expand Up @@ -484,6 +486,7 @@ DEPENDENCIES
execjs
factory_bot_rails
fake_email_validator
fast_jsonapi
ffaker
foreman
go_go_van_api!
Expand Down
40 changes: 40 additions & 0 deletions app/serializers/api/v1/fast_serializers/image.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
module Api::V1::FastSerializers
class Image

include FastJsonapi::ObjectSerializer

set_type :image

attributes :id, :favourite, :cloudinary_id, :item_id, :angle, :package_id

# module Api::V1
# class ImageSerializer < ApplicationSerializer
# embed :ids, include: true

# attributes :id, :favourite, :cloudinary_id, :item_id, :angle, :package_id

# def item_id
# object.imageable_id if object.imageable_type == "Item"
# end

# def item_id__sql
# "case when imageable_type = 'Item' then imageable_id end"
# end

# def package_id
# object.imageable_id if object.imageable_type == "Package"
# end

# def package_id__sql
# "case when imageable_type = 'Package' then imageable_id end"
# end

# def include_package_id?
# !@options[:is_browse_app]
# end
# end
# end


end
end
55 changes: 55 additions & 0 deletions app/serializers/api/v1/fast_serializers/package.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
# TODO
# turn fields on and off via runtime state (e.g. security permissions)
# nested

module Api::V1::FastSerializers
class Package

include FastJsonapi::ObjectSerializer

set_type :package

attributes :id, :quantity, :length, :width, :height, :weight, :pieces, :notes,
:item_id, :state, :received_at, :rejected_at, :inventory_number,
:created_at, :updated_at, :package_type_id, :sent_on,
:offer_id, :designation_name, :grade, :donor_condition_id, :received_quantity,
:allow_web_publish, :detail_type, :detail_id, :images
attribute :sent_on, &:stockit_sent_on
attribute :designation_id, &:order_id

has_many :images, serializer: :image

# has_one :package_type #, serializer: PackageTypeSerializer
# has_one :item #, serializer: BrowseItemSerializer
# has_many :packages_locations #, serializer: PackagesLocationSerializer
# has_many :orders_packages #, serializer: OrdersPackageSerializer

end
end

# def is_browse_app?
# @options[:is_browse_app] || @options[:browse_order]
# end

# def not_browse_app?
# !is_browse_app?
# end

# def include_orders_packages?
# @options[:include_orders_packages]
# end

# alias_method :include_packages_locations?, :include_orders_packages?

# %w[include_item? include_stockit_sent_on?
# include_order_id?].each do |method|
# alias_method method.to_sym, :is_browse_app?
# end

# %w[include_state? include_received_at? include_rejected_at?
# include_designation_id? include_sent_on?
# include_offer_id? include_designation_name?
# include_received_quantity?].each do |method|
# alias_method method.to_sym, :not_browse_app?
# end
# end