From d7b7a057087858debb05c2dc67f7cc55e396226f Mon Sep 17 00:00:00 2001 From: Leo <145344770+LGin-BJSS@users.noreply.github.com> Date: Mon, 23 Sep 2024 23:02:24 +0100 Subject: [PATCH] feat(cb2-13861): added script for generating batch plate data (#156) --- package-lock.json | 4 +- package.json | 4 +- src/handler/uploadPlateSeedData.ts | 44 +++++ src/services/database.ts | 22 +++ src/util/generateBatchPlateData.ts | 222 ++++++++++++++++++++++ template.yml | 25 ++- tests/resources/technical-records-v3.json | 62 +++--- webpack/webpack.production.js | 3 +- 8 files changed, 345 insertions(+), 41 deletions(-) create mode 100644 src/handler/uploadPlateSeedData.ts create mode 100644 src/util/generateBatchPlateData.ts diff --git a/package-lock.json b/package-lock.json index a7a5c42d..09c7dea2 100644 --- a/package-lock.json +++ b/package-lock.json @@ -25,7 +25,7 @@ "@aws-sdk/smithy-client": "^3.341.0", "@aws-sdk/types": "^3.341.0", "@aws-sdk/util-dynamodb": "^3.362.0", - "@dvsa/eslint-config-ts": "^3.0.0", + "@dvsa/eslint-config-ts": "^3.0.1", "@types/aws-lambda": "^8.10.114", "@types/jest": "^29.5.12", "@types/lodash": "^4.14.195", @@ -49,7 +49,7 @@ "source-map-support": "^0.5.21", "ts-jest": "^29.1.2", "ts-loader": "^9.4.2", - "ts-node": "^10.9.1", + "ts-node": "^10.9.2", "typescript": "^4.9.5", "uuid": "^8.3.2", "webpack": "^5.78.0", diff --git a/package.json b/package.json index 819986e9..ecc2029a 100644 --- a/package.json +++ b/package.json @@ -45,9 +45,9 @@ "polly-js": "^1.8.3" }, "devDependencies": { - "@aws-sdk/client-s3": "^3.550.0", "@aws-sdk/client-dynamodb": "^3.359.0", "@aws-sdk/client-lambda": "^3.362.0", + "@aws-sdk/client-s3": "^3.550.0", "@aws-sdk/client-sns": "^3.485.0", "@aws-sdk/client-sqs": "^3.382.0", "@aws-sdk/lib-dynamodb": "^3.341.0", @@ -78,7 +78,7 @@ "source-map-support": "^0.5.21", "ts-jest": "^29.1.2", "ts-loader": "^9.4.2", - "ts-node": "^10.9.1", + "ts-node": "^10.9.2", "typescript": "^4.9.5", "uuid": "^8.3.2", "webpack": "^5.78.0", diff --git a/src/handler/uploadPlateSeedData.ts b/src/handler/uploadPlateSeedData.ts new file mode 100644 index 00000000..22164376 --- /dev/null +++ b/src/handler/uploadPlateSeedData.ts @@ -0,0 +1,44 @@ +/* eslint-disable @typescript-eslint/no-unused-vars */ +/* eslint-disable @typescript-eslint/no-unsafe-member-access */ +/* eslint-disable @typescript-eslint/no-unsafe-call */ +/* eslint-disable @typescript-eslint/no-unsafe-assignment */ +import { marshall } from '@aws-sdk/util-dynamodb'; +import { APIGatewayProxyEvent, APIGatewayProxyResult } from 'aws-lambda'; +import 'dotenv/config'; +import * as fs from 'fs'; +import { insertBatchPlateSeedData } from '../services/database'; +import { generateBatchPlateData } from '../util/generateBatchPlateData'; +import { addHttpHeaders } from '../util/httpHeaders'; +import logger from '../util/logger'; + +export const handler = async (event: APIGatewayProxyEvent): Promise => { + logger.info('Upload plate seed end point called'); + + const fileNames = generateBatchPlateData(); + + // eslint-disable-next-line no-restricted-syntax + for (const fileName of fileNames) { + console.log(fileName); + // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment + const seedData = JSON.parse(fs.readFileSync(fileName, 'utf8')); + + const formattedSeedData = seedData.map((techRec: unknown) => ({ + PutRequest: { + Item: marshall(techRec, { removeUndefinedValues: true }), + }, + })); + + const chunkSize = 25; + + for (let i = 0; i < formattedSeedData.length; i += chunkSize) { + const chunk = formattedSeedData.slice(i, i + chunkSize); + // eslint-disable-next-line no-await-in-loop + await insertBatchPlateSeedData(chunk); + } + } + + return addHttpHeaders({ + statusCode: 200, + body: 'Uploaded all plate seed data', + }); +}; diff --git a/src/services/database.ts b/src/services/database.ts index 598868e5..ade09e35 100644 --- a/src/services/database.ts +++ b/src/services/database.ts @@ -1,5 +1,6 @@ import { AttributeValue, + BatchWriteItemCommand, DynamoDBClient, GetItemCommand, GetItemCommandInput, @@ -210,6 +211,27 @@ export const inPlaceRecordUpdate = async (updatedRecord: TechRecordType<'get'>) } }; +// DO NOT USE THIS UNLESS FOR SEED DATA FOR PLATES +export const insertBatchPlateSeedData = async (putRequests: any) => { + const command = new BatchWriteItemCommand({ + RequestItems: { + // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment + [tableName]: putRequests, + }, + }); + + try { + await ddbClient.send((command)); + } catch (err) { + logger.error('Error in batch upload for plates: ', err); + // eslint-disable-next-line @typescript-eslint/restrict-template-expressions + throw new Error( + // eslint-disable-next-line max-len + 'database client failed in batch plate uploader', + ); + } +}; + export const correctVrm = async (newRecord: TechRecordType<'get'>): Promise => { logger.info('correcting a VRM'); const putItemInput: PutItemCommandInput = { diff --git a/src/util/generateBatchPlateData.ts b/src/util/generateBatchPlateData.ts new file mode 100644 index 00000000..a0f1b5c8 --- /dev/null +++ b/src/util/generateBatchPlateData.ts @@ -0,0 +1,222 @@ +/* eslint-disable no-param-reassign */ +import { TechRecordGETHGVSkeleton } from '@dvsa/cvs-type-definitions/types/v3/tech-record/get/hgv/skeleton'; +import { TechRecordGETTRLSkeleton } from '@dvsa/cvs-type-definitions/types/v3/tech-record/get/trl/skeleton'; +import { TechRecordGETTRLTestable } from '@dvsa/cvs-type-definitions/types/v3/tech-record/get/trl/testable'; +import { TechRecordGETHGV, TechRecordGETTRL } from '@dvsa/cvs-type-definitions/types/v3/tech-record/tech-record-verb-vehicle-type'; +import * as fs from 'fs'; +import completeHGVTechRecord from '../../tests/resources/techRecordCompleteHGVPlate.json'; // This record is labeled complete, and has all information for generating a plate. But ius actually marked as testable +import completeTRLTechRecords from '../../tests/resources/technical-records-v3-no-plates.json'; + +function padZeroes(number: string, size: number) { + number = number.toString(); + while (number.length < size) number = `0${number}`; + return number; +} + +export const generateBatchPlateData = () => { + let fileCount = 1; + const fileNames = []; + const date = new Date().toISOString(); + let records = []; + const triggerData = []; + console.log('starting'); + // complete TRLs + for (let i = 10; i <= 40000; i++) { + const record = JSON.parse(JSON.stringify(completeTRLTechRecords[0])) as TechRecordGETTRL; + const paddedIterator = padZeroes(i.toString(), 6); + record.systemNumber = `BPS${paddedIterator}`; + record.createdTimestamp = date; + record.vin = `BPV${paddedIterator}`; + record.partialVin = paddedIterator; + records.push(record); + triggerData.push({ systemNumber: record.systemNumber, createdTimestamp: record.createdTimestamp }); + + if (i % 1000 === 0) { + const fileName = `/tmp/technical-records-v3-with-batch-plates-${fileCount.toString()}.json`; + fileNames.push(fileName); + fs.writeFileSync(fileName, JSON.stringify(records, null, 2)); + records = []; + fileCount++; + } + } + + records = []; + + // Complete HGVs + for (let i = 40001; i <= 80000; i++) { + const record = JSON.parse(JSON.stringify(completeHGVTechRecord)) as TechRecordGETHGV; + const paddedIterator = padZeroes(i.toString(), 6); + record.systemNumber = `BPS${paddedIterator}`; + record.createdTimestamp = date; + record.vin = `BPV${paddedIterator}`; + record.partialVin = paddedIterator; + record.primaryVrm = `${paddedIterator}Z`; + + records.push(record); + triggerData.push({ systemNumber: record.systemNumber, createdTimestamp: record.createdTimestamp }); + + if (i % 1000 === 0) { + const fileName = `/tmp/technical-records-v3-with-batch-plates-${fileCount.toString()}.json`; + fileNames.push(fileName); + fs.writeFileSync(fileName, JSON.stringify(records, null, 2)); + records = []; + fileCount++; + } + } + + records = []; + // Missing functionCode + for (let i = 80001; i <= 80500; i++) { + const record = JSON.parse(JSON.stringify(completeTRLTechRecords[0])) as TechRecordGETTRL; + const paddedIterator = padZeroes(i.toString(), 6); + record.systemNumber = `BPS${paddedIterator}`; + record.createdTimestamp = date; + record.vin = `BPV${paddedIterator}`; + record.partialVin = paddedIterator; + delete record.techRecord_functionCode; + records.push(record); + triggerData.push({ systemNumber: record.systemNumber, createdTimestamp: record.createdTimestamp }); + } + + const fileName1 = `/tmp/technical-records-v3-with-batch-plates-${fileCount.toString()}.json`; + fileNames.push(fileName1); + fs.writeFileSync(fileName1, JSON.stringify(records, null, 2)); + records = []; + fileCount++; + + // missing model and functionCode + for (let i = 80501; i <= 90000; i++) { + const record = JSON.parse(JSON.stringify(completeTRLTechRecords[0])) as TechRecordGETTRL; + const paddedIterator = padZeroes(i.toString(), 6); + record.systemNumber = `BPS${paddedIterator}`; + record.createdTimestamp = date; + record.vin = `BPV${paddedIterator}`; + record.partialVin = paddedIterator; + delete record.techRecord_functionCode; + delete record.techRecord_model; + records.push(record); + triggerData.push({ systemNumber: record.systemNumber, createdTimestamp: record.createdTimestamp }); + + if (i % 1000 === 0) { + const fileName = `/tmp/technical-records-v3-with-batch-plates-${fileCount.toString()}.json`; + fileNames.push(fileName); + fs.writeFileSync(fileName, JSON.stringify(records, null, 2)); + records = []; + fileCount++; + } + } + + records = []; + + // missing variantNumber + for (let i = 90001; i <= 98000; i++) { + const record = JSON.parse(JSON.stringify(completeHGVTechRecord)) as TechRecordGETHGV; + const paddedIterator = padZeroes(i.toString(), 6); + record.systemNumber = `BPS${paddedIterator}`; + record.createdTimestamp = date; + record.vin = `BPV${paddedIterator}`; + record.partialVin = paddedIterator; + record.primaryVrm = `${paddedIterator}Z`; + delete record.techRecord_variantNumber; + + records.push(record); + triggerData.push({ systemNumber: record.systemNumber, createdTimestamp: record.createdTimestamp }); + + if (i % 1000 === 0) { + const fileName = `/tmp/technical-records-v3-with-batch-plates-${fileCount.toString()}.json`; + fileNames.push(fileName); + fs.writeFileSync(fileName, JSON.stringify(records, null, 2)); + records = []; + fileCount++; + } + } + records = []; + console.log('98K'); + + // missing roadFriendly + for (let i = 98001; i <= 100000; i++) { + const record = JSON.parse(JSON.stringify(completeHGVTechRecord)) as TechRecordGETHGV; + const paddedIterator = padZeroes(i.toString(), 6); + record.systemNumber = `BPS${paddedIterator}`; + record.createdTimestamp = date; + record.vin = `BPV${paddedIterator}`; + record.partialVin = paddedIterator; + record.primaryVrm = `${paddedIterator}Z`; + delete record.techRecord_roadFriendly; + + records.push(record); + triggerData.push({ systemNumber: record.systemNumber, createdTimestamp: record.createdTimestamp }); + } + console.log('100K'); + const fileName3 = `/tmp/technical-records-v3-with-batch-plates-${fileCount.toString()}.json`; + fileNames.push(fileName3); + fs.writeFileSync(fileName3, JSON.stringify(records, null, 2)); + records = []; + fileCount++; + + console.log('100K'); + // HGV Skeleton + for (let i = 100001; i <= 101000; i++) { + const record = JSON.parse(JSON.stringify(completeHGVTechRecord)) as TechRecordGETHGVSkeleton; + const paddedIterator = padZeroes(i.toString(), 6); + record.systemNumber = `BPS${paddedIterator}`; + record.createdTimestamp = date; + record.vin = `BPV${paddedIterator}`; + record.partialVin = paddedIterator; + record.primaryVrm = `${paddedIterator}Z`; + record.techRecord_recordCompleteness = 'skeleton'; + + records.push(record); + triggerData.push({ systemNumber: record.systemNumber, createdTimestamp: record.createdTimestamp }); + } + const fileName4 = `/tmp/technical-records-v3-with-batch-plates-${fileCount.toString()}.json`; + fileNames.push(fileName4); + fs.writeFileSync(fileName4, JSON.stringify(records, null, 2)); + records = []; + fileCount++; + // TRL Skeleton + for (let i = 101001; i <= 102000; i++) { + const record = JSON.parse(JSON.stringify(completeTRLTechRecords[0])) as TechRecordGETTRLSkeleton; + const paddedIterator = padZeroes(i.toString(), 6); + record.systemNumber = `BPS${paddedIterator}`; + record.createdTimestamp = date; + record.vin = `BPV${paddedIterator}`; + record.partialVin = paddedIterator; + record.techRecord_recordCompleteness = 'skeleton'; + + records.push(record); + triggerData.push({ systemNumber: record.systemNumber, createdTimestamp: record.createdTimestamp }); + } + + const fileName5 = `/tmp/technical-records-v3-with-batch-plates-${fileCount.toString()}.json`; + fileNames.push(fileName5); + fs.writeFileSync(fileName5, JSON.stringify(records, null, 2)); + records = []; + fileCount++; + + // TRL Testable + for (let i = 102001; i <= 103000; i++) { + const record = JSON.parse(JSON.stringify(completeTRLTechRecords[0])) as TechRecordGETTRLTestable; + const paddedIterator = padZeroes(i.toString(), 6); + record.systemNumber = `BPS${paddedIterator}`; + record.createdTimestamp = date; + record.vin = `BPV${paddedIterator}`; + record.partialVin = paddedIterator; + + records.push(record); + triggerData.push({ systemNumber: record.systemNumber, createdTimestamp: record.createdTimestamp }); + } + + const fileName6 = `/tmp/technical-records-v3-with-batch-plates-${fileCount.toString()}.json`; + fileNames.push(fileName6); + fs.writeFileSync(fileName6, JSON.stringify(records, null, 2)); + records = []; + fileCount++; + + console.log('written vehicles to seed data'); + fs.writeFileSync('/tmp/trigger-data.json', JSON.stringify(triggerData, null, 2)); + console.log('written vehicles to trigger data'); + + console.log(fileCount); + return fileNames; +}; diff --git a/template.yml b/template.yml index b782613d..65178cca 100644 --- a/template.yml +++ b/template.yml @@ -192,6 +192,21 @@ Resources: Runtime: nodejs18.x Timeout: 20 + UploadPlateSeed: + Type: 'AWS::Serverless::Function' + Properties: + CodeUri: src/handler/ + Handler: uploadPlateSeedData.handler + Runtime: nodejs18.x + Timeout: 900 + MemorySize: 10240 + Events: + PlateSeed: + Type: Api + Properties: + Path: /v3/technical-records/uploadPlateSeed + Method: get + LoadBatchPlate: Type: 'AWS::Serverless::Function' Properties: @@ -203,11 +218,11 @@ Resources: S3Event: Type: S3 Events: s3:ObjectCreated:* - Filter: - S3Key: - Rules: - - Name: prefix - Value: value + Filter: + S3Key: + Rules: + - Name: prefix + Value: value LocalQueue: Type: AWS::SQS::Queue diff --git a/tests/resources/technical-records-v3.json b/tests/resources/technical-records-v3.json index 7a04cdca..798cee25 100644 --- a/tests/resources/technical-records-v3.json +++ b/tests/resources/technical-records-v3.json @@ -15761,7 +15761,7 @@ "vin": "VTAU1AUT0C9999998" }, { - "systemNumber": "4000002", + "systemNumber": "6000002", "createdTimestamp": "2024-09-09T09:23:44.664Z", "partialVin": "000001", "primaryVrm": "AUTO01HGV", @@ -15887,7 +15887,7 @@ "vin": "AUT0MAT10N0000001" }, { - "systemNumber": "4000003", + "systemNumber": "6000003", "createdTimestamp": "2024-09-09T09:23:44.664Z", "partialVin": "000001", "primaryVrm": "AUTO02HGV", @@ -16013,7 +16013,7 @@ "vin": "AUT0MAT10N0000002" }, { - "systemNumber": "4000004", + "systemNumber": "6000004", "createdTimestamp": "2024-09-09T09:23:44.664Z", "partialVin": "000001", "primaryVrm": "AUTO03HGV", @@ -16139,7 +16139,7 @@ "vin": "AUT0MAT10N0000003" }, { - "systemNumber": "4000005", + "systemNumber": "6000005", "createdTimestamp": "2024-09-09T09:23:44.664Z", "partialVin": "000001", "primaryVrm": "AUTO04HGV", @@ -16265,7 +16265,7 @@ "vin": "AUT0MAT10N0000004" }, { - "systemNumber": "4000006", + "systemNumber": "6000006", "createdTimestamp": "2024-09-09T09:23:44.664Z", "partialVin": "000001", "primaryVrm": "AUTO05HGV", @@ -16391,7 +16391,7 @@ "vin": "AUT0MAT10N0000005" }, { - "systemNumber": "4000007", + "systemNumber": "6000007", "createdTimestamp": "2024-09-09T09:23:44.664Z", "partialVin": "000001", "primaryVrm": "AUTO06HGV", @@ -16517,7 +16517,7 @@ "vin": "AUT0MAT10N0000006" }, { - "systemNumber": "4000008", + "systemNumber": "6000008", "createdTimestamp": "2024-09-09T09:23:44.664Z", "partialVin": "000001", "primaryVrm": "AUTO07HGV", @@ -16643,7 +16643,7 @@ "vin": "AUT0MAT10N0000007" }, { - "systemNumber": "4000009", + "systemNumber": "6000009", "createdTimestamp": "2024-09-09T09:23:44.664Z", "partialVin": "000001", "primaryVrm": "AUTO08HGV", @@ -16769,7 +16769,7 @@ "vin": "AUT0MAT10N0000008" }, { - "systemNumber": "4000010", + "systemNumber": "6000010", "createdTimestamp": "2024-09-09T09:23:44.664Z", "partialVin": "000001", "primaryVrm": "AUTO09HGV", @@ -16895,7 +16895,7 @@ "vin": "AUT0MAT10N0000009" }, { - "systemNumber": "4000011", + "systemNumber": "6000011", "createdTimestamp": "2024-09-09T09:23:44.664Z", "partialVin": "000001", "primaryVrm": "AUTO10HGV", @@ -17021,7 +17021,7 @@ "vin": "AUT0MAT10N0000010" }, { - "systemNumber": "4000012", + "systemNumber": "6000012", "createdTimestamp": "2024-09-09T09:34:49.583Z", "partialVin": "000011", "primaryVrm": "AUTO01PSV", @@ -17112,7 +17112,7 @@ "vin": "AUT0MAT10N0000011" }, { - "systemNumber": "4000013", + "systemNumber": "6000013", "createdTimestamp": "2024-09-09T09:34:49.583Z", "partialVin": "000011", "primaryVrm": "AUTO02PSV", @@ -17203,7 +17203,7 @@ "vin": "AUT0MAT10N0000012" }, { - "systemNumber": "4000014", + "systemNumber": "6000014", "createdTimestamp": "2024-09-09T09:34:49.583Z", "partialVin": "000011", "primaryVrm": "AUTO03PSV", @@ -17294,7 +17294,7 @@ "vin": "AUT0MAT10N0000013" }, { - "systemNumber": "4000015", + "systemNumber": "6000015", "createdTimestamp": "2024-09-09T09:34:49.583Z", "partialVin": "000011", "primaryVrm": "AUTO04PSV", @@ -17385,7 +17385,7 @@ "vin": "AUT0MAT10N0000014" }, { - "systemNumber": "4000016", + "systemNumber": "6000016", "createdTimestamp": "2024-09-09T09:34:49.583Z", "partialVin": "000011", "primaryVrm": "AUTO05PSV", @@ -17476,7 +17476,7 @@ "vin": "AUT0MAT10N0000015" }, { - "systemNumber": "4000017", + "systemNumber": "6000017", "createdTimestamp": "2024-09-09T09:34:49.583Z", "partialVin": "000011", "primaryVrm": "AUTO06PSV", @@ -17567,7 +17567,7 @@ "vin": "AUT0MAT10N0000016" }, { - "systemNumber": "4000018", + "systemNumber": "6000018", "createdTimestamp": "2024-09-09T09:34:49.583Z", "partialVin": "000011", "primaryVrm": "AUTO07PSV", @@ -17658,7 +17658,7 @@ "vin": "AUT0MAT10N0000017" }, { - "systemNumber": "4000019", + "systemNumber": "6000019", "createdTimestamp": "2024-09-09T09:34:49.583Z", "partialVin": "000011", "primaryVrm": "AUTO08PSV", @@ -17749,7 +17749,7 @@ "vin": "AUT0MAT10N0000018" }, { - "systemNumber": "4000020", + "systemNumber": "6000020", "createdTimestamp": "2024-09-09T09:34:49.583Z", "partialVin": "000011", "primaryVrm": "AUTO09PSV", @@ -17840,7 +17840,7 @@ "vin": "AUT0MAT10N0000019" }, { - "systemNumber": "4000021", + "systemNumber": "6000021", "createdTimestamp": "2024-09-09T09:34:49.583Z", "partialVin": "000011", "primaryVrm": "AUTO10PSV", @@ -17931,7 +17931,7 @@ "vin": "AUT0MAT10N0000020" }, { - "systemNumber": "4400001", + "systemNumber": "6000022", "createdTimestamp": "2024-09-09T09:59:39.488Z", "partialVin": "000021", "techRecord_adrDetails_additionalExaminerNotes": null, @@ -18064,7 +18064,7 @@ "vin": "AUT0MAT10N0000021" }, { - "systemNumber": "4400002", + "systemNumber": "6000023", "createdTimestamp": "2024-09-09T09:59:39.488Z", "partialVin": "000021", "techRecord_adrDetails_additionalExaminerNotes": null, @@ -18197,7 +18197,7 @@ "vin": "AUT0MAT10N0000022" }, { - "systemNumber": "4400003", + "systemNumber": "6000024", "createdTimestamp": "2024-09-09T09:59:39.488Z", "partialVin": "000021", "techRecord_adrDetails_additionalExaminerNotes": null, @@ -18330,7 +18330,7 @@ "vin": "AUT0MAT10N0000023" }, { - "systemNumber": "4400004", + "systemNumber": "6000025", "createdTimestamp": "2024-09-09T09:59:39.488Z", "partialVin": "000021", "techRecord_adrDetails_additionalExaminerNotes": null, @@ -18463,7 +18463,7 @@ "vin": "AUT0MAT10N0000024" }, { - "systemNumber": "4400005", + "systemNumber": "6000026", "createdTimestamp": "2024-09-09T09:59:39.488Z", "partialVin": "000021", "techRecord_adrDetails_additionalExaminerNotes": null, @@ -18596,7 +18596,7 @@ "vin": "AUT0MAT10N0000025" }, { - "systemNumber": "4400006", + "systemNumber": "6000027", "createdTimestamp": "2024-09-09T09:59:39.488Z", "partialVin": "000021", "techRecord_adrDetails_additionalExaminerNotes": null, @@ -18729,7 +18729,7 @@ "vin": "AUT0MAT10N0000026" }, { - "systemNumber": "4400007", + "systemNumber": "6000028", "createdTimestamp": "2024-09-09T09:59:39.488Z", "partialVin": "000021", "techRecord_adrDetails_additionalExaminerNotes": null, @@ -18862,7 +18862,7 @@ "vin": "AUT0MAT10N0000027" }, { - "systemNumber": "4400008", + "systemNumber": "6000029", "createdTimestamp": "2024-09-09T09:59:39.488Z", "partialVin": "000021", "techRecord_adrDetails_additionalExaminerNotes": null, @@ -18995,7 +18995,7 @@ "vin": "AUT0MAT10N0000028" }, { - "systemNumber": "4400009", + "systemNumber": "6000030", "createdTimestamp": "2024-09-09T09:59:39.488Z", "partialVin": "000021", "techRecord_adrDetails_additionalExaminerNotes": null, @@ -19128,7 +19128,7 @@ "vin": "AUT0MAT10N0000029" }, { - "systemNumber": "4400010", + "systemNumber": "6000031", "createdTimestamp": "2024-09-09T09:59:39.488Z", "partialVin": "000021", "techRecord_adrDetails_additionalExaminerNotes": null, @@ -19260,4 +19260,4 @@ "trailerId": "AUT10TRL", "vin": "AUT0MAT10N0000030" } -] +] \ No newline at end of file diff --git a/webpack/webpack.production.js b/webpack/webpack.production.js index ec3c811b..16c2cffc 100644 --- a/webpack/webpack.production.js +++ b/webpack/webpack.production.js @@ -10,7 +10,8 @@ const AwsSamPlugin = require("aws-sam-webpack-plugin"); const LAMBDA_NAMES = ['SearchLambdaFunction', 'GetLambdaFunction', 'PostLambdaFunction', 'PatchLambdaFunction', 'ArchiveLambdaFunction', 'UnarchiveLambdaFunction', 'PromoteLambdaFunction', 'UpdateVrmFunction', 'UpdateVinFunction', 'GeneratePlateFunction', 'GenerateLetterFunction', 'SyncTestResultInfoFunction', - 'GenerateAdrCertificateFunction', 'RemoveInvalidPrimaryVrms', 'BatchPlateCreation', 'MotUpdateVrm', 'LoadBatchPlate']; + 'GenerateAdrCertificateFunction', 'RemoveInvalidPrimaryVrms', 'BatchPlateCreation', 'MotUpdateVrm','LoadBatchPlate', + 'UploadPlateSeed']; const OUTPUT_FOLDER = './' const REPO_NAME = 'cvs-svc-technical-records-v3'; const BRANCH_NAME = branchName().replace(/\//g, "-");