Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,8 @@
"lint": "eslint src/",
"start": "node index",
"test:ci": "jest --silent",
"ts:ci": "tsc --noEmit"
"ts:ci": "tsc --noEmit",
"ts:watch": "tsc --noEmit --watch"
},
"keywords": [],
"author": "",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,7 @@ const WORK_ORDER_FIELDS: string[] = [
'equipment_code',
'rental_property_id',
'create_date',
'due_date',
'write_date',
'stage_id',
'phone_number',
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -70,6 +70,7 @@ export const transformWorkOrder = (odooWorkOrder: OdooWorkOrder): WorkOrder => {
),
Priority: odooWorkOrder.priority || '',
Registered: new Date(odooWorkOrder.create_date),
DueDate: odooWorkOrder.due_date ? new Date(odooWorkOrder.due_date) : null,
RentalObjectCode: odooWorkOrder.rental_property_id[1],
Status: odooWorkOrder.stage_id[1],
HiddenFromMyPages: odooWorkOrder.hidden_from_my_pages || false,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@ export interface XpandDbWorkOrder {
resource: string
resourceGroup: string
createdAt: Date
expiresAt: Date | null
lastChanged: Date
priority: string | null
residenceId: string
Expand Down Expand Up @@ -54,14 +55,15 @@ export async function getWorkOrdersByResidenceId(
'resource.cmctcben AS resource',
'cmrgr.caption AS resourceGroup',
'aoupp.time AS createdAt',
'aoupp.timeforf AS expiresAt',
'aoupp.lastchged AS lastChanged',
'aopri.code AS priority',
'babuf.hyresid AS residenceId'
)
.innerJoin('babuf', 'babuf.keycmobj', 'aoupp.keycmobj')
.innerJoin('aotlt', 'aotlt.keyaotlt', 'aoupp.keyaotlt')
.leftJoin('cmctc', 'cmctc.keycmctc', 'aoupp.keycmctc')
.leftJoin('cmctc as resource', 'cmctc.keycmctc', 'aoupp.keycmctc2')
.leftJoin('cmctc as resource', 'resource.keycmctc', 'aoupp.keycmctc2')
.leftJoin('cmrgr', 'cmrgr.keycmrgr', 'aoupp.keycmrgr')
.leftJoin('aopri', 'aopri.keyaopri', 'aoupp.keyaopri')
.where('babuf.hyresid', residenceId)
Expand Down Expand Up @@ -102,6 +104,7 @@ export async function getWorkOrderDetails(
'resource.cmctcben AS resource',
'cmrgr.caption AS resourceGroup',
'aoupp.time AS createdAt',
'aoupp.timeforf AS expiresAt',
'aoupp.lastchged AS lastChanged',
'aopri.code AS priority',
'babuf.hyresid AS residenceId',
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -64,6 +64,9 @@ export function transformXpandDbWorkOrderDetails(
LastChanged: new Date(dbWorkOrderDetails.lastChanged),
Priority: dbWorkOrderDetails.priority,
Registered: new Date(dbWorkOrderDetails.createdAt),
DueDate: dbWorkOrderDetails.expiresAt
? new Date(dbWorkOrderDetails.expiresAt)
: null,
RentalObjectCode: dbWorkOrderDetails.residenceId,
Status: xpandStatusToString(dbWorkOrderDetails.status),
WorkOrderRows: rows.map((row) => ({
Expand Down Expand Up @@ -92,6 +95,7 @@ export function transformXpandDbWorkOrder(
LastChanged: new Date(dbWorkOrder.lastChanged),
Priority: dbWorkOrder.priority,
Registered: new Date(dbWorkOrder.createdAt),
DueDate: dbWorkOrder.expiresAt,
RentalObjectCode: dbWorkOrder.residenceId,
Status: xpandStatusToString(dbWorkOrder.status),
}
Expand Down
5 changes: 3 additions & 2 deletions src/services/work-order-service/index.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import KoaRouter from '@koa/router'
import { generateRouteMetadata } from 'onecore-utilities'
import { generateRouteMetadata, logger } from 'onecore-utilities'
import * as odooAdapter from './adapters/odoo-adapter'
import {
CreateWorkOrderBodySchema,
Expand Down Expand Up @@ -298,7 +298,8 @@
},
...metadata,
}
} catch (error: unknown) {
} catch (error) {
logger.error(error, 'Error fetching work orders from Xpand')
ctx.status = 500

if (error instanceof Error) {
Expand Down Expand Up @@ -588,7 +589,7 @@
router.post('(.*)/workOrders/:workOrderId/update', async (ctx) => {
const metadata = generateRouteMetadata(ctx)
const { workOrderId } = ctx.params
const { message } = ctx.request.body as any

Check warning on line 592 in src/services/work-order-service/index.ts

View workflow job for this annotation

GitHub Actions / test

Unexpected any. Specify a different type

if (!message) {
ctx.status = 400
Expand Down
2 changes: 2 additions & 0 deletions src/services/work-order-service/schemas.ts
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@ export const WorkOrderSchema = z.object({
LastChanged: z.coerce.date(),
Priority: z.string(),
Registered: z.coerce.date(),
DueDate: z.union([z.null(), z.coerce.date()]),
RentalObjectCode: z.string(),
Status: z.string(),
UseMasterKey: z.boolean(),
Expand Down Expand Up @@ -50,6 +51,7 @@ export const OdooWorkOrderSchema = z.object({
equipment_code: z.string(),
rental_property_id: z.string(),
create_date: z.coerce.string(),
due_date: z.coerce.string().nullable(),
write_date: z.coerce.string(),
stage_id: z.tuple([z.number(), z.string()]),
})
Expand Down
2 changes: 2 additions & 0 deletions src/services/work-order-service/tests/factories/work-order.ts
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@ export const WorkOrderFactory = Factory.define<WorkOrder>(({ sequence }) => ({
LastChanged: new Date(),
Priority: 'High',
Registered: new Date(),
DueDate: null,
RentalObjectCode: `RO-${sequence}`,
Status: 'Resurs tilldelad',
UseMasterKey: false,
Expand Down Expand Up @@ -60,6 +61,7 @@ export const OdooWorkOrderFactory = Factory.define<OdooWorkOrder>(
rental_property_id: `987-654-321/${sequence}`,
create_date: new Date().toDateString(),
write_date: new Date().toDateString(),
due_date: new Date().toDateString(),
stage_id: [1, 'Ny Begäran'],
hidden_from_my_pages: false,
name: '',
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@ export const XpandWorkOrderDetailsFactory =
LastChanged: new Date(),
Priority: sequence % 2 === 0 ? 'High' : null,
Registered: new Date(),
DueDate: null,
RentalObjectCode: `RO-${sequence}`,
Status: 'Resurs tilldelad',
WorkOrderRows: [
Expand All @@ -37,6 +38,7 @@ export const XpandWorkOrderFactory = Factory.define<XpandWorkOrder>(
LastChanged: new Date(),
Priority: sequence % 2 === 0 ? 'High' : null,
Registered: new Date(),
DueDate: null,
RentalObjectCode: `RO-${sequence}`,
Status: 'Resurs tilldelad',
})
Expand All @@ -52,6 +54,7 @@ export const XpandDbWorkOrderDetailsFactory =
resource: `Resource-${sequence}`,
resourceGroup: `Group-${sequence}`,
createdAt: new Date(),
expiresAt: null,
lastChanged: new Date(),
priority: sequence % 2 === 0 ? '7 dagar' : null,
residenceId: `406-028-02-${sequence}`,
Expand All @@ -74,6 +77,7 @@ export const XpandDbWorkOrderFactory = Factory.define<XpandDbWorkOrder>(
resource: `Resource-${sequence}`,
resourceGroup: `Group-${sequence}`,
createdAt: new Date(),
expiresAt: null,
lastChanged: new Date(),
priority: sequence % 2 === 0 ? '7 dagar' : null,
residenceId: `406-028-02-${sequence}`,
Expand Down
Loading