Jules
Initial clean CRM deployment with prebuilt assets
d9494a5
Raw
History Blame Contribute Delete
1.12 kB
import { STANDARD_ERROR_MESSAGE } from 'src/engine/api/common/common-query-runners/errors/standard-error-message.constant';
import {
RestInputRequestParserException,
RestInputRequestParserExceptionCode,
} from 'src/engine/api/rest/input-request-parsers/rest-input-request-parser.exception';
import { type Depth } from 'src/engine/api/rest/input-request-parsers/types/depth.type';
import { type AuthenticatedRequest } from 'src/engine/api/rest/types/authenticated-request';
export const parseDepthRestRequest = (request: AuthenticatedRequest): Depth => {
if (!request.query.depth) {
return 0;
}
const depth = +request.query.depth as Depth;
const ALLOWED_DEPTH_VALUES: Depth[] = [0, 1];
if (isNaN(depth) || !ALLOWED_DEPTH_VALUES.includes(depth)) {
throw new RestInputRequestParserException(
`'depth=${
request.query.depth
}' parameter invalid. Allowed values are ${ALLOWED_DEPTH_VALUES.join(
', ',
)}`,
RestInputRequestParserExceptionCode.INVALID_DEPTH_QUERY_PARAM,
{ userFriendlyMessage: STANDARD_ERROR_MESSAGE },
);
}
return depth;
};