app/controllers/workarea/api/admin/orders_controller.rb in workarea-api-admin-4.4.7 vs app/controllers/workarea/api/admin/orders_controller.rb in workarea-api-admin-4.5.0
- old
+ new
@@ -45,11 +45,23 @@
key :in, :query
key :description, 'Ending date-time for getting orders by when they were placed'
key :type, :string
key :format, 'date-time'
end
+ parameter do
+ key :name, :email
+ key :in, :query
+ key :description, 'Email address associated to the orders'
+ key :required, false
+ key :type, :integer
+ end
+ parameter :updated_at_starts_at
+ parameter :updated_at_ends_at
+ parameter :created_at_starts_at
+ parameter :created_at_ends_at
+
response 200 do
key :description, 'Orders'
schema do
key :type, :object
property :orders do
@@ -64,21 +76,27 @@
end
def index
criteria = Order.all
+ if params[:email].present?
+ criteria = criteria.where(email: params[:email])
+ end
+
if params[:placed_at_greater_than].present?
# TODO Workarea v4, rename to placed_at_starts_at
criteria = criteria.where(:placed_at.gte => params[:placed_at_greater_than])
end
if params[:placed_at_less_than].present?
# TODO Workarea v4, rename to placed_at_ends_at
- criteria = criteria.where(:placed_at.lt => params[:placed_at_less_than])
+ criteria = criteria.where(:placed_at.lte => params[:placed_at_less_than])
end
@orders =
criteria
+ .by_updated_at(starts_at: params[:updated_at_starts_at], ends_at: params[:updated_at_ends_at])
+ .by_created_at(starts_at: params[:created_at_starts_at], ends_at: params[:created_at_ends_at])
.order_by(sort_field => sort_direction)
.page(params[:page].presence || 1)
respond_with orders: @orders
end