@@ -19,8 +19,6 @@ class Request < ApplicationRecord
1919 include Discard ::Model
2020 include Exportable
2121
22- class MismatchedItemIdsError < StandardError ; end
23-
2422 belongs_to :partner
2523 belongs_to :organization
2624 belongs_to :distribution , optional : true
@@ -44,41 +42,6 @@ class MismatchedItemIdsError < StandardError; end
4442 . order ( created_at : :desc )
4543 }
4644
47- def family_request_reply
48- {
49- "organization_id" : organization_id ,
50- "partner_id" : partner_id ,
51- "requested_items" : request_items . map do |item |
52- {
53- "item_id" : item [ 'item_id' ] ,
54- "count" : item [ 'quantity' ] ,
55- "item_name" : item [ 'name' ]
56- }
57- end
58- }
59- end
60-
61- # TODO: Add permission checks for request creation and item lookup
62- def self . parse_family_request ( family_request )
63- request = Request . new ( organization_id : family_request [ 'organization_id' ] , partner_id : family_request [ 'partner_id' ] )
64- requested_items = family_request [ 'requested_items' ] . sort_by { |item | item [ 'item_id' ] }
65-
66- request . request_items =
67- Item . where ( id : requested_items . map { |item | item [ 'item_id' ] } )
68- . order ( :id ) . each . with_index . with_object ( [ ] ) do |( item , index ) , request_items |
69- unless requested_items [ index ] [ 'item_id' ] == item . id
70- raise MismatchedItemIdsError ,
71- 'Item ids should match existing Diaper Base item ids.'
72- end
73- request_items << {
74- item_id : item . id ,
75- quantity : item . default_quantity * requested_items [ index ] [ 'person_count' ] ,
76- name : item . name
77- }
78- end
79- request
80- end
81-
8245 def total_items
8346 request_items . sum { |item | item [ "quantity" ] }
8447 end
0 commit comments