Skip to content

Commit 5a60fd1

Browse files
committed
refactor to clean up request bodies
1 parent e1da92d commit 5a60fd1

File tree

1 file changed

+45
-50
lines changed

1 file changed

+45
-50
lines changed

utils/api/requests.js

Lines changed: 45 additions & 50 deletions
Original file line numberDiff line numberDiff line change
@@ -170,6 +170,37 @@ export const createMessageOrFile = ({ id, quotedWareID, message, files, accessTo
170170
return posting(`/quote_groups/${id}/notes.json`, note, accessToken)
171171
}
172172

173+
const requestData = ({request, shipping, billing}) => {
174+
return {
175+
/* eslint-disable camelcase */
176+
provider_ids: [process.env.NEXT_PUBLIC_PROVIDER_ID],
177+
proposed_deadline_str: request.proposedDeadline,
178+
site: {
179+
billing_same_as_shipping: request.billingSameAsShipping,
180+
name: request.name,
181+
},
182+
shipping_address_attributes: {
183+
city: shipping.city,
184+
country: shipping.country,
185+
state: shipping.state,
186+
street: shipping.street,
187+
street2: shipping.street2,
188+
zipcode: shipping.zipcode,
189+
organization_name: process.env.NEXT_PUBLIC_PROVIDER_NAME
190+
},
191+
billing_address_attributes: {
192+
city: billing.city,
193+
country: billing.country,
194+
state: billing.state,
195+
street: billing.street,
196+
street2: billing.street2,
197+
zipcode: billing.zipcode,
198+
organization_name: process.env.NEXT_PUBLIC_PROVIDER_NAME
199+
},
200+
/* eslint-enable camelcase */
201+
}
202+
}
203+
173204
export const createRequest = async ({ dynamicFormData, wareID, accessToken }) => {
174205
/* eslint-disable camelcase */
175206
// the api currently doesn't account for attachments
@@ -185,37 +216,20 @@ export const createRequest = async ({ dynamicFormData, wareID, accessToken }) =>
185216
requestTimeline = timeline
186217
}
187218

219+
let sharedRequestData = requestData({
220+
request: dynamicFormData,
221+
shipping: dynamicFormData.shipping,
222+
billing: dynamicFormData.shipping,
223+
})
224+
188225
const pg_quote_group = {
189226
...formData,
227+
...sharedRequestData,
190228
name: dynamicFormData.name,
191-
provider_ids: [process.env.NEXT_PUBLIC_PROVIDER_ID],
192229
suppliers_identified: 'Yes',
193230
description: requestDescription,
194-
proposed_deadline_str: dynamicFormData.proposedDeadline,
195231
no_proposed_deadline: dynamicFormData.proposedDeadline ? false : true,
196232
timeline: requestTimeline,
197-
site: {
198-
billing_same_as_shipping: dynamicFormData.billingSameAsShipping,
199-
name: dynamicFormData.name,
200-
},
201-
shipping_address_attributes: {
202-
city: dynamicFormData.shipping.city,
203-
country: dynamicFormData.shipping.country,
204-
state: dynamicFormData.shipping.state,
205-
street: dynamicFormData.shipping.street,
206-
street2: dynamicFormData.shipping.street2,
207-
zipcode: dynamicFormData.shipping.zipcode,
208-
organization_name: process.env.NEXT_PUBLIC_PROVIDER_NAME
209-
},
210-
billing_address_attributes: {
211-
city: dynamicFormData.shipping.city,
212-
country: dynamicFormData.shipping.country,
213-
state: dynamicFormData.shipping.state,
214-
street: dynamicFormData.shipping.street,
215-
street2: dynamicFormData.shipping.street2,
216-
zipcode: dynamicFormData.shipping.zipcode,
217-
organization_name: process.env.NEXT_PUBLIC_PROVIDER_NAME
218-
},
219233
}
220234

221235
let { data, error } = await posting(`/wares/${wareID}/quote_groups.json`, { pg_quote_group }, accessToken)
@@ -251,40 +265,21 @@ export const createRequest = async ({ dynamicFormData, wareID, accessToken }) =>
251265
}
252266

253267
export const acceptSOW = (request, sowID, accessToken) => {
254-
/* eslint-disable camelcase */
268+
let sharedRequestData = requestData({
269+
request: request,
270+
shipping: request.shippingAddress,
271+
billing: request.billingAddress,
272+
})
273+
255274
const sow = {
275+
...sharedRequestData,
256276
name: request.title,
257277
description: request.description,
258-
provider_ids: [process.env.NEXT_PUBLIC_PROVIDER_ID],
259278
provider_names: [process.env.NEXT_PUBLIC_PROVIDER_NAME],
260-
proposed_deadline_str: request.proposedDeadline,
261-
site: {
262-
billing_same_as_shipping: request.billingSameAsShipping,
263-
name: request.name,
264-
},
265-
shipping_address_attributes: {
266-
city: request.shippingAddress.city,
267-
country: request.shippingAddress.country,
268-
state: request.shippingAddress.state,
269-
street: request.shippingAddress.street,
270-
street2: request.shippingAddress.street2,
271-
zipcode: request.shippingAddress.zipcode,
272-
organization_name: process.env.NEXT_PUBLIC_PROVIDER_NAME
273-
},
274-
billing_address_attributes: {
275-
city: request.billingAddress.city,
276-
country: request.billingAddress.country,
277-
state: request.billingAddress.state,
278-
street: request.billingAddress.street,
279-
street2: request.billingAddress.street2,
280-
zipcode: request.billingAddress.zipcode,
281-
organization_name: process.env.NEXT_PUBLIC_PROVIDER_NAME
282-
},
283279
winning_proposal_id: sowID,
284280
purchase_justifications: [''],
285281
purchase_justification_comment: '',
286282
}
287-
/* eslint-enable camelcase */
288283

289284
return posting(`/quote_groups/${request.id}/accept_sow.json`, { pg_quote_group: sow }, accessToken)
290285
}

0 commit comments

Comments
 (0)