|
|
|
|
@ -17,6 +17,23 @@ interface CancelOrderLookup {
|
|
|
|
|
start_time: Date
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
interface OrderUser {
|
|
|
|
|
firstname: string
|
|
|
|
|
lastname: string
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
interface TrainerOrderObject {
|
|
|
|
|
id: number
|
|
|
|
|
user: OrderUser
|
|
|
|
|
startDate: string
|
|
|
|
|
endDate: string
|
|
|
|
|
status: OrderObjectStatus
|
|
|
|
|
price: number
|
|
|
|
|
created_at: Date
|
|
|
|
|
center_id: number
|
|
|
|
|
center_name: string
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
router.get("/trainer/order", TrainerAuth, async (req: AuthedRequest, res: Response) => {
|
|
|
|
|
try {
|
|
|
|
|
const databaseResult = await client.query(`
|
|
|
|
|
@ -28,19 +45,18 @@ router.get("/trainer/order", TrainerAuth, async (req: AuthedRequest, res: Respon
|
|
|
|
|
payment_intents.status as payment_intent_status,
|
|
|
|
|
start_time,
|
|
|
|
|
end_time,
|
|
|
|
|
trainers.center_id,
|
|
|
|
|
centers.name as center_name,
|
|
|
|
|
json_build_object(
|
|
|
|
|
'id',trainers.id,
|
|
|
|
|
'first_name',users.first_name,
|
|
|
|
|
'last_name',users.last_name,
|
|
|
|
|
'center_id',trainers.center_id,
|
|
|
|
|
'center_name',centers.name
|
|
|
|
|
) as trainer
|
|
|
|
|
'firstname',users.first_name,
|
|
|
|
|
'lastname',users.last_name
|
|
|
|
|
) as user
|
|
|
|
|
FROM orders
|
|
|
|
|
LEFT JOIN reserved_timeslots ON reserved_timeslots.id = orders.timeslot_id
|
|
|
|
|
LEFT JOIN payment_intents ON payment_intents.id = orders.payment_intent
|
|
|
|
|
LEFT JOIN trainers ON trainers.id = reserved_timeslots.trainer_id
|
|
|
|
|
LEFT JOIN centers on trainers.center_id = centers.id
|
|
|
|
|
LEFT JOIN users on users.id = trainers.user_id
|
|
|
|
|
LEFT JOIN users on users.id = orders.user_id
|
|
|
|
|
WHERE
|
|
|
|
|
trainers.user_id = $1
|
|
|
|
|
AND (
|
|
|
|
|
@ -54,7 +70,7 @@ router.get("/trainer/order", TrainerAuth, async (req: AuthedRequest, res: Respon
|
|
|
|
|
req.user?.userId
|
|
|
|
|
]);
|
|
|
|
|
|
|
|
|
|
const orders: OrderObject[] = databaseResult.rows.map((order): OrderObject => {
|
|
|
|
|
const orders: TrainerOrderObject[] = databaseResult.rows.map((order): TrainerOrderObject => {
|
|
|
|
|
const paymentStatus = order.payment_intent_status === "Successful" ? "Successful" : "Processing"
|
|
|
|
|
|
|
|
|
|
let status: OrderObjectStatus = paymentStatus;
|
|
|
|
|
@ -65,7 +81,9 @@ router.get("/trainer/order", TrainerAuth, async (req: AuthedRequest, res: Respon
|
|
|
|
|
|
|
|
|
|
return {
|
|
|
|
|
id: order.id,
|
|
|
|
|
trainer: order.trainer,
|
|
|
|
|
user: order.user,
|
|
|
|
|
center_id: order.center_id,
|
|
|
|
|
center_name: order.center_name,
|
|
|
|
|
startDate: dayjs(order.start_time).format('YYYY-MM-DDTHH:mm:ss[Z]'),
|
|
|
|
|
endDate: dayjs(order.end_time).format('YYYY-MM-DDTHH:mm:ss[Z]'),
|
|
|
|
|
status: status,
|
|
|
|
|
|