All files / src/Connector FabisImportBatchConnector.ts

100% Statements 13/13
75% Branches 6/8
100% Functions 2/2
100% Lines 13/13

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 981x 1x 1x 1x 1x   1x                                                                   1x   1x     1x       1x     1x             1x   1x                                                                        
import AConnector from '@orchesty/nodejs-sdk/dist/lib/Connector/AConnector';
import { HttpMethods } from '@orchesty/nodejs-sdk/dist/lib/Transport/HttpMethods';
import ProcessDto from '@orchesty/nodejs-sdk/dist/lib/Utils/ProcessDto';
import { validate } from '@orchesty/nodejs-sdk/dist/lib/Utils/Validations';
import Joi from 'joi';
 
const inputSchema = Joi.array().items(
    Joi.object({
        isActive: Joi.boolean().optional().allow(null),
        companyIC: Joi.string().optional().allow(null),
        degreeBefore: Joi.string().optional().allow(null),
        firstName: Joi.string().optional().allow(null),
        lastName: Joi.string().optional().allow(null),
        degreeAfter: Joi.string().optional().allow(null),
        dateBirth: Joi.string().optional().allow(null),
        sex: Joi.string().optional().allow(null),
        personalNumber: Joi.string().optional().allow(null),
        employmentRelationshipCode: Joi.string().optional().allow(null),
        isDriver: Joi.boolean().optional().allow(null),
        email: Joi.string().optional().allow(null),
        mobile: Joi.string().optional().allow(null),
        street: Joi.string().optional().allow(null),
        city: Joi.string().optional().allow(null),
        postCode: Joi.string().optional().allow(null),
        country: Joi.string().optional().allow(null),
        costCenter: Joi.string().optional().allow(null),
        costCenterName: Joi.string().optional().allow(null),
        object: Joi.string().optional().allow(null),
        employeeWork: Joi.string().optional().allow(null),
        shift: Joi.string().optional().allow(null),
        work: Joi.string().optional().allow(null),
        workName: Joi.string().optional().allow(null),
        parentEmployee: Joi.string().optional().allow(null),
        dateMaternityLeaveStart: Joi.string().optional().allow(null),
        dateMaternityLeaveEnd: Joi.string().optional().allow(null),
        dateStart: Joi.string().optional().allow(null),
        dateEnd: Joi.string().optional().allow(null),
    }),
);
 
export const FABIS_IMPORT_BATCH_CONNECTOR = 'fabis-import-batch-connector';
 
export default class FabisImportBatchConnector extends AConnector {
 
    public getName(): string {
        return FABIS_IMPORT_BATCH_CONNECTOR;
    }
 
    @validate(inputSchema)
    public async processAction(
        dto: ProcessDto<IFabisImportBatchInput[]>,
    ): Promise<ProcessDto> {
        const req = await this.getApplication().getRequestDto(
            dto,
            await this.getApplicationInstallFromProcess(dto),
            HttpMethods.POST,
            'v1/Import/Batch',
            dto.getJsonData(),
        );
        const resp = await this.getSender().send(req);
 
        return dto.setNewJsonData(resp.getJsonBody());
    }
 
}
 
export interface IFabisImportBatchInput {
    isActive?: boolean | null;
    companyIC?: string | null;
    degreeBefore?: string | null;
    firstName?: string | null;
    lastName?: string | null;
    degreeAfter?: string | null;
    dateBirth?: string | null;
    sex?: string | null;
    personalNumber?: string | null;
    employmentRelationshipCode?: string | null;
    isDriver?: boolean | null;
    email?: string | null;
    mobile?: string | null;
    street?: string | null;
    city?: string | null;
    postCode?: string | null;
    country?: string | null;
    costCenter?: string | null;
    costCenterName?: string | null;
    object?: string | null;
    employeeWork?: string | null;
    shift?: string | null;
    work?: string | null;
    workName?: string | null;
    parentEmployee?: string | null;
    dateMaternityLeaveStart?: string | null;
    dateMaternityLeaveEnd?: string | null;
    dateStart?: string | null;
    dateEnd?: string | null;
}