Skip to content

Commit 650ff6a

Browse files
committed
add getEquipment()
- rename `Employee` type to `EmployeeItem` - version bump
1 parent bd7ae4e commit 650ff6a

20 files changed

+522
-165
lines changed

index.d.ts

Lines changed: 13 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,9 @@ import type { DateString } from '@cityssm/utils-datetime';
33
import { type AccountNumberSource } from './helpers/getAccountNumber.js';
44
import { type GetEmployeesFilters } from './queries/employees/getEmployees.js';
55
import { type GetTimesheetBatchEntriesFilters } from './queries/employees/getTimesheetBatchEntries.js';
6-
import type { Employee, EmployeePayCode, TimeCode, TimesheetBatchEntry } from './queries/employees/types.js';
6+
import type { EmployeeItem, EmployeePayCode, TimeCode, TimesheetBatchEntry } from './queries/employees/types.js';
77
import { type AddEquipment } from './queries/equipment/addEquipment.js';
8+
import { type GetEquipmentFilters } from './queries/equipment/getEquipment.js';
89
import type { EquipmentItem } from './queries/equipment/types.js';
910
import { type AddResourceItem } from './queries/items/addResourceItem.js';
1011
import { type CreateStockTransactionBatch } from './queries/items/createStockTransactionBatch.js';
@@ -23,6 +24,12 @@ export declare class WorkTechAPI {
2324
* @param mssqlConfig - SQL Server configuration.
2425
*/
2526
constructor(mssqlConfig: mssql.config);
27+
/**
28+
* Retrieves equipment based on filters.
29+
* @param filters - The equipment filters.
30+
* @returns The equipment list.
31+
*/
32+
getEquipment(filters: GetEquipmentFilters): Promise<EquipmentItem[]>;
2633
/**
2734
* Retrieves a piece of equipment.
2835
* @param equipmentId - The equipment id.
@@ -165,13 +172,13 @@ export declare class WorkTechAPI {
165172
* @param employeeFilters - The employee filters.
166173
* @returns The employees.
167174
*/
168-
getEmployees(employeeFilters: GetEmployeesFilters): Promise<Employee[]>;
175+
getEmployees(employeeFilters: GetEmployeesFilters): Promise<EmployeeItem[]>;
169176
/**
170177
* Retrieves an employee.
171178
* @param employeeNumber - The employee number
172179
* @returns The employee, if available.
173180
*/
174-
getEmployeeByEmployeeNumber(employeeNumber: string): Promise<Employee | undefined>;
181+
getEmployeeByEmployeeNumber(employeeNumber: string): Promise<EmployeeItem | undefined>;
175182
/**
176183
* Retrieves employee pay codes.
177184
* @param employeeNumber - The employee number.
@@ -200,7 +207,8 @@ export { getEmployeeTimeCodes } from './queries/employees/getEmployeeTimeCodes.j
200207
export { getTimeCodes } from './queries/employees/getTimeCodes.js';
201208
export { type GetTimesheetBatchEntriesFilters, getTimesheetBatchEntries } from './queries/employees/getTimesheetBatchEntries.js';
202209
export { addEquipment } from './queries/equipment/addEquipment.js';
203-
export { getEquipmentByEquipmentId } from './queries/equipment/getEquipment.js';
210+
export { type GetEquipmentFilters, getEquipment } from './queries/equipment/getEquipment.js';
211+
export { getEquipmentByEquipmentId } from './queries/equipment/getEquipmentByEquipmentId.js';
204212
export { type UpdateEquipmentFields, updateEquipmentFields } from './queries/equipment/updateEquipment.js';
205213
export { type AddResourceItem, addResourceItem } from './queries/items/addResourceItem.js';
206214
export { getItemByItemId } from './queries/items/getItems.js';
@@ -214,7 +222,7 @@ export { addWorkOrderResource } from './queries/workOrders/addWorkOrderResource.
214222
export { deleteWorkOrderResource } from './queries/workOrders/deleteWorkOrderResource.js';
215223
export { getWorkOrderResourcesByStartDate, getWorkOrderResourcesByStartDateTimeRange, getWorkOrderResourcesByWorkOrderNumber } from './queries/workOrders/getWorkOrderResources.js';
216224
export { updateWorkOrderResource } from './queries/workOrders/updateWorkOrderResource.js';
217-
export type { Employee, EmployeePayCode, TimeCode, TimesheetBatchEntry } from './queries/employees/types.js';
225+
export type { EmployeeItem, EmployeePayCode, TimeCode, TimesheetBatchEntry } from './queries/employees/types.js';
218226
export type { EquipmentItem } from './queries/equipment/types.js';
219227
export type { ResourceItem } from './queries/items/types.js';
220228
export type { Activity, Job, JobActivityObjectCode, ObjectCode } from './queries/jobs/types.js';

index.js

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,8 @@ import { getEmployeeTimeCodes } from './queries/employees/getEmployeeTimeCodes.j
66
import { getTimeCodes } from './queries/employees/getTimeCodes.js';
77
import { getTimesheetBatchEntries } from './queries/employees/getTimesheetBatchEntries.js';
88
import { addEquipment } from './queries/equipment/addEquipment.js';
9-
import { getEquipmentByEquipmentId } from './queries/equipment/getEquipment.js';
9+
import { getEquipment } from './queries/equipment/getEquipment.js';
10+
import { getEquipmentByEquipmentId } from './queries/equipment/getEquipmentByEquipmentId.js';
1011
import { updateEquipmentFields } from './queries/equipment/updateEquipment.js';
1112
import { addResourceItem } from './queries/items/addResourceItem.js';
1213
import { createStockTransactionBatch } from './queries/items/createStockTransactionBatch.js';
@@ -35,6 +36,14 @@ export class WorkTechAPI {
3536
this.#mssqlConfig.connectionTimeout = Math.max(this.#mssqlConfig.connectionTimeout ?? 0, timeoutMillis);
3637
this.#mssqlConfig.requestTimeout = Math.max(this.#mssqlConfig.requestTimeout ?? 0, timeoutMillis);
3738
}
39+
/**
40+
* Retrieves equipment based on filters.
41+
* @param filters - The equipment filters.
42+
* @returns The equipment list.
43+
*/
44+
async getEquipment(filters) {
45+
return await getEquipment(this.#mssqlConfig, filters);
46+
}
3847
/**
3948
* Retrieves a piece of equipment.
4049
* @param equipmentId - The equipment id.
@@ -269,7 +278,8 @@ export { getEmployeeTimeCodes } from './queries/employees/getEmployeeTimeCodes.j
269278
export { getTimeCodes } from './queries/employees/getTimeCodes.js';
270279
export { getTimesheetBatchEntries } from './queries/employees/getTimesheetBatchEntries.js';
271280
export { addEquipment } from './queries/equipment/addEquipment.js';
272-
export { getEquipmentByEquipmentId } from './queries/equipment/getEquipment.js';
281+
export { getEquipment } from './queries/equipment/getEquipment.js';
282+
export { getEquipmentByEquipmentId } from './queries/equipment/getEquipmentByEquipmentId.js';
273283
export { updateEquipmentFields } from './queries/equipment/updateEquipment.js';
274284
export { addResourceItem } from './queries/items/addResourceItem.js';
275285
export { getItemByItemId } from './queries/items/getItems.js';

index.ts

Lines changed: 23 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ import {
1818
getTimesheetBatchEntries
1919
} from './queries/employees/getTimesheetBatchEntries.js'
2020
import type {
21-
Employee,
21+
EmployeeItem,
2222
EmployeePayCode,
2323
TimeCode,
2424
TimesheetBatchEntry
@@ -27,7 +27,11 @@ import {
2727
type AddEquipment,
2828
addEquipment
2929
} from './queries/equipment/addEquipment.js'
30-
import { getEquipmentByEquipmentId } from './queries/equipment/getEquipment.js'
30+
import {
31+
type GetEquipmentFilters,
32+
getEquipment
33+
} from './queries/equipment/getEquipment.js'
34+
import { getEquipmentByEquipmentId } from './queries/equipment/getEquipmentByEquipmentId.js'
3135
import type { EquipmentItem } from './queries/equipment/types.js'
3236
import { updateEquipmentFields } from './queries/equipment/updateEquipment.js'
3337
import {
@@ -105,6 +109,15 @@ export class WorkTechAPI {
105109
)
106110
}
107111

112+
/**
113+
* Retrieves equipment based on filters.
114+
* @param filters - The equipment filters.
115+
* @returns The equipment list.
116+
*/
117+
async getEquipment(filters: GetEquipmentFilters): Promise<EquipmentItem[]> {
118+
return await getEquipment(this.#mssqlConfig, filters)
119+
}
120+
108121
/**
109122
* Retrieves a piece of equipment.
110123
* @param equipmentId - The equipment id.
@@ -389,7 +402,7 @@ export class WorkTechAPI {
389402
*/
390403
async getEmployees(
391404
employeeFilters: GetEmployeesFilters
392-
): Promise<Employee[]> {
405+
): Promise<EmployeeItem[]> {
393406
return await getEmployees(this.#mssqlConfig, employeeFilters)
394407
}
395408

@@ -400,7 +413,7 @@ export class WorkTechAPI {
400413
*/
401414
async getEmployeeByEmployeeNumber(
402415
employeeNumber: string
403-
): Promise<Employee | undefined> {
416+
): Promise<EmployeeItem | undefined> {
404417
const employees = await getEmployees(this.#mssqlConfig, {
405418
employeeNumbers: [employeeNumber]
406419
})
@@ -480,7 +493,11 @@ export {
480493
} from './queries/employees/getTimesheetBatchEntries.js'
481494

482495
export { addEquipment } from './queries/equipment/addEquipment.js'
483-
export { getEquipmentByEquipmentId } from './queries/equipment/getEquipment.js'
496+
export {
497+
type GetEquipmentFilters,
498+
getEquipment
499+
} from './queries/equipment/getEquipment.js'
500+
export { getEquipmentByEquipmentId } from './queries/equipment/getEquipmentByEquipmentId.js'
484501
export {
485502
type UpdateEquipmentFields,
486503
updateEquipmentFields
@@ -526,7 +543,7 @@ export { updateWorkOrderResource } from './queries/workOrders/updateWorkOrderRes
526543
*/
527544

528545
export type {
529-
Employee,
546+
EmployeeItem,
530547
EmployeePayCode,
531548
TimeCode,
532549
TimesheetBatchEntry

package-lock.json

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"name": "@cityssm/worktech-api",
3-
"version": "0.16.0",
4-
"description": "Integrations with the WorkTech work order management system.",
3+
"version": "0.17.0",
4+
"description": "Integrations with the WorkTech (Pearl) work order management system.",
55
"keywords": [
66
"worktech",
77
"work-manager",

queries/employees/getEmployees.d.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import { type mssql } from '@cityssm/mssql-multi-pool';
2-
import type { Employee } from './types.js';
2+
import type { EmployeeItem } from './types.js';
33
export interface GetEmployeesFilters {
44
employeeIsActive?: boolean;
55
departments?: string[];
@@ -15,4 +15,4 @@ export interface GetEmployeesFilters {
1515
* @param filters - Filters to apply to the employee query.
1616
* @returns The employees.
1717
*/
18-
export declare function getEmployees(mssqlConfig: mssql.config, filters?: GetEmployeesFilters): Promise<Employee[]>;
18+
export declare function getEmployees(mssqlConfig: mssql.config, filters?: GetEmployeesFilters): Promise<EmployeeItem[]>;

queries/employees/getEmployees.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ export async function getEmployees(mssqlConfig, filters = {}) {
3636
coalesce(ITM.DEFVEH_ID, '') as defaultEquipmentId,
3737
ITM.PATROL as patrol
3838
39-
FROM dbo.WMITM ITM
39+
FROM dbo.WMITM ITM WITH (NOLOCK)
4040
4141
WHERE ( TYPE = 'Employee' AND Status <> 'EstOnly' )
4242
`;

queries/employees/getEmployees.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import { type mssql, connect } from '@cityssm/mssql-multi-pool'
22

3-
import type { Employee } from './types.js'
3+
import type { EmployeeItem } from './types.js'
44

55
export interface GetEmployeesFilters {
66
employeeIsActive?: boolean
@@ -25,7 +25,7 @@ export interface GetEmployeesFilters {
2525
export async function getEmployees(
2626
mssqlConfig: mssql.config,
2727
filters: GetEmployeesFilters = {}
28-
): Promise<Employee[]> {
28+
): Promise<EmployeeItem[]> {
2929
const pool = await connect(mssqlConfig)
3030

3131
let request = pool.request()
@@ -57,7 +57,7 @@ export async function getEmployees(
5757
coalesce(ITM.DEFVEH_ID, '') as defaultEquipmentId,
5858
ITM.PATROL as patrol
5959
60-
FROM dbo.WMITM ITM
60+
FROM dbo.WMITM ITM WITH (NOLOCK)
6161
6262
WHERE ( TYPE = 'Employee' AND Status <> 'EstOnly' )
6363
`
@@ -144,7 +144,7 @@ export async function getEmployees(
144144
sql += ' ) '
145145
}
146146

147-
const result = (await request.query(sql)) as mssql.IResult<Employee>
147+
const result = (await request.query(sql)) as mssql.IResult<EmployeeItem>
148148

149149
return result.recordset
150150
}

queries/employees/types.d.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import type { BigIntString } from '../types.js';
2-
export interface Employee {
2+
export interface EmployeeItem {
33
itemSystemId: BigIntString | number;
44
employeeNumber: string;
55
employeeName: string;

queries/employees/types.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import type { BigIntString } from '../types.js'
22

3-
export interface Employee {
3+
export interface EmployeeItem {
44
itemSystemId: BigIntString | number
55

66
employeeNumber: string
@@ -19,7 +19,7 @@ export interface Employee {
1919

2020
phoneNumber1: string
2121
phoneNumberType1: string
22-
22+
2323
emailAddress: string
2424
positionId: string
2525
hoursPerPayPeriod: number

0 commit comments

Comments
 (0)