Class: Mks::Rent::OfferRequestService
- Inherits:
-
Object
- Object
- Mks::Rent::OfferRequestService
- Defined in:
- app/services/mks/rent/offer_request_service.rb
Instance Method Summary collapse
- #create(params, prepared_by) ⇒ Object
- #get_or_create_client(client) ⇒ Object
- #prepare_items(id, params) ⇒ Object
- #update(request, params) ⇒ Object
Instance Method Details
#create(params, prepared_by) ⇒ Object
4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
# File 'app/services/mks/rent/offer_request_service.rb', line 4 def create(params, prepared_by) p = params.clone id = get_or_create_client(p[:client]) p.delete(:client) items_hash = p.delete(:items) offer_request = OfferRequest.new(p) unless items_hash offer_request.errors.add(:base, 'Request has no items') return [offer_request, false] end offer_request.client_id = id offer_request.prepared_by = prepared_by offer_request.status = 'DRAFT' OfferRequest.transaction do offer_request.save! items = prepare_items(offer_request.id, items_hash) items.each(&:save!) return [offer_request, true] end end |
#get_or_create_client(client) ⇒ Object
39 40 41 42 |
# File 'app/services/mks/rent/offer_request_service.rb', line 39 def get_or_create_client(client) return client[:id] if client && client[:id] Client.create(client).id end |
#prepare_items(id, params) ⇒ Object
44 45 46 47 48 49 50 51 |
# File 'app/services/mks/rent/offer_request_service.rb', line 44 def prepare_items(id, params) obj = [] params.each do |param| param[:offer_request_id] = id obj << RequestItem.new(param) end obj end |
#update(request, params) ⇒ Object
28 29 30 31 32 33 34 35 36 37 |
# File 'app/services/mks/rent/offer_request_service.rb', line 28 def update(request, params) p = params.clone if p[:client] id = get_or_create_client(p[:client]) p.delete(:client) request.client_id = id end updated = request.update(p) [request, updated] end |