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 | 1x 6x 1x 5x 5x 4x 1x 3x 3x 1x 2x 2x 1x 1x 2x 2x 2x 1x 1x 1x 1x 1x 1x 1x | import { response } from "libs/handler-lib";
import { APIGatewayEvent } from "aws-lambda";
import { convertRegexToString } from "shared-utils";
import { webformVersions } from "../libs/webforms";
type GetFormBody = {
formId: string;
formVersion?: string;
};
export const getForm = async (event: APIGatewayEvent) => {
if (!event.body) {
return response({
statusCode: 400,
body: { message: "Event body required" },
});
}
try {
const body = JSON.parse(event.body) as GetFormBody;
if (!body.formId) {
return response({
statusCode: 400,
body: { error: "File ID was not provided" },
});
}
const id = body.formId.toUpperCase();
if (!webformVersions[id]) {
return response({
statusCode: 400,
body: { error: "Form ID not found" },
});
}
let version = "v";
if (body.formVersion) {
version += body.formVersion;
} else {
version += getMaxVersion(id);
}
const formObj = webformVersions[id][version];
const cleanedForm = convertRegexToString(formObj);
return response({
statusCode: 200,
body: cleanedForm,
});
} catch (error: any) {
console.error("Error:", error);
return response({
statusCode: 502,
body: {
error: error.message ? error.message : "Internal server error",
},
});
}
};
function getMaxVersion(id: string): string {
const webform = webformVersions[id];
const keys = Object.keys(webform);
keys.sort();
return keys[keys.length - 1];
}
export const handler = getForm;
|