fix: make api/routes/store/swaps pass eslint (#678)

This commit is contained in:
Emme Bravo
2021-10-31 01:32:17 -07:00
committed by GitHub
parent c9234c2343
commit d9ee127284
3 changed files with 109 additions and 119 deletions

View File

@@ -27,7 +27,7 @@
/packages/medusa/src/api/routes/store/carts /packages/medusa/src/api/routes/store/carts
/packages/medusa/src/api/routes/store/return-reasons /packages/medusa/src/api/routes/store/return-reasons
/packages/medusa/src/api/routes/store/returns /packages/medusa/src/api/routes/store/returns
/packages/medusa/src/api/routes/store/swaps
# END OF FILES TODO # END OF FILES TODO

View File

@@ -95,131 +95,125 @@ export default async (req, res) => {
res.setHeader("Access-Control-Expose-Headers", "Idempotency-Key") res.setHeader("Access-Control-Expose-Headers", "Idempotency-Key")
res.setHeader("Idempotency-Key", idempotencyKey.idempotency_key) res.setHeader("Idempotency-Key", idempotencyKey.idempotency_key)
try { const orderService = req.scope.resolve("orderService")
const orderService = req.scope.resolve("orderService") const swapService = req.scope.resolve("swapService")
const swapService = req.scope.resolve("swapService") const returnService = req.scope.resolve("returnService")
const returnService = req.scope.resolve("returnService")
let inProgress = true let inProgress = true
let err = false let err = false
while (inProgress) { while (inProgress) {
switch (idempotencyKey.recovery_point) { switch (idempotencyKey.recovery_point) {
case "started": { case "started": {
const { key, error } = await idempotencyKeyService.workStage( const { key, error } = await idempotencyKeyService.workStage(
idempotencyKey.idempotency_key, idempotencyKey.idempotency_key,
async (manager) => { async (manager) => {
const order = await orderService const order = await orderService
.withTransaction(manager) .withTransaction(manager)
.retrieve(value.order_id, { .retrieve(value.order_id, {
select: ["refunded_total", "total"], select: ["refunded_total", "total"],
relations: ["items", "swaps", "swaps.additional_items"], relations: ["items", "swaps", "swaps.additional_items"],
}) })
let returnShipping let returnShipping
if (value.return_shipping_option) { if (value.return_shipping_option) {
returnShipping = { returnShipping = {
option_id: value.return_shipping_option, option_id: value.return_shipping_option,
}
}
const swap = await swapService
.withTransaction(manager)
.create(
order,
value.return_items,
value.additional_items,
returnShipping,
{
idempotency_key: idempotencyKey.idempotency_key,
no_notification: true,
} }
} )
const swap = await swapService await swapService.withTransaction(manager).createCart(swap.id)
.withTransaction(manager) const returnOrder = await returnService
.create( .withTransaction(manager)
order, .retrieveBySwap(swap.id)
value.return_items,
value.additional_items,
returnShipping,
{
idempotency_key: idempotencyKey.idempotency_key,
no_notification: true,
}
)
await swapService.withTransaction(manager).createCart(swap.id) await returnService.withTransaction(manager).fulfill(returnOrder.id)
const returnOrder = await returnService
.withTransaction(manager)
.retrieveBySwap(swap.id)
await returnService return {
.withTransaction(manager) recovery_point: "swap_created",
.fulfill(returnOrder.id)
return {
recovery_point: "swap_created",
}
} }
)
if (error) {
inProgress = false
err = error
} else {
idempotencyKey = key
} }
break )
}
case "swap_created": { if (error) {
const { key, error } = await idempotencyKeyService.workStage(
idempotencyKey.idempotency_key,
async (manager) => {
const swaps = await swapService.list({
idempotency_key: idempotencyKey.idempotency_key,
})
if (!swaps.length) {
throw new MedusaError(
MedusaError.Types.INVALID_DATA,
"Swap not found"
)
}
const swap = await swapService.retrieve(swaps[0].id, {
select: defaultFields,
relations: defaultRelations,
})
return {
response_code: 200,
response_body: { swap },
}
}
)
if (error) {
inProgress = false
err = error
} else {
idempotencyKey = key
}
break
}
case "finished": {
inProgress = false inProgress = false
break err = error
} else {
idempotencyKey = key
} }
break
default:
idempotencyKey = await idempotencyKeyService.update(
idempotencyKey.idempotency_key,
{
recovery_point: "finished",
response_code: 500,
response_body: { message: "Unknown recovery point" },
}
)
break
} }
}
if (err) { case "swap_created": {
throw err const { key, error } = await idempotencyKeyService.workStage(
} idempotencyKey.idempotency_key,
async (manager) => {
const swaps = await swapService.list({
idempotency_key: idempotencyKey.idempotency_key,
})
res.status(idempotencyKey.response_code).json(idempotencyKey.response_body) if (!swaps.length) {
} catch (error) { throw new MedusaError(
throw error MedusaError.Types.INVALID_DATA,
"Swap not found"
)
}
const swap = await swapService.retrieve(swaps[0].id, {
select: defaultFields,
relations: defaultRelations,
})
return {
response_code: 200,
response_body: { swap },
}
}
)
if (error) {
inProgress = false
err = error
} else {
idempotencyKey = key
}
break
}
case "finished": {
inProgress = false
break
}
default:
idempotencyKey = await idempotencyKeyService.update(
idempotencyKey.idempotency_key,
{
recovery_point: "finished",
response_code: 500,
response_body: { message: "Unknown recovery point" },
}
)
break
}
} }
if (err) {
throw err
}
res.status(idempotencyKey.response_code).json(idempotencyKey.response_body)
} }

View File

@@ -20,11 +20,7 @@
export default async (req, res) => { export default async (req, res) => {
const { cart_id } = req.params const { cart_id } = req.params
try { const swapService = req.scope.resolve("swapService")
const swapService = req.scope.resolve("swapService") const swap = await swapService.retrieveByCartId(cart_id)
const swap = await swapService.retrieveByCartId(cart_id) res.json({ swap })
res.json({ swap })
} catch (error) {
throw error
}
} }