From 90b26f5d3082965d4aa7cd23d5fe64d860f7fe59 Mon Sep 17 00:00:00 2001 From: Shristi Sinha Date: Wed, 10 Apr 2024 16:41:06 +0530 Subject: [PATCH 1/6] add lowdb code refactor code --- api/src/services/contentMapper.service.ts | 188 +++++++++++----------- 1 file changed, 98 insertions(+), 90 deletions(-) diff --git a/api/src/services/contentMapper.service.ts b/api/src/services/contentMapper.service.ts index 14084c9d..601099be 100644 --- a/api/src/services/contentMapper.service.ts +++ b/api/src/services/contentMapper.service.ts @@ -1,5 +1,4 @@ import { Request } from "express"; -import ProjectModel from "../models/project.js"; import { getLogMessage, isEmpty, safePromise } from "../utils/index.js"; import { BadRequestError, @@ -8,8 +7,6 @@ import { import { HTTP_TEXTS, HTTP_CODES, - POPULATE_CONTENT_MAPPER, - POPULATE_FIELD_MAPPING, PROJECT_STATUS, STEPPER_STEPS, } from "../constants/index.js"; @@ -457,14 +454,7 @@ const resetToInitialMapping = async (req: Request) => { }; const resetAllContentTypesMapping = async (projectId: string) => { const srcFunc = "resetAllContentTypesMapping"; - // const projectId = req?.params?.projectId; - - // const projectDetails: any = await ProjectModel.findOne({ - // _id: projectId, - // }).populate({ - // path: POPULATE_CONTENT_MAPPER, - // populate: { path: POPULATE_FIELD_MAPPING }, - // }); + await ProjectModelLowdb.read(); const projectDetails = ProjectModelLowdb.chain .get("projects") @@ -481,15 +471,6 @@ const resetAllContentTypesMapping = async (projectId: string) => { ); throw new BadRequestError(HTTP_TEXTS.CONTENTMAPPER_NOT_FOUND); } - await ContentTypesMapperModelLowdb.read(); - const data = contentMapperId.map((id: any) => { - const getFeildMappingData = ContentTypesMapperModelLowdb.chain - .get("ContentTypesMappers") - .find({ id: id }) - .value(); - return getFeildMappingData; - }); - if (isEmpty(projectDetails)) { logger.error( getLogMessage( @@ -499,48 +480,57 @@ const resetAllContentTypesMapping = async (projectId: string) => { ); throw new BadRequestError(HTTP_TEXTS.PROJECT_NOT_FOUND); } + await ContentTypesMapperModelLowdb.read(); + const cData = contentMapperId.map((cId: any) => { + const contentTypeData = ContentTypesMapperModelLowdb.chain + .get("ContentTypesMappers") + .find({ id: cId }) + .value(); + return contentTypeData; + }); try { - // const contentTypes = projectDetails?.content_mapper; - const contentTypes = data; - const contentTypesbulkWriteOperations: any = await Promise.all( - contentTypes?.map(async (contentType: any) => { - if (!isEmpty(contentType?.fieldMapping)) { + const contentTypes = cData; + for (const contentType of contentTypes) { + if (!isEmpty(contentType.fieldMapping)) { + for (const field of contentType.fieldMapping) { await FieldMapperModel.read(); - (contentType?.fieldMapping || []).forEach((field: any) => { - const fieldIndex = FieldMapperModel.data.field_mapper.findIndex( - (f: any) => f?.id === field?.id - ); - if (fieldIndex > -1) { - FieldMapperModel.update((data: any) => { - data.field_mapper[fieldIndex] = { - ...field, - contentstackField: "", - contentstackFieldUid: "", - ContentstackFieldType: field.backupFieldType, - }; - }); - } + const fieldData = FieldMapperModel.chain + .get("field_mapper") + .find({ id: field }) + .value(); + const fieldIndex = FieldMapperModel.chain + .get("field_mapper") + .findIndex({ id: field }) + .value(); + + if (fieldIndex > -1) { + await FieldMapperModel.update((fData: any) => { + fData.field_mapper[fieldIndex] = { + ...fieldData, + contentstackField: "", + contentstackFieldUid: "", + ContentstackFieldType: fieldData.backupFieldType, + }; + }); + } + } + } + await ContentTypesMapperModelLowdb.read(); + if (!isEmpty(contentType?.id)) { + const cIndex = ContentTypesMapperModelLowdb.chain + .get("ContentTypesMappers") + .findIndex({ id: contentType?.id }) + .value(); + if (cIndex > -1) { + await ContentTypesMapperModelLowdb.update((data: any) => { + data.ContentTypesMappers[cIndex].contentstackTitle = ""; + data.ContentTypesMappers[cIndex].contentstackUid = ""; }); } - return { - updateOne: { - filter: { _id: contentType._id }, - update: { - $set: { - contentstackTitle: "", - contentstackUid: "", - }, - }, - }, - }; - }) - ); + } + } - await ContentTypesMapperModelLowdb.read(); - ContentTypesMapperModelLowdb.update((data: any) => { - data.ContentTypesMappers.push(contentTypesbulkWriteOperations); - }); return projectDetails; } catch (error: any) { logger.error( @@ -559,13 +549,11 @@ const resetAllContentTypesMapping = async (projectId: string) => { }; const removeMapping = async (projectId: string) => { const srcFunc = "removeMapping"; - - const projectDetails: any = await ProjectModel.findOne({ - _id: projectId, - }).populate({ - path: POPULATE_CONTENT_MAPPER, - populate: { path: POPULATE_FIELD_MAPPING }, - }); + await ProjectModelLowdb.read(); + const projectDetails = ProjectModelLowdb.chain + .get("projects") + .find({ id: projectId }) + .value(); if (isEmpty(projectDetails)) { logger.error( @@ -576,40 +564,59 @@ const removeMapping = async (projectId: string) => { ); throw new BadRequestError(HTTP_TEXTS.PROJECT_NOT_FOUND); } + await ContentTypesMapperModelLowdb.read(); + const cData = projectDetails?.content_mapper.map((cId: any) => { + const contentTypeData = ContentTypesMapperModelLowdb.chain + .get("ContentTypesMappers") + .find({ id: cId }) + .value(); + return contentTypeData; + }); try { - const contentTypes = projectDetails?.content_mapper; - + const contentTypes = cData; //TODO: remove fieldMapping ids in ContentTypesMapperModel for each content types - const contentTypesbulkWriteOperations: any = await Promise.all( - contentTypes?.map(async (contentType: any) => { - if (!isEmpty(contentType?.fieldMapping)) { + + for (const contentType of contentTypes) { + if (!isEmpty(contentType.fieldMapping)) { + for (const field of contentType.fieldMapping) { await FieldMapperModel.read(); - (contentType?.fieldMapping || []).forEach((field: any) => { - const fieldIndex = FieldMapperModel.data.field_mapper.findIndex( - (f: any) => f?.id === field?.id - ); - if (fieldIndex > -1) { - FieldMapperModel.update((data: any) => { - delete data.field_mapper[fieldIndex]; - }); - } + const fieldIndex = FieldMapperModel.chain + .get("field_mapper") + .findIndex({ id: field }) + .value(); + if (fieldIndex > -1) { + await FieldMapperModel.update((fData: any) => { + delete fData.field_mapper[fieldIndex]; + }); + } + } + } + await ContentTypesMapperModelLowdb.read(); + if (!isEmpty(contentType?.id)) { + const cIndex = ContentTypesMapperModelLowdb.chain + .get("ContentTypesMappers") + .findIndex({ id: contentType?.id }) + .value(); + if (cIndex > -1) { + await ContentTypesMapperModelLowdb.update((data: any) => { + delete data.ContentTypesMappers[cIndex]; }); } - return { - deleteOne: { - filter: { _id: contentType._id }, - }, - }; - }) - ); + } + } - await ContentTypesMapperModelLowdb.read(); - ContentTypesMapperModelLowdb.update((data: any) => { - data.ContentTypesMappers.push(contentTypesbulkWriteOperations); - }); - projectDetails.content_mapper = []; - await projectDetails?.save(); + await ProjectModelLowdb.read(); + const projectIndex = ProjectModelLowdb.chain + .get("projects") + .findIndex({ id: projectId }) + .value(); + + if (projectIndex > -1) { + ProjectModelLowdb.update((data: any) => { + data.projects[projectIndex].content_mapper = []; + }); + } return projectDetails; } catch (error: any) { logger.error( @@ -626,6 +633,7 @@ const removeMapping = async (projectId: string) => { ); } }; + export const contentMapperService = { putTestData, getContentTypes, From bea315b82b2641d76a8fa5f1db8158a9b8922515 Mon Sep 17 00:00:00 2001 From: Sayali Joshi Date: Fri, 12 Apr 2024 13:42:02 +0530 Subject: [PATCH 2/6] Content mapper column changes --- .../ContentMapper/contentMapper.interface.ts | 1 + ui/src/components/ContentMapper/index.tsx | 55 +++++++++++++------ ui/src/services/api/stacks.service.ts | 2 + 3 files changed, 42 insertions(+), 16 deletions(-) diff --git a/ui/src/components/ContentMapper/contentMapper.interface.ts b/ui/src/components/ContentMapper/contentMapper.interface.ts index 3086c7bd..2f265509 100644 --- a/ui/src/components/ContentMapper/contentMapper.interface.ts +++ b/ui/src/components/ContentMapper/contentMapper.interface.ts @@ -55,6 +55,7 @@ export interface FieldMapType { otherCmsType: string; uid: string; _id: string; + _invalid?: boolean; } export interface ItemStatus { diff --git a/ui/src/components/ContentMapper/index.tsx b/ui/src/components/ContentMapper/index.tsx index 7b76a645..f0454013 100644 --- a/ui/src/components/ContentMapper/index.tsx +++ b/ui/src/components/ContentMapper/index.tsx @@ -132,6 +132,12 @@ const ContentMapper = () => { fetchExistingContentTypes(); stackStatus(); + + tableData?.forEach((field) => { + if (field?.otherCmsField === 'title' || field?.otherCmsField === 'url') { + field._invalid = true; + } + }); }, []); // Method to fetch content types @@ -150,12 +156,18 @@ const ContentMapper = () => { newMigrationData?.destination_stack?.selectedStack?.value ); + console.log("empty stack", IsEmptyStack, contentTypeCount); + + if (contentTypeCount > 0) { - setIsEmptyStack(true); - } else { setIsEmptyStack(false); + } else { + setIsEmptyStack(true); } }; + + console.log("empty stack", IsEmptyStack); + // Method to search content types const handleSearch = async (search: string) => { setSearchText(search); @@ -617,23 +629,32 @@ const ContentMapper = () => { }, { disableSortBy: true, - Header: contentstackFields.title, - id: 'contenstatck', - //id: contentstackFields.title.replace(/\W+/g, '_').toLowerCase(), - accessor: SelectAccessor + Header: `Contentstack: ${IsEmptyStack ? `Blog` : newMigrationData?.destination_stack?.selectedStack?.label}`, + accessor: SelectAccessor, + id: 'contentstack_cms_field' } + // { + // disableSortBy: true, + // Header: contentstackFields.title, + // id: 'contenstatck', + // //id: contentstackFields.title.replace(/\W+/g, '_').toLowerCase(), + // accessor: SelectAccessor + // } ]; - if (!IsEmptyStack) { - columns?.splice(1, 0, { - disableSortBy: true, - Header: `Contentstack: Home`, - // accessor: 'ct_field', - accessor: SelectAccessorOfColumn, - id: 'contentstack_cms_field' - //default: false - }); - } + console.log("================ stack", newMigrationData); + + + // if (!IsEmptyStack) { + // columns?.splice(1, 0, { + // disableSortBy: true, + // Header: `Contentstack: ${newMigrationData?.destination_stack?.selectedStack?.label}`, + // // accessor: 'ct_field', + // accessor: SelectAccessor, + // id: 'contentstack_cms_field' + // //default: false + // }); + // } const nextButtonLabel = currentIndex < contentTypes?.length - 1 ? contentTypes[currentIndex + 1]?.otherCmsTitle : ''; @@ -675,6 +696,8 @@ const ContentMapper = () => { onClick={(e) => openContentType(e, index)} > {content?.otherCmsTitle} + + {'Schema preview'} ))} diff --git a/ui/src/services/api/stacks.service.ts b/ui/src/services/api/stacks.service.ts index 53910907..0911cb46 100644 --- a/ui/src/services/api/stacks.service.ts +++ b/ui/src/services/api/stacks.service.ts @@ -25,6 +25,8 @@ export const createStacksInOrg = async (orgId: string, data: any) => { }; export const getStackStatus = async (orgId: string, data: string) => { + console.log('.................', orgId, data); + try { return await postCall(`${API_VERSION}/org/${orgId}/stack_status`, data, options); } catch (error: any) { From 70bf30bce1f9357c0800c55df9d1758d0783c25d Mon Sep 17 00:00:00 2001 From: Shreyas Bhoyar Date: Tue, 16 Apr 2024 14:19:02 +0530 Subject: [PATCH 3/6] bug fix: Update destination stack --- api/src/database.ts | 2 +- api/src/services/projects.service.ts | 5 +++-- ui/{example.env => example.env} | 0 3 files changed, 4 insertions(+), 3 deletions(-) rename ui/{example.env => example.env} (100%) diff --git a/api/src/database.ts b/api/src/database.ts index 2aaedd34..1dc63c7f 100644 --- a/api/src/database.ts +++ b/api/src/database.ts @@ -26,4 +26,4 @@ const connectToDatabase = async () => { } }; -export default connectToDatabase; +export default connectToDatabase; \ No newline at end of file diff --git a/api/src/services/projects.service.ts b/api/src/services/projects.service.ts index dcdb98f4..f5f38a22 100644 --- a/api/src/services/projects.service.ts +++ b/api/src/services/projects.service.ts @@ -490,8 +490,8 @@ const updateDestinationStack = async (req: Request) => { ); throw new BadRequestError(HTTP_TEXTS.CANNOT_UPDATE_DESTINATION_STACK); } - - if (project.current_step > STEPPER_STEPS.LEGACY_CMS) { + + if (project.current_step > STEPPER_STEPS.DESTINATION_STACK) { await contentMapperService.resetAllContentTypesMapping(projectId); logger.info( getLogMessage( @@ -501,6 +501,7 @@ const updateDestinationStack = async (req: Request) => { ) ); } + try { const [err, res] = await safePromise( https({ diff --git a/ui/example.env b/ui/example.env similarity index 100% rename from ui/example.env rename to ui/example.env From 67fdde0784ce6b14558657b1de86a951b347d892 Mon Sep 17 00:00:00 2001 From: Sayali Joshi Date: Tue, 16 Apr 2024 16:19:12 +0530 Subject: [PATCH 4/6] Schema Preview modal done --- .../ContentMapper/contentMapper.interface.ts | 6 + ui/src/components/ContentMapper/index.scss | 14 +- ui/src/components/ContentMapper/index.tsx | 113 +++++--------- .../NewMigration/NewMigrationWrapper.scss | 8 +- ui/src/components/SchemaModal/index.scss | 53 +++++++ ui/src/components/SchemaModal/index.tsx | 142 ++++++++++++++++++ .../SchemaModal/schemaModal.interface.ts | 33 ++++ 7 files changed, 291 insertions(+), 78 deletions(-) create mode 100644 ui/src/components/SchemaModal/index.scss create mode 100644 ui/src/components/SchemaModal/index.tsx create mode 100644 ui/src/components/SchemaModal/schemaModal.interface.ts diff --git a/ui/src/components/ContentMapper/contentMapper.interface.ts b/ui/src/components/ContentMapper/contentMapper.interface.ts index 2f265509..45875214 100644 --- a/ui/src/components/ContentMapper/contentMapper.interface.ts +++ b/ui/src/components/ContentMapper/contentMapper.interface.ts @@ -89,3 +89,9 @@ export interface ContentTypeList { title: string; schema: []; } + +export interface optionsType { + label?: string; + value?: string; + isDisabled?: boolean; +} \ No newline at end of file diff --git a/ui/src/components/ContentMapper/index.scss b/ui/src/components/ContentMapper/index.scss index 37bf73d0..45bdb543 100644 --- a/ui/src/components/ContentMapper/index.scss +++ b/ui/src/components/ContentMapper/index.scss @@ -18,8 +18,7 @@ } .ct-list { list-style-type: none; - margin-right: 15px; - margin-top: 5px; + margin: 5px 15px 0; li { border: 1px solid transparent; cursor: pointer; @@ -27,9 +26,12 @@ line-height: normal; padding: $space-10 35px; &.active-ct { + align-items: center; background-color: $color-brand-white-base; border: 1px solid $color-brand-primary-base; color: $color-brand-primary-base; + display: flex; + justify-content: space-between; } } } @@ -44,6 +46,7 @@ } .cta-wrapper { border-top: 1px solid $color-base-gray-40; + flex: 1 0 auto; // bottom: 0; padding: $space-12 $space-24 $space-12 $space-12; // position: fixed; @@ -53,6 +56,9 @@ z-index: 1; position: relative; } +.table-container { + flex: 1 0 auto; +} .table-wrapper { .Table { min-height: inherit; @@ -65,10 +71,12 @@ padding: 12px; } .step-container { + display: flex; + flex-direction: column; margin-top: 0; - width: 100%; margin-left: 0px; margin-bottom: 20px; + width: 100%; } .saveButton { padding: 5px 30px; diff --git a/ui/src/components/ContentMapper/index.tsx b/ui/src/components/ContentMapper/index.tsx index f0454013..72f8ecf9 100644 --- a/ui/src/components/ContentMapper/index.tsx +++ b/ui/src/components/ContentMapper/index.tsx @@ -9,11 +9,8 @@ import { Button, Search, Icon, - ModalHeader, - ModalFooter, Tooltip, Notification, - ModalBody, cbModal } from '@contentstack/venus-components'; import { jsonToHtml } from '@contentstack/json-rte-serializer'; @@ -47,9 +44,14 @@ import { Mapping, ExistingFieldType, ContentTypeList, - ContentTypesSchema + ContentTypesSchema, + optionsType } from './contentMapper.interface'; import { ItemStatusMapProp } from '@contentstack/venus-components/build/components/Table/types'; +import { ModalObj } from '../Modal/modal.interface'; + +// Components +import SchemaModal from '../SchemaModal'; // Styles import './index.scss'; @@ -83,7 +85,6 @@ const ContentMapper = () => { const { contentMappingData: { content_types_heading: contentTypesHeading, - contentstack_fields: contentstackFields, description, action_cta: actionCta, cta, @@ -111,6 +112,8 @@ const ContentMapper = () => { const [exstingField, setexsitingField] = useState({}); const [selectedOptions, setSelectedOptions] = useState([]); + const [active, setActive] = useState(null ?? 0); + /** ALL HOOKS Here */ const { projectId = '' } = useParams(); @@ -156,9 +159,6 @@ const ContentMapper = () => { newMigrationData?.destination_stack?.selectedStack?.value ); - console.log("empty stack", IsEmptyStack, contentTypeCount); - - if (contentTypeCount > 0) { setIsEmptyStack(false); } else { @@ -166,8 +166,6 @@ const ContentMapper = () => { } }; - console.log("empty stack", IsEmptyStack); - // Method to search content types const handleSearch = async (search: string) => { setSearchText(search); @@ -214,7 +212,6 @@ const ContentMapper = () => { startIndex, stopIndex }: TableTypes) => { - console.log(''); fetchContentTypes(); }; @@ -257,13 +254,7 @@ const ContentMapper = () => { // Method to change the content type const openContentType = (e: React.MouseEvent, i: number) => { - document.querySelectorAll('.ct-list li').forEach((ctLi) => { - ctLi?.classList?.remove('active-ct'); - }); - if (e.target instanceof HTMLLIElement) { - e?.target?.classList?.add('active-ct'); - } - + setActive(i); setOtherCmsTitle(contentTypes?.[i]?.otherCmsTitle); setContentTypeUid(contentTypes?.[i]?.id); setCurrentIndex(i); @@ -308,47 +299,15 @@ const ContentMapper = () => { // setSelectedContentType(value); // }; - const Modalomponent = (props: any) => { - return ( - <> - - - {contentTypes && validateArray(contentTypes) && ( -
    - {contentTypes?.map((content: ContentType, index: number) => ( -
    -
  • - {content?.otherCmsTitle} -
  • - - - -
    - ))} -
- )} -
- - - - - - - - ); - }; - const handleOnClick = () => { + const handleOnClick = (title: string) => { return cbModal({ - component: (props: any) => ( - { - return; - }} + component: (props: ModalObj) => ( + { + // return; + // }} {...props} /> ), @@ -396,7 +355,7 @@ const ContentMapper = () => {
handleFieldChange(selectedOption, data?.uid)} + onChange={(selectedOption: FieldTypes) => handleFieldChange(selectedOption, data?.uid)} placeholder="Select Field" version={'v2'} maxWidth="290px" @@ -642,9 +602,6 @@ const ContentMapper = () => { // } ]; - console.log("================ stack", newMigrationData); - - // if (!IsEmptyStack) { // columns?.splice(1, 0, { // disableSortBy: true, @@ -668,7 +625,7 @@ const ContentMapper = () => { return (
-
+
{/* Content Types List */}
@@ -692,12 +649,24 @@ const ContentMapper = () => { {contentTypes?.map((content: ContentType, index: number) => (
  • openContentType(e, index)} > - {content?.otherCmsTitle} - - {'Schema preview'} + {content?.otherCmsTitle} + + {active == index && ( + + + handleOnClick(content?.otherCmsTitle)} + /> + + + )}
  • ))} @@ -827,7 +796,7 @@ const ContentMapper = () => { {cta?.title && (
    -
    diff --git a/ui/src/components/Migrations/NewMigration/NewMigrationWrapper.scss b/ui/src/components/Migrations/NewMigration/NewMigrationWrapper.scss index 623fcecb..f09c93fc 100644 --- a/ui/src/components/Migrations/NewMigration/NewMigrationWrapper.scss +++ b/ui/src/components/Migrations/NewMigration/NewMigrationWrapper.scss @@ -12,8 +12,9 @@ } .step-component .action-component-body { - width: 100% !important; + display: flex; margin-left: 0px !important; + width: 100% !important; } .step-component .step-name-icon { @@ -58,9 +59,10 @@ width: auto; } #newMigration .PageLayout__body { + background-color: $color-base-white-10 !important; + display: flex; margin: 0; position: relative; + padding: 0; width: auto; - background-color: #f7f9fc !important; - padding-top: 0; } diff --git a/ui/src/components/SchemaModal/index.scss b/ui/src/components/SchemaModal/index.scss new file mode 100644 index 00000000..1b785b80 --- /dev/null +++ b/ui/src/components/SchemaModal/index.scss @@ -0,0 +1,53 @@ +@import '../../scss/variables'; + +.entries-outline { + ul { + padding: 0.625rem; + padding-bottom: 0.3125rem; + padding-top: 0; + transition: opacity 0.2s linear; + li { + color: #475161; + cursor: pointer; + font-size: 1rem; + font-weight: 500; + padding: 0; + white-space: nowrap; + .iconsholder { + align-items: center; + display: flex; + justify-content: flex-start; + padding: 0; + &:hover { + .title { + color: $color-brand-primary-base; + } + .icons { + svg { + path { + stroke: $color-brand-primary-base; + } + } + } + } + } + .title { + color: #475161; + font-weight: 400; + opacity: 1; + text-transform: capitalize; + transition: opacity 0.5s linear, width 300ms linear; + width: 12.5rem; + } + .icons { + align-items: center; + display: inline-flex; + justify-content: flex-start; + padding: 0.625rem 0; + svg { + margin-right: 0.625rem; + } + } + } + } +} \ No newline at end of file diff --git a/ui/src/components/SchemaModal/index.tsx b/ui/src/components/SchemaModal/index.tsx new file mode 100644 index 00000000..1d2cd4ef --- /dev/null +++ b/ui/src/components/SchemaModal/index.tsx @@ -0,0 +1,142 @@ +// Libraries +import { useState, useEffect } from "react"; +import { ModalBody, ModalHeader, ModalFooter, Icon, ButtonGroup, Button } from "@contentstack/venus-components"; + +// Interface +import { Icons, SchemaProps, schemaType } from "./schemaModal.interface"; +import { FieldMapType } from "../ContentMapper/contentMapper.interface"; + +// Styles +import './index.scss'; + +const getTopLevelIcons = (field: FieldMapType) => { + const icons: Icons = { + title: "StarSmall", + text: "SingleLineTextSmall", + multitext: "MultiLineTextSmall", + rte: "RichTextEditorSmall", + jsonRte: "SuperchargedRte", + markdown: "MarkdownSmall", + select: "SelectSmall", + number: "NumberSmall", + boolean: "BooleanSmall", + isodate: "DateSmall", + file: "FileSmall", + reference: "ReferenceSmall", + group: "GroupSmall", + global_field: "GlobalSmall", + blocks: "ModularBlocksSmall", + link: "LinkSmall", + bullet: "Bullet", + custom: "CustomSmall", + tag: "TagSmall", + experience_container: "PersonalizationLogoGreySmall", + }; + + if (field?.ContentstackFieldType === "Single Line Textbox") { + return icons["title"]; + } + + if (field?.ContentstackFieldType === "URL") { + return icons["text"]; + } + + if (field?.ContentstackFieldType === "tags") { + return icons["tag"]; + } + + if (field?.ContentstackFieldType === "Select" || field?.ContentstackFieldType === "dropdown") { + return icons["select"]; + } + + if (field?.ContentstackFieldType === "Date") { + return icons["isodate"]; + } + + if (field?.ContentstackFieldType === "Multi Line Textbox") { + return icons["multitext"]; + } + + if (field?.ContentstackFieldType === "HTML Rich text Editor") { + return icons["rte"]; + } + + if (field?.ContentstackFieldType === "JSON Rich Text Editor") { + return icons["jsonRte"]; + } + + if (field?.ContentstackFieldType === "Link") { + return icons["link"]; + } + + if (field?.ContentstackFieldType === "Boolean") { + return icons["boolean"]; + } + + if (field?.ContentstackFieldType === "Reference") { + return icons["reference"]; + } + + if (!field.ContentstackFieldType) { + return icons["blocks"]; + } + + return icons[field?.ContentstackFieldType as keyof Icons]; +}; + +const TreeView = ({ schema = [] }: schemaType) => { + const [list, setList] = useState([]); + + useEffect(() => { + setList(schema); + }, [schema]); + + return ( +
    +
    +
    + {list?.length > 0 && +
      + {list?.map((item: FieldMapType) => ( +
    • +
      + + + + + {item?.otherCmsField} + +
      +
    • + ))} +
    + } +
    +
    +
    + ) + +}; +const SchemaModal = (props: SchemaProps) => { + return ( + <> + + + + + + + + + + + + ); +}; + +export default SchemaModal \ No newline at end of file diff --git a/ui/src/components/SchemaModal/schemaModal.interface.ts b/ui/src/components/SchemaModal/schemaModal.interface.ts new file mode 100644 index 00000000..2817c392 --- /dev/null +++ b/ui/src/components/SchemaModal/schemaModal.interface.ts @@ -0,0 +1,33 @@ +import { FieldMapType } from "../ContentMapper/contentMapper.interface"; + +export interface Icons { + title?: string; + text?: string; + multitext?: string; + rte?: string; + jsonRte?: string; + markdown?: string; + select?: string; + number?: string; + boolean?: string; + isodate?: string; + file?: string; + reference?: string; + group?: string; + global_field?: string; + blocks?: string; + link?: string; + bullet?: string; + custom?: string; + tag?: string; + experience_container?: string; +} + export interface SchemaProps { + contentType?: string; + closeModal: () => void; + schemaData: FieldMapType[]; + } + + export interface schemaType { + schema: FieldMapType[]; + } \ No newline at end of file From b97409939417702697ee90b0aee210ee416b5396 Mon Sep 17 00:00:00 2001 From: Sayali Joshi Date: Tue, 16 Apr 2024 16:54:55 +0530 Subject: [PATCH 5/6] Schema Preview modal added From b88f217474b07ec76f60a6abf67fbff33bc4fde2 Mon Sep 17 00:00:00 2001 From: Sayali Joshi Date: Wed, 17 Apr 2024 13:27:26 +0530 Subject: [PATCH 6/6] Revert "Merge branch 'feature/code-merge' of https://github.com/contentstack/migration-v2-node-server into feature/code-merge" This reverts commit 88d5b0e8d3f4fcacafc0d8bc305faa24bff9d946, reversing changes made to 859e321cfc9f3dfcda0b0986cc337e0b45cde00c. --- .DS_Store | Bin 6148 -> 0 bytes api/src/services/projects.service.ts | 3 +- development.env | 3 - dist/config/dev.config.js | 10 - dist/config/index.js | 25 -- dist/config/prod.config.js | 11 - dist/constants/index.js | 76 ----- dist/controllers/auth.controller.js | 16 - dist/controllers/org.controller.js | 21 -- .../projects.contentMapper.controller.js | 42 --- dist/controllers/projects.controller.js | 51 ---- .../projects.uploads.controller.js | 21 -- dist/controllers/user.controller.js | 12 - dist/database.js | 33 -- dist/middlewares/auth.middleware.js | 27 -- dist/middlewares/auth.migration.middleware.js | 15 - .../auth.uploadService.middleware.js | 15 - dist/middlewares/error.middleware.js | 25 -- dist/middlewares/logger.middleware.js | 22 -- dist/middlewares/req-headers.middleware.js | 13 - .../unmatched-routes.middleware.js | 11 - dist/models/FieldMapper.js | 19 -- dist/models/auditLog.js | 29 -- dist/models/authentication.js | 12 - dist/models/contentTypesMapper.js | 14 - dist/models/project.js | 32 -- dist/models/types.js | 2 - dist/routes/auth.routes.js | 15 - dist/routes/contentMapper.routes.js | 22 -- dist/routes/migrationMidlleware.routes.js | 14 - dist/routes/org.routes.js | 17 -- dist/routes/projects.routes.js | 30 -- dist/routes/projects.uploads.routes.js | 17 -- dist/routes/uploadService.routes.js | 17 -- dist/routes/user.routes.js | 12 - dist/server.js | 58 ---- dist/services/auth.service.js | 92 ------ dist/services/contentMapper.service.js | 281 ------------------ dist/services/org.service.js | 91 ------ dist/services/projects.service.js | 211 ------------- dist/services/projects.uploads.service.js | 73 ----- dist/services/user.service.js | 44 --- dist/utils/async-router.utils.js | 7 - dist/utils/auth.utils.js | 16 - dist/utils/custom-errors.utils.js | 56 ---- dist/utils/get-project.utils.js | 22 -- dist/utils/https.utils.js | 24 -- dist/utils/index.js | 32 -- dist/utils/jwt.utils.js | 16 - dist/utils/logger.js | 18 -- dist/utils/s3-uploads.utils.js | 34 --- dist/validators/auth.validator.js | 56 ---- dist/validators/cms.validator.js | 22 -- .../validators/destination-stack.validator.js | 22 -- dist/validators/file-format.validator.js | 22 -- dist/validators/index.js | 32 -- .../validators/initialize-upload.validator.js | 14 - dist/validators/project.validator.js | 38 --- dist/validators/upload.validator.js | 29 -- production.env | 3 - ui/{example.env => example.env } | 0 61 files changed, 1 insertion(+), 2016 deletions(-) delete mode 100644 .DS_Store delete mode 100644 development.env delete mode 100644 dist/config/dev.config.js delete mode 100644 dist/config/index.js delete mode 100644 dist/config/prod.config.js delete mode 100644 dist/constants/index.js delete mode 100644 dist/controllers/auth.controller.js delete mode 100644 dist/controllers/org.controller.js delete mode 100644 dist/controllers/projects.contentMapper.controller.js delete mode 100644 dist/controllers/projects.controller.js delete mode 100644 dist/controllers/projects.uploads.controller.js delete mode 100644 dist/controllers/user.controller.js delete mode 100644 dist/database.js delete mode 100644 dist/middlewares/auth.middleware.js delete mode 100644 dist/middlewares/auth.migration.middleware.js delete mode 100644 dist/middlewares/auth.uploadService.middleware.js delete mode 100644 dist/middlewares/error.middleware.js delete mode 100644 dist/middlewares/logger.middleware.js delete mode 100644 dist/middlewares/req-headers.middleware.js delete mode 100644 dist/middlewares/unmatched-routes.middleware.js delete mode 100644 dist/models/FieldMapper.js delete mode 100644 dist/models/auditLog.js delete mode 100644 dist/models/authentication.js delete mode 100644 dist/models/contentTypesMapper.js delete mode 100644 dist/models/project.js delete mode 100644 dist/models/types.js delete mode 100644 dist/routes/auth.routes.js delete mode 100644 dist/routes/contentMapper.routes.js delete mode 100644 dist/routes/migrationMidlleware.routes.js delete mode 100644 dist/routes/org.routes.js delete mode 100644 dist/routes/projects.routes.js delete mode 100644 dist/routes/projects.uploads.routes.js delete mode 100644 dist/routes/uploadService.routes.js delete mode 100644 dist/routes/user.routes.js delete mode 100644 dist/server.js delete mode 100644 dist/services/auth.service.js delete mode 100644 dist/services/contentMapper.service.js delete mode 100644 dist/services/org.service.js delete mode 100644 dist/services/projects.service.js delete mode 100644 dist/services/projects.uploads.service.js delete mode 100644 dist/services/user.service.js delete mode 100644 dist/utils/async-router.utils.js delete mode 100644 dist/utils/auth.utils.js delete mode 100644 dist/utils/custom-errors.utils.js delete mode 100644 dist/utils/get-project.utils.js delete mode 100644 dist/utils/https.utils.js delete mode 100644 dist/utils/index.js delete mode 100644 dist/utils/jwt.utils.js delete mode 100644 dist/utils/logger.js delete mode 100644 dist/utils/s3-uploads.utils.js delete mode 100644 dist/validators/auth.validator.js delete mode 100644 dist/validators/cms.validator.js delete mode 100644 dist/validators/destination-stack.validator.js delete mode 100644 dist/validators/file-format.validator.js delete mode 100644 dist/validators/index.js delete mode 100644 dist/validators/initialize-upload.validator.js delete mode 100644 dist/validators/project.validator.js delete mode 100644 dist/validators/upload.validator.js delete mode 100644 production.env rename ui/{example.env => example.env } (100%) diff --git a/.DS_Store b/.DS_Store deleted file mode 100644 index 0d2e7d96907eabe7aab631bf8d70961ad14f44c7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6148 zcmeH~J5Iwu5QhIrf)oTuDJgvdOWeRjPC-FKE%w<1ke4&(0EL$2CG| zM%w-NF|&_P@~#(vOkY-Kzy!dUNmaDaW7^!?HHgj!R0(4&u)z&d+~KKbpugCpYd^*# z7ASDf{Ac|&s*AENmSw%94*?A})bul0*vcWUFvB@=TvAg!VAY9u??epAWs9QiC2##+ zuk&qH)|Jjmx;VizqYH3dSmTx}HO_nMl#kAMthzY?C*TB}fD_me&|8HzJ~H*(2{-{K zup^-7L&Bt*MQu#O(ZMV{0jMK32V+^^5*m|4&7wA@?4gN;QY}>C6GJSV?Md{@qBf=$ z4vCKsi8FscUL?%U@sr>V$xJqK z@7BHT>0O&JT{EevU!w&Y%dMXPR`eV>4V~7XXqkRl)W%dt(e@Bd^&f!%#4{)G3k1FZ D<1t5w diff --git a/api/src/services/projects.service.ts b/api/src/services/projects.service.ts index 32207d97..dcdb98f4 100644 --- a/api/src/services/projects.service.ts +++ b/api/src/services/projects.service.ts @@ -491,7 +491,7 @@ const updateDestinationStack = async (req: Request) => { throw new BadRequestError(HTTP_TEXTS.CANNOT_UPDATE_DESTINATION_STACK); } - if (project.current_step > STEPPER_STEPS.DESTINATION_STACK) { + if (project.current_step > STEPPER_STEPS.LEGACY_CMS) { await contentMapperService.resetAllContentTypesMapping(projectId); logger.info( getLogMessage( @@ -501,7 +501,6 @@ const updateDestinationStack = async (req: Request) => { ) ); } - try { const [err, res] = await safePromise( https({ diff --git a/development.env b/development.env deleted file mode 100644 index 51964d3a..00000000 --- a/development.env +++ /dev/null @@ -1,3 +0,0 @@ -APP_TOKEN_KEY=MIGRATION_V2 -PORT=5000 -MONGODB_URI=mongodb://localhost:27017/?readPreference=primary&appname=MongoDB%20Compass&directConnection=true&ssl=false \ No newline at end of file diff --git a/dist/config/dev.config.js b/dist/config/dev.config.js deleted file mode 100644 index 11dce040..00000000 --- a/dist/config/dev.config.js +++ /dev/null @@ -1,10 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.devConfig = void 0; -exports.devConfig = { - CS_API: { - NA: "https://stag-api.csnonprod.com/v3", - EU: "https://stag-eu-api.csnonprod.com/v3", - AZURE_NA: "https://stag-azure-na-api.csnonprod.com/v3", - }, -}; diff --git a/dist/config/index.js b/dist/config/index.js deleted file mode 100644 index ed920ec6..00000000 --- a/dist/config/index.js +++ /dev/null @@ -1,25 +0,0 @@ -"use strict"; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.config = void 0; -const dotenv_1 = __importDefault(require("dotenv")); -const path_1 = __importDefault(require("path")); -const prod_config_1 = require("./prod.config"); -dotenv_1.default.config({ - path: path_1.default.resolve(process.cwd(), `${process.env.NODE_ENV}.env`), -}); -exports.config = { - APP_TOKEN_EXP: "1d", - PORT: process.env.PORT, - APP_ENV: process.env.NODE_ENV, - APP_TOKEN_KEY: process.env.APP_TOKEN_KEY, - FILE_UPLOAD_KEY: process.env.FILE_UPLOAD_KEY, - MIGRATION_KEY: process.env.MIGRATION_KEY, - MONGODB_URI: process.env.MONGODB_URI, - AWS_REGION: process.env.AWS_REGION, - UPLOAD_BUCKET: process.env.UPLOAD_BUCKET, - UPLOAD_URL_EXPIRES: 60 * 30, - ...(process.env.NODE_ENV === "production" ? prod_config_1.prodConfig : prod_config_1.prodConfig), -}; diff --git a/dist/config/prod.config.js b/dist/config/prod.config.js deleted file mode 100644 index 0d77aac3..00000000 --- a/dist/config/prod.config.js +++ /dev/null @@ -1,11 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.prodConfig = void 0; -exports.prodConfig = { - CS_API: { - NA: "https://api.contentstack.io/v3", - EU: "https://eu-api.contentstack.com/v3", - AZURE_NA: "https://azure-na-api.contentstack.com/v3", - AZURE_EU: "https://azure-eu-api.contentstack.com/v3", - }, -}; diff --git a/dist/constants/index.js b/dist/constants/index.js deleted file mode 100644 index 4af4e79b..00000000 --- a/dist/constants/index.js +++ /dev/null @@ -1,76 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.EXCLUDE_CONTENT_MAPPER = exports.PROJECT_UNSELECTED_FIELDS = exports.CONTENT_TYPE_POPULATE_FIELDS = exports.POPULATE_FIELD_MAPPING = exports.POPULATE_CONTENT_MAPPER = exports.VALIDATION_ERRORS = exports.METHODS_TO_INCLUDE_DATA_IN_AXIOS = exports.HTTP_RESPONSE_HEADERS = exports.HTTP_TEXTS = exports.HTTP_CODES = exports.AXIOS_TIMEOUT = exports.MODULES_ACTIONS = exports.MODULES = exports.CS_REGIONS = void 0; -exports.CS_REGIONS = ["NA", "EU", "AZURE_NA", "AZURE_EU"]; -exports.MODULES = [ - "Project", - "Migration", - "Content Mapping", - "Legacy CMS", - "Destination Stack", -]; -exports.MODULES_ACTIONS = ["Create", "Update", "Delete"]; -exports.AXIOS_TIMEOUT = 60 * 1000; -exports.HTTP_CODES = { - OK: 200, - FORBIDDEN: 403, - BAD_REQUEST: 400, - NOT_FOUND: 404, - UNAUTHORIZED: 401, - TOO_MANY_REQS: 429, - SOMETHING_WRONG: 501, - MOVED_PERMANENTLY: 301, - SUPPORT_DOC: 294, - SERVER_ERROR: 500, - UNPROCESSABLE_CONTENT: 422, -}; -exports.HTTP_TEXTS = { - UNAUTHORIZED: "You're unauthorized to access this resource.", - INTERNAL_ERROR: "Internal server error, please try again later.", - SOMETHING_WENT_WRONG: "Something went wrong while processing your request, please try again.", - NO_CS_USER: "No user found with the credentials", - SUCCESS_LOGIN: "Login Successful.", - TOKEN_ERROR: "Error occurred during token generation.", - LOGIN_ERROR: "Error occurred during login", - ROUTE_ERROR: "Sorry, the requested resource is not available.", - PROJECT_NOT_FOUND: "Sorry, the requested project does not exists.", - NO_PROJECT: "resource not found with the given ID(s).", - MIGRATION_CREATED: "Project's migration created successfully.", - MIGRATION_UPDATED: "Project's migration updated successfully.", - CMS_UPDATED: "Project's migration cms updated successfully", - FILE_FORMAT_UPDATED: "Project's migration file format updated successfully", - DESTINATION_STACK_UPDATED: "Project's migration destination stack updated successfully", - DESTINATION_STACK_NOT_FOUND: "Destination stack does not exist", - DESTINATION_STACK_ERROR: "Error occurred during verifying destination stack", - MIGRATION_DELETED: "Project's migration deleted successfully.", - INVALID_ID: "Provided $ ID is invalid.", - MIGRATION_EXISTS: "Project's migration already exists.", - CONTENT_TYPE_NOT_FOUND: "ContentType does not exist", - INVALID_CONTENT_TYPE: "Provide valid ContentType data", - RESET_CONTENT_MAPPING: "ContentType has been successfully restored to its initial mapping", - UPLOAD_SUCCESS: "File uploaded successfully", -}; -exports.HTTP_RESPONSE_HEADERS = { - "Access-Control-Allow-Origin": "*", - "Content-Type": "application/json", - Connection: "close", -}; -exports.METHODS_TO_INCLUDE_DATA_IN_AXIOS = [ - "PUT", - "POST", - "DELETE", - "PATCH", -]; -exports.VALIDATION_ERRORS = { - INVALID_EMAIL: "Given email ID is invalid.", - EMAIL_LIMIT: "Email's max limit reached.", - LENGTH_LIMIT: "$'s max limit reached.", - STRING_REQUIRED: "Provided $ should be a string.", - INVALID_REGION: "Provided region doesn't exists.", - FIELD_REQUIRED: "Field '$' is required.", -}; -exports.POPULATE_CONTENT_MAPPER = "content_mapper"; -exports.POPULATE_FIELD_MAPPING = "fieldMapping"; -exports.CONTENT_TYPE_POPULATE_FIELDS = "otherCmsTitle otherCmsUid isUpdated updateAt contentstackTitle contentstackUid"; -exports.PROJECT_UNSELECTED_FIELDS = "-content_mapper -legacy_cms -destination_stack_id -execution_log"; -exports.EXCLUDE_CONTENT_MAPPER = "-content_mapper -execution_log"; diff --git a/dist/controllers/auth.controller.js b/dist/controllers/auth.controller.js deleted file mode 100644 index 3057303f..00000000 --- a/dist/controllers/auth.controller.js +++ /dev/null @@ -1,16 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.authController = void 0; -const auth_service_1 = require("../services/auth.service"); -const login = async (req, res) => { - const resp = await auth_service_1.authService.login(req); - res.status(resp?.status).json(resp?.data); -}; -const RequestSms = async (req, res) => { - const resp = await auth_service_1.authService.requestSms(req); - res.status(resp.status).json(resp.data); -}; -exports.authController = { - login, - RequestSms, -}; diff --git a/dist/controllers/org.controller.js b/dist/controllers/org.controller.js deleted file mode 100644 index a750f27d..00000000 --- a/dist/controllers/org.controller.js +++ /dev/null @@ -1,21 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.orgController = void 0; -const org_service_1 = require("../services/org.service"); -const getAllStacks = async (req, res) => { - const resp = await org_service_1.orgService.getAllStacks(req); - res.status(resp?.status).json(resp?.data); -}; -const createStack = async (req, res) => { - const resp = await org_service_1.orgService.createStack(req); - res.status(resp.status).json(resp.data); -}; -const getLocales = async (req, res) => { - const resp = await org_service_1.orgService.getLocales(req); - res.status(resp.status).json(resp.data); -}; -exports.orgController = { - getAllStacks, - createStack, - getLocales, -}; diff --git a/dist/controllers/projects.contentMapper.controller.js b/dist/controllers/projects.contentMapper.controller.js deleted file mode 100644 index 4d98d3c2..00000000 --- a/dist/controllers/projects.contentMapper.controller.js +++ /dev/null @@ -1,42 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.contentMapperController = void 0; -const contentMapper_service_1 = require("../services/contentMapper.service"); -const putTestData = async (req, res) => { - const resp = await contentMapper_service_1.contentMapperService.putTestData(req); - res.status(200).json(resp); -}; -const getContentTypes = async (req, res) => { - const resp = await contentMapper_service_1.contentMapperService.getContentTypes(req); - res.status(200).json(resp); -}; -const getFieldMapping = async (req, res) => { - const resp = await contentMapper_service_1.contentMapperService.getFieldMapping(req); - res.status(200).json(resp); -}; -const getExistingContentTypes = async (req, res) => { - const resp = await contentMapper_service_1.contentMapperService.getExistingContentTypes(req); - res.status(201).json(resp); -}; -const putContentTypeFields = async (req, res) => { - const resp = await contentMapper_service_1.contentMapperService.updateContentType(req); - res.status(200).json(resp); -}; -const resetContentType = async (req, res) => { - const resp = await contentMapper_service_1.contentMapperService.resetToInitialMapping(req); - res.status(200).json(resp); -}; -// TODO Will remove if not required -// const removeMapping = async (req: Request, res: Response): Promise => { -// const resp = await contentMapperService.removeMapping(req); -// res.status(200).json(resp); -// }; -exports.contentMapperController = { - getContentTypes, - getFieldMapping, - getExistingContentTypes, - putTestData, - putContentTypeFields, - resetContentType, - // removeMapping, -}; diff --git a/dist/controllers/projects.controller.js b/dist/controllers/projects.controller.js deleted file mode 100644 index eedc9b6d..00000000 --- a/dist/controllers/projects.controller.js +++ /dev/null @@ -1,51 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.projectController = void 0; -const projects_service_1 = require("../services/projects.service"); -const getAllProjects = async (req, res) => { - const allProjects = await projects_service_1.projectService.getAllProjects(req); - res.status(200).json(allProjects); -}; -const getProject = async (req, res) => { - const project = await projects_service_1.projectService.getProject(req); - res.status(200).json(project); -}; -const getProjectAllDetails = async (req, res) => { - const project = await projects_service_1.projectService.getProjectAllDetails(req); - res.status(200).json(project); -}; -const createProject = async (req, res) => { - const project = await projects_service_1.projectService.createProject(req); - res.status(201).json(project); -}; -const updateProject = async (req, res) => { - const project = await projects_service_1.projectService.updateProject(req); - res.status(200).json(project); -}; -const updateLegacyCMS = async (req, res) => { - const resp = await projects_service_1.projectService.updateLegacyCMS(req); - res.status(resp.status).json(resp.data); -}; -const updateFileFormat = async (req, res) => { - const resp = await projects_service_1.projectService.updateFileFormat(req); - res.status(resp.status).json(resp.data); -}; -const updateDestinationStack = async (req, res) => { - const resp = await projects_service_1.projectService.updateDestinationStack(req); - res.status(resp.status).json(resp.data); -}; -const deleteProject = async (req, res) => { - const project = await projects_service_1.projectService.deleteProject(req); - res.status(200).json(project); -}; -exports.projectController = { - getAllProjects, - getProject, - getProjectAllDetails, - createProject, - updateProject, - updateLegacyCMS, - updateFileFormat, - updateDestinationStack, - deleteProject, -}; diff --git a/dist/controllers/projects.uploads.controller.js b/dist/controllers/projects.uploads.controller.js deleted file mode 100644 index 3600dd77..00000000 --- a/dist/controllers/projects.uploads.controller.js +++ /dev/null @@ -1,21 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.uploadController = void 0; -const projects_uploads_service_1 = require("../services/projects.uploads.service"); -const initializeUpload = async (req, res) => { - const resp = await projects_uploads_service_1.uploadsService.initializeUpload(req); - res.status(resp.status).json(resp.data); -}; -const getPreSignedUrls = async (req, res) => { - const resp = await projects_uploads_service_1.uploadsService.getPreSignedUrls(req); - res.status(resp.status).json(resp.data); -}; -const finalizeUpload = async (req, res) => { - const resp = await projects_uploads_service_1.uploadsService.finalizeUpload(req); - res.status(resp.status).json(resp.data); -}; -exports.uploadController = { - initializeUpload, - getPreSignedUrls, - finalizeUpload, -}; diff --git a/dist/controllers/user.controller.js b/dist/controllers/user.controller.js deleted file mode 100644 index d39770dc..00000000 --- a/dist/controllers/user.controller.js +++ /dev/null @@ -1,12 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.userController = void 0; -const user_service_1 = require("../services/user.service"); -const constants_1 = require("../constants"); -const getUserProfile = async (req, res) => { - const user = await user_service_1.userService.getUserProfile(req); - res.status(constants_1.HTTP_CODES.OK).json(user); -}; -exports.userController = { - getUserProfile, -}; diff --git a/dist/database.js b/dist/database.js deleted file mode 100644 index 4213b9f1..00000000 --- a/dist/database.js +++ /dev/null @@ -1,33 +0,0 @@ -"use strict"; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -// database.ts -const mongoose_1 = __importDefault(require("mongoose")); -const config_1 = require("./config"); -const logger_1 = __importDefault(require("./utils/logger")); -const project_1 = __importDefault(require("./models/project")); -const authentication_1 = __importDefault(require("./models/authentication")); -const auditLog_1 = __importDefault(require("./models/auditLog")); -const contentTypesMapper_1 = __importDefault(require("./models/contentTypesMapper")); -const FieldMapper_1 = __importDefault(require("./models/FieldMapper")); -const connectToDatabase = async () => { - try { - await mongoose_1.default.connect(config_1.config.MONGODB_URI, { - ...(config_1.config.APP_ENV === "production" ? { autoIndex: false } : {}), - }); - logger_1.default.info("Connected to MongoDB"); - // Create the collection's if it doesn't exist - await project_1.default.init(); - await authentication_1.default.init(); - await auditLog_1.default.init(); - await contentTypesMapper_1.default.init(); - await FieldMapper_1.default.init(); - } - catch (error) { - logger_1.default.error("Error while connecting to MongoDB:", error); - process.exit(1); - } -}; -exports.default = connectToDatabase; diff --git a/dist/middlewares/auth.middleware.js b/dist/middlewares/auth.middleware.js deleted file mode 100644 index be72e23c..00000000 --- a/dist/middlewares/auth.middleware.js +++ /dev/null @@ -1,27 +0,0 @@ -"use strict"; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.authenticateUser = void 0; -const jsonwebtoken_1 = __importDefault(require("jsonwebtoken")); -const config_1 = require("../config"); -const constants_1 = require("../constants"); -const authenticateUser = (req, res, next) => { - const status = constants_1.HTTP_CODES.UNAUTHORIZED; - const token = req.get("app_token"); - if (!token) - return res - .status(status) - .json({ status, message: "Unauthorized - Token missing" }); - jsonwebtoken_1.default.verify(token, config_1.config.APP_TOKEN_KEY, (err, payload) => { - if (err) - return res - .status(status) - .json({ status, message: "Unauthorized - Invalid token" }); - // Attach the payload to the request object for later use - req.body.token_payload = payload; - next(); - }); -}; -exports.authenticateUser = authenticateUser; diff --git a/dist/middlewares/auth.migration.middleware.js b/dist/middlewares/auth.migration.middleware.js deleted file mode 100644 index c6d9c07c..00000000 --- a/dist/middlewares/auth.migration.middleware.js +++ /dev/null @@ -1,15 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.authenticateMigrationService = void 0; -const constants_1 = require("../constants"); -const config_1 = require("../config"); -const authenticateMigrationService = (req, res, next) => { - const status = constants_1.HTTP_CODES.UNAUTHORIZED; - const secret_key = req.get("secret_key"); - if (secret_key !== config_1.config.MIGRATION_KEY) - return res - .status(status) - .json({ status, message: "Unauthorized - Please provide a valid key" }); - next(); -}; -exports.authenticateMigrationService = authenticateMigrationService; diff --git a/dist/middlewares/auth.uploadService.middleware.js b/dist/middlewares/auth.uploadService.middleware.js deleted file mode 100644 index 5039334e..00000000 --- a/dist/middlewares/auth.uploadService.middleware.js +++ /dev/null @@ -1,15 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.authenticateUploadService = void 0; -const constants_1 = require("../constants"); -const config_1 = require("../config"); -const authenticateUploadService = (req, res, next) => { - const status = constants_1.HTTP_CODES.UNAUTHORIZED; - const secret_key = req.get("secret_key"); - if (secret_key !== config_1.config.FILE_UPLOAD_KEY) - return res - .status(status) - .json({ status, message: "Unauthorized - Please provide a valid key" }); - next(); -}; -exports.authenticateUploadService = authenticateUploadService; diff --git a/dist/middlewares/error.middleware.js b/dist/middlewares/error.middleware.js deleted file mode 100644 index 03a4dd8f..00000000 --- a/dist/middlewares/error.middleware.js +++ /dev/null @@ -1,25 +0,0 @@ -"use strict"; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.errorMiddleware = void 0; -const custom_errors_utils_1 = require("../utils/custom-errors.utils"); -const logger_1 = __importDefault(require("../utils/logger")); -const errorMiddleware = (err, req, res, -// eslint-disable-next-line @typescript-eslint/no-unused-vars -next) => { - if (err instanceof custom_errors_utils_1.AppError) { - res - .status(err.statusCode) - .json({ error: { code: err.statusCode, message: err.message } }); - } - else { - // Log the error - logger_1.default.error(err.stack); - res - .status(500) - .json({ error: { code: 500, message: "Internal Server Error" } }); - } -}; -exports.errorMiddleware = errorMiddleware; diff --git a/dist/middlewares/logger.middleware.js b/dist/middlewares/logger.middleware.js deleted file mode 100644 index 5abe424d..00000000 --- a/dist/middlewares/logger.middleware.js +++ /dev/null @@ -1,22 +0,0 @@ -"use strict"; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -const express_winston_1 = __importDefault(require("express-winston")); -const logger_1 = __importDefault(require("../utils/logger")); -//Logger Middleware to log every request -const loggerMiddleware = express_winston_1.default.logger({ - level: "info", - colorize: true, - winstonInstance: logger_1.default, - headerBlacklist: [ - "app_token", - "access_token", - "authorization", - "secret_key", - "secret", - ], - metaField: null, -}); -exports.default = loggerMiddleware; diff --git a/dist/middlewares/req-headers.middleware.js b/dist/middlewares/req-headers.middleware.js deleted file mode 100644 index b1f8e4b7..00000000 --- a/dist/middlewares/req-headers.middleware.js +++ /dev/null @@ -1,13 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.requestHeadersMiddleware = void 0; -const requestHeadersMiddleware = (req, res, next) => { - res.header("Access-Control-Allow-Origin", "*"); - res.header("Access-Control-Allow-Headers", "Origin, Content-Type, Accept, app_token"); - if (req.method === "OPTIONS") { - res.header("Access-Control-Allow-Methods", "GET, POST, PUT, DELETE"); - return res.status(200).json({}); - } - next(); -}; -exports.requestHeadersMiddleware = requestHeadersMiddleware; diff --git a/dist/middlewares/unmatched-routes.middleware.js b/dist/middlewares/unmatched-routes.middleware.js deleted file mode 100644 index 9908ea54..00000000 --- a/dist/middlewares/unmatched-routes.middleware.js +++ /dev/null @@ -1,11 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.unmatchedRoutesMiddleware = void 0; -const constants_1 = require("../constants"); -const unmatchedRoutesMiddleware = (req, res) => { - const status = constants_1.HTTP_CODES.NOT_FOUND; - res.status(status).json({ - error: { code: status, message: constants_1.HTTP_TEXTS.ROUTE_ERROR }, - }); -}; -exports.unmatchedRoutesMiddleware = unmatchedRoutesMiddleware; diff --git a/dist/models/FieldMapper.js b/dist/models/FieldMapper.js deleted file mode 100644 index 3433dc32..00000000 --- a/dist/models/FieldMapper.js +++ /dev/null @@ -1,19 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -const mongoose_1 = require("mongoose"); -const fieldMapperSchema = new mongoose_1.Schema({ - uid: { type: String, required: true }, - otherCmsField: { type: String, required: true }, - otherCmsType: { type: String, required: true }, - contentstackField: { type: String }, - contentstackFieldUid: { type: String }, - ContentstackFieldType: { type: String, required: true }, - isDeleted: { type: Boolean, default: false }, - backupFieldType: { type: String }, - refrenceTo: { - uid: { type: String }, - title: { type: String }, - }, -}); -const FieldMapperModel = (0, mongoose_1.model)("FieldMapping", fieldMapperSchema); -exports.default = FieldMapperModel; diff --git a/dist/models/auditLog.js b/dist/models/auditLog.js deleted file mode 100644 index aefe2456..00000000 --- a/dist/models/auditLog.js +++ /dev/null @@ -1,29 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -const constants_1 = require("../constants"); -const mongoose_1 = require("mongoose"); -const auditLogSchema = new mongoose_1.Schema({ - project_id: { - type: mongoose_1.Schema.Types.ObjectId, - ref: "Project", - }, - actions: { - type: [ - { - date: { type: Date, required: true }, - user_id: { type: String, required: true }, - user_first_name: { type: String, required: true }, - user_last_name: { type: String, required: true }, - module: { type: String, required: true, enum: constants_1.MODULES }, - action: { - type: String, - required: true, - enum: constants_1.MODULES_ACTIONS, - }, - }, - ], - required: true, - }, -}); -const AuditLogModel = (0, mongoose_1.model)("AuditLog", auditLogSchema); -exports.default = AuditLogModel; diff --git a/dist/models/authentication.js b/dist/models/authentication.js deleted file mode 100644 index d11b487c..00000000 --- a/dist/models/authentication.js +++ /dev/null @@ -1,12 +0,0 @@ -"use strict"; -// src/models/Authentication.ts -Object.defineProperty(exports, "__esModule", { value: true }); -const mongoose_1 = require("mongoose"); -const constants_1 = require("../constants"); -const authenticationSchema = new mongoose_1.Schema({ - user_id: { type: String, required: true }, - region: { type: String, required: true, enum: constants_1.CS_REGIONS }, - authtoken: { type: String, required: true }, -}, { timestamps: { createdAt: "created_at", updatedAt: "updated_at" } }); -const AuthenticationModel = (0, mongoose_1.model)("Authentication", authenticationSchema); -exports.default = AuthenticationModel; diff --git a/dist/models/contentTypesMapper.js b/dist/models/contentTypesMapper.js deleted file mode 100644 index 1d1f8795..00000000 --- a/dist/models/contentTypesMapper.js +++ /dev/null @@ -1,14 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -const mongoose_1 = require("mongoose"); -const contentTypesMapperSchema = new mongoose_1.Schema({ - otherCmsTitle: { type: String, required: true }, - otherCmsUid: { type: String, required: true }, - isUpdated: { type: Boolean, default: false }, - updateAt: { type: Date }, - contentstackTitle: { type: String }, - contentstackUid: { type: String }, - fieldMapping: [{ type: mongoose_1.Schema.Types.ObjectId, ref: "FieldMapping" }], -}); -const ContentTypesMapperModel = (0, mongoose_1.model)("ContentTypes Mapper", contentTypesMapperSchema); -exports.default = ContentTypesMapperModel; diff --git a/dist/models/project.js b/dist/models/project.js deleted file mode 100644 index 54ffc26c..00000000 --- a/dist/models/project.js +++ /dev/null @@ -1,32 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -const mongoose_1 = require("mongoose"); -const constants_1 = require("../constants"); -const projectSchema = new mongoose_1.Schema({ - region: { type: String, required: true, enum: constants_1.CS_REGIONS }, - org_id: { type: String, required: true }, - owner: { type: String, required: true }, - created_by: { type: String, required: true }, - updated_by: { type: String }, - former_owner_ids: [{ type: String }], - name: { type: String, required: true }, - description: { type: String, required: true }, - status: { type: Boolean, default: true }, - destination_stack_id: { type: String }, - legacy_cms: { - cms: { type: String }, - file_format: { type: String }, - import_data: { type: String }, - }, - content_mapper: [ - { type: mongoose_1.Schema.Types.ObjectId, ref: "ContentTypes Mapper" }, - ], - execution_log: [ - { - log_url: { type: String }, - date: { type: Date }, - }, - ], -}, { timestamps: { createdAt: "created_at", updatedAt: "updated_at" } }); -const ProjectModel = (0, mongoose_1.model)("Project", projectSchema); -exports.default = ProjectModel; diff --git a/dist/models/types.js b/dist/models/types.js deleted file mode 100644 index c8ad2e54..00000000 --- a/dist/models/types.js +++ /dev/null @@ -1,2 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); diff --git a/dist/routes/auth.routes.js b/dist/routes/auth.routes.js deleted file mode 100644 index ad78639a..00000000 --- a/dist/routes/auth.routes.js +++ /dev/null @@ -1,15 +0,0 @@ -"use strict"; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -const express_1 = __importDefault(require("express")); -const auth_controller_1 = require("../controllers/auth.controller"); -const async_router_utils_1 = require("../utils/async-router.utils"); -const validators_1 = __importDefault(require("../validators")); -const router = express_1.default.Router(); -// Login route -router.post("/user-session", (0, validators_1.default)("auth"), (0, async_router_utils_1.asyncRouter)(auth_controller_1.authController.login)); -// SMS token route -router.post("/request-token-sms", (0, validators_1.default)("auth"), (0, async_router_utils_1.asyncRouter)(auth_controller_1.authController.RequestSms)); -exports.default = router; diff --git a/dist/routes/contentMapper.routes.js b/dist/routes/contentMapper.routes.js deleted file mode 100644 index 9ac65c31..00000000 --- a/dist/routes/contentMapper.routes.js +++ /dev/null @@ -1,22 +0,0 @@ -"use strict"; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -const express_1 = __importDefault(require("express")); -const projects_contentMapper_controller_1 = require("../controllers/projects.contentMapper.controller"); -const async_router_utils_1 = require("../utils/async-router.utils"); -const router = express_1.default.Router({ mergeParams: true }); -//Developer End Point to create dummy data -router.post("/createDummyData/:projectId", (0, async_router_utils_1.asyncRouter)(projects_contentMapper_controller_1.contentMapperController.putTestData)); -//Get ContentTypes List -router.get("/contentTypes/:projectId/:skip/:limit/:searchText?", (0, async_router_utils_1.asyncRouter)(projects_contentMapper_controller_1.contentMapperController.getContentTypes)); -//Get FieldMapping List -router.get("/fieldMapping/:contentTypeId/:skip/:limit/:searchText?", (0, async_router_utils_1.asyncRouter)(projects_contentMapper_controller_1.contentMapperController.getFieldMapping)); -//Get Existing ContentTypes List -router.get("/:projectId", (0, async_router_utils_1.asyncRouter)(projects_contentMapper_controller_1.contentMapperController.getExistingContentTypes)); -//Update FieldMapping or contentType -router.put("/contentTypes/:contentTypeId", (0, async_router_utils_1.asyncRouter)(projects_contentMapper_controller_1.contentMapperController.putContentTypeFields)); -//Reset FieldMapping or contentType -router.put("/resetFields/:contentTypeId", (0, async_router_utils_1.asyncRouter)(projects_contentMapper_controller_1.contentMapperController.resetContentType)); -exports.default = router; diff --git a/dist/routes/migrationMidlleware.routes.js b/dist/routes/migrationMidlleware.routes.js deleted file mode 100644 index 240e2678..00000000 --- a/dist/routes/migrationMidlleware.routes.js +++ /dev/null @@ -1,14 +0,0 @@ -"use strict"; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -const express_1 = __importDefault(require("express")); -const projects_controller_1 = require("../controllers/projects.controller"); -const async_router_utils_1 = require("../utils/async-router.utils"); -const router = express_1.default.Router({ mergeParams: true }); -// GET Project Details -router.get("project/:projectId", (0, async_router_utils_1.asyncRouter)(projects_controller_1.projectController.getProjectAllDetails)); -// Update a project route -// router.put("/:projectId", asyncRouter(projectController.updateProject)); -exports.default = router; diff --git a/dist/routes/org.routes.js b/dist/routes/org.routes.js deleted file mode 100644 index 1b60a187..00000000 --- a/dist/routes/org.routes.js +++ /dev/null @@ -1,17 +0,0 @@ -"use strict"; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -const express_1 = __importDefault(require("express")); -const org_controller_1 = require("../controllers/org.controller"); -const async_router_utils_1 = require("../utils/async-router.utils"); -const validators_1 = __importDefault(require("../validators")); -const router = express_1.default.Router({ mergeParams: true }); -// GET all org stacks route -router.get("/stacks", (0, async_router_utils_1.asyncRouter)(org_controller_1.orgController.getAllStacks)); -// Create a new stack route -router.post("/stacks", (0, validators_1.default)("project"), (0, async_router_utils_1.asyncRouter)(org_controller_1.orgController.createStack)); -// GET all contentstack locales route -router.get("/locales", (0, async_router_utils_1.asyncRouter)(org_controller_1.orgController.getLocales)); -exports.default = router; diff --git a/dist/routes/projects.routes.js b/dist/routes/projects.routes.js deleted file mode 100644 index def10a90..00000000 --- a/dist/routes/projects.routes.js +++ /dev/null @@ -1,30 +0,0 @@ -"use strict"; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -const express_1 = __importDefault(require("express")); -const projects_controller_1 = require("../controllers/projects.controller"); -const async_router_utils_1 = require("../utils/async-router.utils"); -const validators_1 = __importDefault(require("../validators")); -const projects_uploads_routes_1 = __importDefault(require("./projects.uploads.routes")); -const router = express_1.default.Router({ mergeParams: true }); -// GET all projects route -router.get("/", (0, async_router_utils_1.asyncRouter)(projects_controller_1.projectController.getAllProjects)); -// GET a single project route -router.get("/:projectId", (0, async_router_utils_1.asyncRouter)(projects_controller_1.projectController.getProject)); -// Create a new project route -router.post("/", (0, async_router_utils_1.asyncRouter)(projects_controller_1.projectController.createProject)); -// Update a project route -router.put("/:projectId", (0, async_router_utils_1.asyncRouter)(projects_controller_1.projectController.updateProject)); -// Update project's legacy-cms -router.put("/:projectId/legacy-cms", (0, validators_1.default)("cms"), (0, async_router_utils_1.asyncRouter)(projects_controller_1.projectController.updateLegacyCMS)); -// Update project's file format -router.put("/:projectId/file-format", (0, validators_1.default)("file_format"), (0, async_router_utils_1.asyncRouter)(projects_controller_1.projectController.updateFileFormat)); -// Update project's destination-cms -router.put("/:projectId/destination-stack", (0, validators_1.default)("destination_stack"), (0, async_router_utils_1.asyncRouter)(projects_controller_1.projectController.updateDestinationStack)); -// Delete a project route -router.delete("/:projectId", (0, async_router_utils_1.asyncRouter)(projects_controller_1.projectController.deleteProject)); -// Multipart upload route -router.use("/:projectId/uploads", projects_uploads_routes_1.default); -exports.default = router; diff --git a/dist/routes/projects.uploads.routes.js b/dist/routes/projects.uploads.routes.js deleted file mode 100644 index a3cceb96..00000000 --- a/dist/routes/projects.uploads.routes.js +++ /dev/null @@ -1,17 +0,0 @@ -"use strict"; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -const express_1 = __importDefault(require("express")); -const projects_uploads_controller_1 = require("../controllers/projects.uploads.controller"); -const async_router_utils_1 = require("../utils/async-router.utils"); -const validators_1 = __importDefault(require("../validators")); -const router = express_1.default.Router({ mergeParams: true }); -// Initialize multipart upload -router.post("/initialize", (0, validators_1.default)("initialize_upload"), (0, async_router_utils_1.asyncRouter)(projects_uploads_controller_1.uploadController.initializeUpload)); -// GET pre-signed urls -router.post("/pre-signed-urls", (0, validators_1.default)("file_upload"), (0, async_router_utils_1.asyncRouter)(projects_uploads_controller_1.uploadController.getPreSignedUrls)); -// Finalize multipart upload -router.post("/finalize", (0, validators_1.default)("file_upload"), (0, async_router_utils_1.asyncRouter)(projects_uploads_controller_1.uploadController.finalizeUpload)); -exports.default = router; diff --git a/dist/routes/uploadService.routes.js b/dist/routes/uploadService.routes.js deleted file mode 100644 index dd0532f2..00000000 --- a/dist/routes/uploadService.routes.js +++ /dev/null @@ -1,17 +0,0 @@ -"use strict"; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -const express_1 = __importDefault(require("express")); -const projects_controller_1 = require("../controllers/projects.controller"); -const async_router_utils_1 = require("../utils/async-router.utils"); -const projects_contentMapper_controller_1 = require("../controllers/projects.contentMapper.controller"); -const router = express_1.default.Router({ mergeParams: true }); -//TODO Will update -// Upload project's file -router.put("/:projectId/file-path", (0, async_router_utils_1.asyncRouter)(projects_controller_1.projectController.updateFileFormat)); -//TODO Will update -//Add Initial ContentMapper -router.post("/initialMapper/:projectId", (0, async_router_utils_1.asyncRouter)(projects_contentMapper_controller_1.contentMapperController.putTestData)); -exports.default = router; diff --git a/dist/routes/user.routes.js b/dist/routes/user.routes.js deleted file mode 100644 index ec9c0075..00000000 --- a/dist/routes/user.routes.js +++ /dev/null @@ -1,12 +0,0 @@ -"use strict"; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -const express_1 = __importDefault(require("express")); -const user_controller_1 = require("../controllers/user.controller"); -const async_router_utils_1 = require("../utils/async-router.utils"); -const router = express_1.default.Router(); -// Profile route -router.get("/profile", (0, async_router_utils_1.asyncRouter)(user_controller_1.userController.getUserProfile)); -exports.default = router; diff --git a/dist/server.js b/dist/server.js deleted file mode 100644 index b81ff94f..00000000 --- a/dist/server.js +++ /dev/null @@ -1,58 +0,0 @@ -"use strict"; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -// file deepcode ignore UseCsurfForExpress: We've app_token for all the API calls, so we don't need CSRF token. -const config_1 = require("./config"); -const express_1 = __importDefault(require("express")); -const cors_1 = __importDefault(require("cors")); -const helmet_1 = __importDefault(require("helmet")); -const auth_routes_1 = __importDefault(require("./routes/auth.routes")); -const user_routes_1 = __importDefault(require("./routes/user.routes")); -const projects_routes_1 = __importDefault(require("./routes/projects.routes")); -const org_routes_1 = __importDefault(require("./routes/org.routes")); -const error_middleware_1 = require("./middlewares/error.middleware"); -const logger_middleware_1 = __importDefault(require("./middlewares/logger.middleware")); -const database_1 = __importDefault(require("./database")); -const auth_middleware_1 = require("./middlewares/auth.middleware"); -const req_headers_middleware_1 = require("./middlewares/req-headers.middleware"); -const unmatched_routes_middleware_1 = require("./middlewares/unmatched-routes.middleware"); -const logger_1 = __importDefault(require("./utils/logger")); -const contentMapper_routes_1 = __importDefault(require("./routes/contentMapper.routes")); -const migrationMidlleware_routes_1 = __importDefault(require("./routes/migrationMidlleware.routes")); -const uploadService_routes_1 = __importDefault(require("./routes/uploadService.routes")); -const auth_migration_middleware_1 = require("./middlewares/auth.migration.middleware"); -const auth_uploadService_middleware_1 = require("./middlewares/auth.uploadService.middleware"); -try { - const app = (0, express_1.default)(); - app.use((0, helmet_1.default)({ - crossOriginOpenerPolicy: false, - })); - app.use((0, cors_1.default)({ origin: "*" })); - app.use(express_1.default.urlencoded({ extended: false, limit: "10mb" })); - app.use(express_1.default.json({ limit: "10mb" })); - app.use(logger_middleware_1.default); - app.use(req_headers_middleware_1.requestHeadersMiddleware); - // Routes - app.use("/v2/auth", auth_routes_1.default); - app.use("/v2/user", auth_middleware_1.authenticateUser, user_routes_1.default); - app.use("/v2/org/:orgId", auth_middleware_1.authenticateUser, org_routes_1.default); - app.use("/v2/org/:orgId/project", auth_middleware_1.authenticateUser, projects_routes_1.default); - app.use("/v2/mapper", auth_middleware_1.authenticateUser, contentMapper_routes_1.default); - app.use("/v2/migrationMiddleware", auth_migration_middleware_1.authenticateMigrationService, migrationMidlleware_routes_1.default); - app.use("/v2/uploadService", auth_uploadService_middleware_1.authenticateUploadService, uploadService_routes_1.default); - //For unmatched route patterns - app.use(unmatched_routes_middleware_1.unmatchedRoutesMiddleware); - // Error Middleware - app.use(error_middleware_1.errorMiddleware); - // starting the server & DB connection. - (async () => { - await (0, database_1.default)(); - app.listen(config_1.config.PORT, () => logger_1.default.info(`Server listening at port ${config_1.config.PORT}`)); - })(); -} -catch (e) { - logger_1.default.error("Error while starting the server!"); - logger_1.default.error(e); -} diff --git a/dist/services/auth.service.js b/dist/services/auth.service.js deleted file mode 100644 index 2e127e09..00000000 --- a/dist/services/auth.service.js +++ /dev/null @@ -1,92 +0,0 @@ -"use strict"; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.authService = void 0; -const config_1 = require("../config"); -const index_1 = require("../utils/index"); -const https_utils_1 = __importDefault(require("../utils/https.utils")); -const constants_1 = require("../constants"); -const jwt_utils_1 = require("../utils/jwt.utils"); -const custom_errors_utils_1 = require("../utils/custom-errors.utils"); -const authentication_1 = __importDefault(require("../models/authentication")); -const login = async (req) => { - const userData = req?.body; - const [err, res] = await (0, index_1.safePromise)((0, https_utils_1.default)({ - method: "POST", - url: `${config_1.config.CS_API[userData?.region]}/user-session`, - headers: { - "Content-Type": "application/json", - }, - data: { - user: { - email: userData?.email, - password: userData?.password, - ...(userData?.tfa_token && { tfa_token: userData?.tfa_token }), - }, - }, - })); - if (err) - return { - data: err?.response?.data, - status: err?.response?.status, - }; - if (res?.status === constants_1.HTTP_CODES.SUPPORT_DOC) - return { - data: res?.data, - status: res?.status, - }; - if (!res?.data?.user) - throw new custom_errors_utils_1.BadRequestError(constants_1.HTTP_TEXTS.NO_CS_USER); - const appTokenPayload = { - region: userData?.region, - user_id: res?.data?.user.uid, - }; - // Saving auth info in the DB - await authentication_1.default.findOneAndUpdate(appTokenPayload, { - authtoken: res?.data.user?.authtoken, - }, { - upsert: true, - }); - // JWT token generation - const app_token = (0, jwt_utils_1.generateToken)(appTokenPayload); - return { - data: { - message: constants_1.HTTP_TEXTS.SUCCESS_LOGIN, - app_token, - }, - status: constants_1.HTTP_CODES.OK, - }; -}; -const requestSms = async (req) => { - const userData = req?.body; - try { - const [err, res] = await (0, index_1.safePromise)((0, https_utils_1.default)({ - method: "POST", - url: `${config_1.config.CS_API[userData?.region]}/user/request_token_sms`, - data: { - user: { - email: userData?.email, - password: userData?.password, - }, - }, - })); - if (err) - return { - data: err.response.data, - status: err.response.status, - }; - return { - data: res.data, - status: res.status, - }; - } - catch (error) { - throw new custom_errors_utils_1.InternalServerError(constants_1.HTTP_TEXTS.INTERNAL_ERROR); - } -}; -exports.authService = { - login, - requestSms, -}; diff --git a/dist/services/contentMapper.service.js b/dist/services/contentMapper.service.js deleted file mode 100644 index c39fd57d..00000000 --- a/dist/services/contentMapper.service.js +++ /dev/null @@ -1,281 +0,0 @@ -"use strict"; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.contentMapperService = void 0; -const contentTypesMapper_1 = __importDefault(require("../models/contentTypesMapper")); -const FieldMapper_1 = __importDefault(require("../models/FieldMapper")); -const project_1 = __importDefault(require("../models/project")); -const utils_1 = require("../utils"); -const custom_errors_utils_1 = require("../utils/custom-errors.utils"); -const constants_1 = require("../constants"); -const logger_1 = __importDefault(require("../utils/logger")); -const config_1 = require("../config"); -const https_utils_1 = __importDefault(require("../utils/https.utils")); -const auth_utils_1 = __importDefault(require("../utils/auth.utils")); -// Developer service to create dummy contentmapping data -const putTestData = async (req) => { - const projectId = req.params.projectId; - const contentTypes = req.body; - // console.log(contentTypes) - await Promise.all(contentTypes.map(async (type, index) => { - await FieldMapper_1.default.insertMany(type.fieldMapping, { - ordered: true, - }) - .then(function (docs) { - // do something with docs - contentTypes[index].fieldMapping = docs.map((item) => { - return item._id; - }); - }) - .catch(function () { - // console.log("type.fieldMapping") - // console.log(err) - // error handling here - }); - })); - let typeIds = []; - await contentTypesMapper_1.default.insertMany(contentTypes, { - ordered: true, - }) - .then(async function (docs) { - // do something with docs - typeIds = docs.map((item) => { - return item._id; - }); - }) - .catch(function () { - // console.log(err) - // error handling here - }); - const projectDetails = await project_1.default.findOne({ - _id: projectId, - }); - projectDetails.content_mapper = typeIds; - projectDetails.save(); - //Add logic to get Project from DB - return projectDetails; -}; -const getContentTypes = async (req) => { - const sourceFn = "getContentTypes"; - const projectId = req?.params?.projectId; - const skip = req?.params?.skip; - const limit = req?.params?.limit; - const search = req?.params?.searchText?.toLowerCase(); - let result = []; - let totalCount = 0; - const projectDetails = await project_1.default.findOne({ - _id: projectId, - }).populate({ - path: constants_1.POPULATE_CONTENT_MAPPER, - select: constants_1.CONTENT_TYPE_POPULATE_FIELDS, - }); - if ((0, utils_1.isEmpty)(projectDetails)) { - logger_1.default.error((0, utils_1.getLogMessage)(sourceFn, `${constants_1.HTTP_TEXTS.PROJECT_NOT_FOUND} projectId: ${projectId}`)); - throw new custom_errors_utils_1.BadRequestError(constants_1.HTTP_TEXTS.PROJECT_NOT_FOUND); - } - const { content_mapper } = projectDetails; - if (!(0, utils_1.isEmpty)(content_mapper)) { - if (search) { - const filteredResult = content_mapper - .filter((item) => item?.otherCmsTitle?.toLowerCase().includes(search)) - ?.sort((a, b) => a.otherCmsTitle.localeCompare(b.otherCmsTitle)); - totalCount = filteredResult.length; - result = filteredResult.slice(skip, Number(skip) + Number(limit)); - } - else { - totalCount = content_mapper.length; - result = content_mapper - ?.sort((a, b) => a.otherCmsTitle.localeCompare(b.otherCmsTitle)) - ?.slice(skip, Number(skip) + Number(limit)); - } - } - return { count: totalCount, contentTypes: result }; -}; -const getFieldMapping = async (req) => { - const srcFunc = "getFieldMapping"; - const contentTypeId = req?.params?.contentTypeId; - const skip = req?.params?.skip; - const limit = req?.params?.limit; - const search = req?.params?.searchText?.toLowerCase(); - let result = []; - let filteredResult = []; - let totalCount = 0; - const contentType = await contentTypesMapper_1.default.findOne({ - _id: contentTypeId, - }).populate("fieldMapping"); - if ((0, utils_1.isEmpty)(contentType)) { - logger_1.default.error((0, utils_1.getLogMessage)(srcFunc, `${constants_1.HTTP_TEXTS.CONTENT_TYPE_NOT_FOUND} Id: ${contentTypeId}`)); - throw new custom_errors_utils_1.BadRequestError(constants_1.HTTP_TEXTS.CONTENT_TYPE_NOT_FOUND); - } - const { fieldMapping } = contentType; - if (!(0, utils_1.isEmpty)(fieldMapping)) { - if (search) { - filteredResult = fieldMapping.filter((item) => item?.otherCmsField?.toLowerCase().includes(search)); - totalCount = filteredResult.length; - result = filteredResult.slice(skip, Number(skip) + Number(limit)); - } - else { - totalCount = fieldMapping.length; - result = fieldMapping.slice(skip, Number(skip) + Number(limit)); - } - } - return { count: totalCount, fieldMapping: result }; -}; -const getExistingContentTypes = async (req) => { - const projectId = req?.params?.projectId; - const { token_payload } = req.body; - const authtoken = await (0, auth_utils_1.default)(token_payload?.region, token_payload?.user_id); - const project = await project_1.default.findById(projectId); - const stackId = project?.destination_stack_id; - const [err, res] = await (0, utils_1.safePromise)((0, https_utils_1.default)({ - method: "GET", - url: `${config_1.config.CS_API[token_payload?.region]}/content_types`, - headers: { - api_key: stackId, - authtoken: authtoken, - }, - })); - if (err) - return { - data: err.response.data, - status: err.response.status, - }; - const contentTypes = res.data.content_types.map((singleCT) => { - return { - title: singleCT.title, - uid: singleCT.uid, - schema: singleCT.schema, - }; - }); - //Add logic to get Project from DB - return { contentTypes }; -}; -const updateContentType = async (req) => { - const srcFun = "udateContentType"; - const contentTypeId = req?.params?.contentTypeId; - const contentTypeData = req?.body; - const { fieldMapping } = contentTypeData; - let updatedContentType = {}; - if ((0, utils_1.isEmpty)(contentTypeData)) { - logger_1.default.error((0, utils_1.getLogMessage)(srcFun, `${constants_1.HTTP_TEXTS.CONTENT_TYPE_NOT_FOUND} Id: ${contentTypeId}`)); - throw new custom_errors_utils_1.BadRequestError(constants_1.HTTP_TEXTS.INVALID_CONTENT_TYPE); - } - try { - updatedContentType = await contentTypesMapper_1.default.findOneAndUpdate({ - _id: contentTypeId, - }, { - otherCmsTitle: contentTypeData?.otherCmsTitle, - otherCmsUid: contentTypeData?.otherCmsUid, - isUpdated: contentTypeData?.isUpdated, - updateAt: contentTypeData?.updateAt, - contentstackTitle: contentTypeData?.contentstackTitle, - contentstackUid: contentTypeData?.contentstackUid, - }, { new: true, upsert: true, setDefaultsOnInsert: true }); - if (!(0, utils_1.isEmpty)(fieldMapping)) { - const bulkWriteOperations = fieldMapping?.map((doc) => ({ - replaceOne: { - filter: { _id: doc._id }, - replacement: doc, - upsert: true, - }, - })); - await FieldMapper_1.default.bulkWrite(bulkWriteOperations, { ordered: false }); - } - return { updatedContentType }; - } - catch (error) { - logger_1.default.error((0, utils_1.getLogMessage)(srcFun, `Error while updating ContentType Id: ${contentTypeId}`, error)); - throw new custom_errors_utils_1.ExceptionFunction(error?.message || constants_1.HTTP_TEXTS.INTERNAL_ERROR, error?.status || constants_1.HTTP_CODES.SERVER_ERROR); - } -}; -const resetToInitialMapping = async (req) => { - const srcFunc = "resetToInitialMapping"; - const contentTypeId = req?.params?.contentTypeId; - const contentType = await contentTypesMapper_1.default.findOne({ - _id: contentTypeId, - }).populate(constants_1.POPULATE_FIELD_MAPPING); - if ((0, utils_1.isEmpty)(contentType)) { - logger_1.default.error((0, utils_1.getLogMessage)(srcFunc, `${constants_1.HTTP_TEXTS.CONTENT_TYPE_NOT_FOUND} Id: ${contentTypeId}`)); - throw new custom_errors_utils_1.BadRequestError(constants_1.HTTP_TEXTS.INVALID_CONTENT_TYPE); - } - try { - if (!(0, utils_1.isEmpty)(contentType?.fieldMapping)) { - const bulkWriteOperations = contentType?.fieldMapping?.map((doc) => ({ - updateOne: { - filter: { _id: doc._id }, - update: { - $set: { - contentstackField: "", - contentstackFieldUid: "", - ContentstackFieldType: doc.backupFieldType, - }, - }, - }, - })); - await FieldMapper_1.default.bulkWrite(bulkWriteOperations, { ordered: false }); - } - contentType.contentstackTitle = ""; - contentType.contentstackUid = ""; - contentType?.save(); - return { message: constants_1.HTTP_TEXTS.RESET_CONTENT_MAPPING }; - } - catch (error) { - logger_1.default.error((0, utils_1.getLogMessage)(srcFunc, `Error occurred while resetting the field mapping for the ContentType ID: ${contentTypeId}`, {}, error)); - throw new custom_errors_utils_1.ExceptionFunction(error?.message || constants_1.HTTP_TEXTS.INTERNAL_ERROR, error?.status || error.statusCode || constants_1.HTTP_CODES.SERVER_ERROR); - } -}; -const removeMapping = async (req) => { - const srcFunc = "removeMapping"; - const projectId = req?.params?.projectId; - const projectDetails = await project_1.default.findOne({ - _id: projectId, - }).populate({ - path: constants_1.POPULATE_CONTENT_MAPPER, - populate: { path: constants_1.POPULATE_FIELD_MAPPING }, - }); - if ((0, utils_1.isEmpty)(projectDetails)) { - logger_1.default.error((0, utils_1.getLogMessage)(srcFunc, `${constants_1.HTTP_TEXTS.PROJECT_NOT_FOUND} projectId: ${projectId}`)); - throw new custom_errors_utils_1.BadRequestError(constants_1.HTTP_TEXTS.PROJECT_NOT_FOUND); - } - try { - const contentTypes = projectDetails?.content_mapper; - const contentTypesbulkWriteOperations = await Promise.all(contentTypes?.map(async (contentType) => { - if (!(0, utils_1.isEmpty)(contentType?.fieldMapping)) { - const bulkWriteOperations = contentType?.fieldMapping?.map((doc) => ({ - deleteOne: { - filter: { _id: doc._id }, - }, - })); - await FieldMapper_1.default.bulkWrite(bulkWriteOperations, { - ordered: false, - }); - } - return { - deleteOne: { - filter: { _id: contentType._id }, - }, - }; - })); - await contentTypesMapper_1.default.bulkWrite(contentTypesbulkWriteOperations, { - ordered: false, - }); - projectDetails.content_mapper = []; - await projectDetails?.save(); - return projectDetails; - } - catch (error) { - logger_1.default.error((0, utils_1.getLogMessage)(srcFunc, `Error occurred while removing the content mapping for the Project [Id: ${projectId}]`, {}, error)); - throw new custom_errors_utils_1.ExceptionFunction(error?.message || constants_1.HTTP_TEXTS.INTERNAL_ERROR, error?.statusCode || error?.status || constants_1.HTTP_CODES.SERVER_ERROR); - } -}; -exports.contentMapperService = { - putTestData, - getContentTypes, - getFieldMapping, - getExistingContentTypes, - updateContentType, - resetToInitialMapping, - removeMapping, -}; diff --git a/dist/services/org.service.js b/dist/services/org.service.js deleted file mode 100644 index 39a76296..00000000 --- a/dist/services/org.service.js +++ /dev/null @@ -1,91 +0,0 @@ -"use strict"; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.orgService = void 0; -const config_1 = require("../config"); -const index_1 = require("../utils/index"); -const https_utils_1 = __importDefault(require("../utils/https.utils")); -const auth_utils_1 = __importDefault(require("../utils/auth.utils")); -const getAllStacks = async (req) => { - const orgId = req?.params?.orgId; - const { token_payload } = req.body; - const authtoken = await (0, auth_utils_1.default)(token_payload?.region, token_payload?.user_id); - const [err, res] = await (0, index_1.safePromise)((0, https_utils_1.default)({ - method: "GET", - url: `${config_1.config.CS_API[token_payload?.region]}/stacks`, - headers: { - organization_uid: orgId, - authtoken, - }, - })); - if (err) - return { - data: err.response.data, - status: err.response.status, - }; - return { - data: { - stacks: res.data.stacks?.map((stack) => ({ - name: stack.name, - api_key: stack.api_key, - })) || [], - }, - status: res.status, - }; -}; -const createStack = async (req) => { - const orgId = req?.params?.orgId; - const { token_payload, name, description, master_locale } = req.body; - const authtoken = await (0, auth_utils_1.default)(token_payload?.region, token_payload?.user_id); - const [err, res] = await (0, index_1.safePromise)((0, https_utils_1.default)({ - method: "POST", - url: `${config_1.config.CS_API[token_payload?.region]}/stacks`, - headers: { - organization_uid: orgId, - authtoken, - }, - data: { - stack: { - name, - description, - master_locale, - }, - }, - })); - if (err) - return { - data: err.response.data, - status: err.response.status, - }; - return { - data: res.data, - status: res.status, - }; -}; -const getLocales = async (req) => { - const { token_payload } = req.body; - const authtoken = await (0, auth_utils_1.default)(token_payload?.region, token_payload?.user_id); - const [err, res] = await (0, index_1.safePromise)((0, https_utils_1.default)({ - method: "GET", - url: `${config_1.config.CS_API[token_payload?.region]}/locales?include_all=true`, - headers: { - authtoken, - }, - })); - if (err) - return { - data: err.response.data, - status: err.response.status, - }; - return { - data: res.data, - status: res.status, - }; -}; -exports.orgService = { - getAllStacks, - getLocales, - createStack, -}; diff --git a/dist/services/projects.service.js b/dist/services/projects.service.js deleted file mode 100644 index fdcb21c5..00000000 --- a/dist/services/projects.service.js +++ /dev/null @@ -1,211 +0,0 @@ -"use strict"; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.projectService = void 0; -const project_1 = __importDefault(require("../models/project")); -const custom_errors_utils_1 = require("../utils/custom-errors.utils"); -const constants_1 = require("../constants"); -const config_1 = require("../config"); -const utils_1 = require("../utils"); -const auth_utils_1 = __importDefault(require("../utils/auth.utils")); -const https_utils_1 = __importDefault(require("../utils/https.utils")); -const get_project_utils_1 = __importDefault(require("../utils/get-project.utils")); -const logger_1 = __importDefault(require("../utils/logger")); -const getAllProjects = async (req) => { - const orgId = req?.params?.orgId; - const decodedToken = req.body.token_payload; - const { user_id = "", region = "" } = decodedToken; - const project = await project_1.default.find({ - org_id: orgId, - region, - owner: user_id, - }).select(constants_1.PROJECT_UNSELECTED_FIELDS); - if (!project) - throw new custom_errors_utils_1.NotFoundError(constants_1.HTTP_TEXTS.PROJECT_NOT_FOUND); - return project; -}; -const getProject = async (req) => { - const orgId = req?.params?.orgId; - const projectId = req?.params?.projectId; - const decodedToken = req.body.token_payload; - const { user_id = "", region = "" } = decodedToken; - // Find the project based on both orgId and projectId, region, owner - const project = await (0, get_project_utils_1.default)(projectId, { - _id: projectId, - org_id: orgId, - region: region, - owner: user_id, - }, constants_1.EXCLUDE_CONTENT_MAPPER); - return project; -}; -const getProjectAllDetails = async (req) => { - const projectId = req?.params?.projectId; - const srcFunc = "getProjectAllDetails"; - // Find the project - const project = await project_1.default.findOne({ - _id: projectId, - }).populate({ - path: constants_1.POPULATE_CONTENT_MAPPER, - populate: { path: constants_1.POPULATE_FIELD_MAPPING }, - }); - if ((0, utils_1.isEmpty)(project)) { - logger_1.default.error((0, utils_1.getLogMessage)(srcFunc, `${constants_1.HTTP_TEXTS.PROJECT_NOT_FOUND} projectId: ${projectId}`)); - throw new custom_errors_utils_1.BadRequestError(constants_1.HTTP_TEXTS.PROJECT_NOT_FOUND); - } - return project; -}; -const createProject = async (req) => { - const orgId = req?.params?.orgId; - const { name, description } = req.body; - const decodedToken = req.body.token_payload; - const { user_id = "", region = "" } = decodedToken; - const projectData = { - region, - org_id: orgId, - owner: user_id, - created_by: user_id, - name, - description, - }; - //Add logic to create Project from DB - const project = await project_1.default.create(projectData); - if (!project) - throw new custom_errors_utils_1.NotFoundError(constants_1.HTTP_TEXTS.PROJECT_NOT_FOUND); - return { - status: "success", - message: "Project created successfully", - project: { - name: project.name, - id: project.id, - status: project.status, - created_at: project.created_at, - modified_at: project.updated_at, - // Add other properties as needed - }, - }; -}; -const updateProject = async (req) => { - const orgId = req?.params?.orgId; - const projectId = req?.params?.projectId; - const updateData = req?.body; - const decodedToken = req.body.token_payload; - const { user_id = "", region = "" } = decodedToken; - // Find the project based on both orgId and projectId - const project = await (0, get_project_utils_1.default)(projectId, { - _id: projectId, - org_id: orgId, - region: region, - owner: user_id, - }, constants_1.EXCLUDE_CONTENT_MAPPER); - // Update the project fields - project.name = updateData?.name || project.name; - project.description = updateData?.description || project.description; - project.updated_by = user_id; - // Save the updated project - const updatedProject = await project.save(); - return { - status: "success", - message: "Project updated successfully", - project: { - name: updatedProject?.name, - description: updatedProject?.description, - id: updatedProject?.id, - status: updatedProject?.status, - created_at: updatedProject?.created_at, - modified_at: updatedProject?.updated_at, - // Add other properties as needed - }, - }; -}; -const updateLegacyCMS = async (req) => { - const { orgId, projectId } = req.params; - const { token_payload, legacy_cms } = req.body; - const project = await (0, get_project_utils_1.default)(projectId, { - _id: projectId, - org_id: orgId, - region: token_payload?.region, - owner: token_payload?.user_id, - }, constants_1.EXCLUDE_CONTENT_MAPPER); - project.legacy_cms.cms = legacy_cms; - await project.save(); - return { - status: constants_1.HTTP_CODES.OK, - data: { - message: constants_1.HTTP_TEXTS.CMS_UPDATED, - }, - }; -}; -const updateFileFormat = async (req) => { - const { orgId, projectId } = req.params; - const { token_payload, file_format } = req.body; - const project = await (0, get_project_utils_1.default)(projectId, { - _id: projectId, - org_id: orgId, - region: token_payload?.region, - owner: token_payload?.user_id, - }, constants_1.EXCLUDE_CONTENT_MAPPER); - project.legacy_cms.file_format = file_format; - await project.save(); - return { - status: constants_1.HTTP_CODES.OK, - data: { - message: constants_1.HTTP_TEXTS.FILE_FORMAT_UPDATED, - }, - }; -}; -const updateDestinationStack = async (req) => { - const { orgId, projectId } = req.params; - const { token_payload, stack_api_key } = req.body; - const project = await (0, get_project_utils_1.default)(projectId, { - _id: projectId, - org_id: orgId, - region: token_payload?.region, - owner: token_payload?.user_id, - }, constants_1.EXCLUDE_CONTENT_MAPPER); - const authtoken = await (0, auth_utils_1.default)(token_payload?.region, token_payload?.user_id); - const [err, res] = await (0, utils_1.safePromise)((0, https_utils_1.default)({ - method: "GET", - url: `${config_1.config.CS_API[token_payload?.region]}/stacks`, - headers: { - organization_uid: orgId, - authtoken, - }, - })); - if (err) - return { - data: { - message: constants_1.HTTP_TEXTS.DESTINATION_STACK_ERROR, - }, - status: err.response.status, - }; - if (!res.data.stacks.find((stack) => stack.api_key === stack_api_key)) - throw new custom_errors_utils_1.BadRequestError(constants_1.HTTP_TEXTS.DESTINATION_STACK_NOT_FOUND); - project.destination_stack_id = stack_api_key; - // project.migration.modules.destination_cms.org_id = orgId; - await project.save(); - return { - status: constants_1.HTTP_CODES.OK, - data: { - message: constants_1.HTTP_TEXTS.DESTINATION_STACK_UPDATED, - }, - }; -}; -const deleteProject = async (req) => { - const orgId = req?.params?.orgId; - const projectId = req?.params?.projectId; - //Add logic to delete Project from DB - return { orgId, projectId }; -}; -exports.projectService = { - getAllProjects, - getProject, - getProjectAllDetails, - createProject, - updateProject, - updateLegacyCMS, - updateFileFormat, - updateDestinationStack, - deleteProject, -}; diff --git a/dist/services/projects.uploads.service.js b/dist/services/projects.uploads.service.js deleted file mode 100644 index e581ff06..00000000 --- a/dist/services/projects.uploads.service.js +++ /dev/null @@ -1,73 +0,0 @@ -"use strict"; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.uploadsService = void 0; -const constants_1 = require("../constants"); -const s3_uploads_utils_1 = require("../utils/s3-uploads.utils"); -const get_project_utils_1 = __importDefault(require("../utils/get-project.utils")); -const initializeUpload = async (req) => { - const orgId = req?.params?.orgId; - const projectId = req?.params?.projectId; - const fileName = req.body.file_name; - const { user_id = "", region = "" } = req.body.token_payload; - // Find the project based on both orgId and projectId, region, owner - await (0, get_project_utils_1.default)(projectId, { - _id: projectId, - org_id: orgId, - region: region, - owner: user_id, - }, constants_1.EXCLUDE_CONTENT_MAPPER); - const result = await (0, s3_uploads_utils_1.initialize)(region, orgId, user_id, projectId, fileName); - return { - status: constants_1.HTTP_CODES.OK, - data: { - file_id: result.UploadId, - file_key: result.Key, - }, - }; -}; -const getPreSignedUrls = async (req) => { - const orgId = req?.params?.orgId; - const projectId = req?.params?.projectId; - const { file_key, file_id, parts } = req.body; - const { user_id = "", region = "" } = req.body.token_payload; - // Find the project based on both orgId and projectId, region, owner - await (0, get_project_utils_1.default)(projectId, { - _id: projectId, - org_id: orgId, - region: region, - owner: user_id, - }, constants_1.EXCLUDE_CONTENT_MAPPER); - const result = await (0, s3_uploads_utils_1.preSignedUrls)(file_key, file_id, parts); - return { - status: constants_1.HTTP_CODES.OK, - data: { parts: result }, - }; -}; -const finalizeUpload = async (req) => { - const orgId = req?.params?.orgId; - const projectId = req?.params?.projectId; - const { file_key, file_id, parts } = req.body; - const { user_id = "", region = "" } = req.body.token_payload; - // Find the project based on both orgId and projectId, region, owner - await (0, get_project_utils_1.default)(projectId, { - _id: projectId, - org_id: orgId, - region: region, - owner: user_id, - }, constants_1.EXCLUDE_CONTENT_MAPPER); - await (0, s3_uploads_utils_1.finalize)(file_key, file_id, parts); - return { - status: constants_1.HTTP_CODES.OK, - data: { - message: constants_1.HTTP_TEXTS.UPLOAD_SUCCESS, - }, - }; -}; -exports.uploadsService = { - initializeUpload, - getPreSignedUrls, - finalizeUpload, -}; diff --git a/dist/services/user.service.js b/dist/services/user.service.js deleted file mode 100644 index 9c8210f1..00000000 --- a/dist/services/user.service.js +++ /dev/null @@ -1,44 +0,0 @@ -"use strict"; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.userService = void 0; -const config_1 = require("../config"); -const https_utils_1 = __importDefault(require("../utils/https.utils")); -const constants_1 = require("../constants"); -const custom_errors_utils_1 = require("../utils/custom-errors.utils"); -const authentication_1 = __importDefault(require("../models/authentication")); -const getUserProfile = async (req) => { - const appTokenPayload = req?.body?.token_payload; - const user = await authentication_1.default.findOne({ - user_id: appTokenPayload?.user_id, - region: appTokenPayload?.region, - }).lean(); - if (!user?.authtoken) - throw new custom_errors_utils_1.BadRequestError(constants_1.HTTP_TEXTS.NO_CS_USER); - const res = await (0, https_utils_1.default)({ - method: "GET", - url: `${config_1.config.CS_API[appTokenPayload?.region]}/user?include_orgs_roles=true`, - headers: { - "Content-Type": "application/json", - authtoken: user?.authtoken, - }, - }); - if (!res?.data?.user) - throw new custom_errors_utils_1.BadRequestError(constants_1.HTTP_TEXTS.NO_CS_USER); - const orgs = (res?.data?.user?.organizations || []) - ?.filter((org) => org?.org_roles?.some((item) => item.admin)) - ?.map(({ uid, name }) => ({ org_id: uid, org_name: name })); - return { - user: { - email: res?.data?.user?.email, - first_name: res?.data?.user?.first_name, - last_name: res?.data?.user?.last_name, - orgs: orgs, - }, - }; -}; -exports.userService = { - getUserProfile, -}; diff --git a/dist/utils/async-router.utils.js b/dist/utils/async-router.utils.js deleted file mode 100644 index 556e0547..00000000 --- a/dist/utils/async-router.utils.js +++ /dev/null @@ -1,7 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.asyncRouter = void 0; -const asyncRouter = (fn) => (req, res, next) => { - Promise.resolve(fn(req, res, next)).catch(next); -}; -exports.asyncRouter = asyncRouter; diff --git a/dist/utils/auth.utils.js b/dist/utils/auth.utils.js deleted file mode 100644 index 7f857d5e..00000000 --- a/dist/utils/auth.utils.js +++ /dev/null @@ -1,16 +0,0 @@ -"use strict"; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -const authentication_1 = __importDefault(require("../models/authentication")); -const custom_errors_utils_1 = require("../utils/custom-errors.utils"); -exports.default = async (region, userId) => { - const res = await authentication_1.default.findOne({ - region: region, - user_id: userId, - }).lean(); - if (!res?.authtoken) - throw new custom_errors_utils_1.UnauthorizedError(); - return res?.authtoken; -}; diff --git a/dist/utils/custom-errors.utils.js b/dist/utils/custom-errors.utils.js deleted file mode 100644 index 33dea07d..00000000 --- a/dist/utils/custom-errors.utils.js +++ /dev/null @@ -1,56 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.ExceptionFunction = exports.UnauthorizedError = exports.InternalServerError = exports.ValidationError = exports.DatabaseError = exports.BadRequestError = exports.NotFoundError = exports.AppError = void 0; -const constants_1 = require("../constants"); -class AppError extends Error { - statusCode; - constructor(statusCode, message) { - super(message); - this.statusCode = statusCode; - Object.setPrototypeOf(this, AppError.prototype); - } -} -exports.AppError = AppError; -class NotFoundError extends AppError { - constructor(message = "Not Found") { - super(constants_1.HTTP_CODES.NOT_FOUND, message); - } -} -exports.NotFoundError = NotFoundError; -class BadRequestError extends AppError { - constructor(message = "Bad Request") { - super(constants_1.HTTP_CODES.BAD_REQUEST, message); - } -} -exports.BadRequestError = BadRequestError; -class DatabaseError extends AppError { - constructor(message = "DB error") { - super(constants_1.HTTP_CODES.SERVER_ERROR, message); - } -} -exports.DatabaseError = DatabaseError; -class ValidationError extends AppError { - constructor(message = "User validation error") { - super(constants_1.HTTP_CODES.UNPROCESSABLE_CONTENT, message); - } -} -exports.ValidationError = ValidationError; -class InternalServerError extends AppError { - constructor(message = constants_1.HTTP_TEXTS.INTERNAL_ERROR) { - super(constants_1.HTTP_CODES.SERVER_ERROR, message); - } -} -exports.InternalServerError = InternalServerError; -class UnauthorizedError extends AppError { - constructor(message = constants_1.HTTP_TEXTS.UNAUTHORIZED) { - super(constants_1.HTTP_CODES.UNAUTHORIZED, message); - } -} -exports.UnauthorizedError = UnauthorizedError; -class ExceptionFunction extends AppError { - constructor(message, httpStatus) { - super(httpStatus, message); - } -} -exports.ExceptionFunction = ExceptionFunction; -// Add more custom error classes as needed diff --git a/dist/utils/get-project.utils.js b/dist/utils/get-project.utils.js deleted file mode 100644 index 72676312..00000000 --- a/dist/utils/get-project.utils.js +++ /dev/null @@ -1,22 +0,0 @@ -"use strict"; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -const project_1 = __importDefault(require("../models/project")); -const custom_errors_utils_1 = require("../utils/custom-errors.utils"); -const constants_1 = require("../constants"); -const utils_1 = require("../utils"); -exports.default = async (projectId, query, projections = "") => { - try { - if (!(0, utils_1.isValidObjectId)(projectId)) - throw new custom_errors_utils_1.BadRequestError(constants_1.HTTP_TEXTS.INVALID_ID.replace("$", "project")); - const project = await project_1.default.findOne(query).select(projections); - if (!project) - throw new custom_errors_utils_1.NotFoundError(constants_1.HTTP_TEXTS.NO_PROJECT); - return project; - } - catch (err) { - throw new custom_errors_utils_1.DatabaseError(constants_1.HTTP_TEXTS.SOMETHING_WENT_WRONG); - } -}; diff --git a/dist/utils/https.utils.js b/dist/utils/https.utils.js deleted file mode 100644 index fd99d93d..00000000 --- a/dist/utils/https.utils.js +++ /dev/null @@ -1,24 +0,0 @@ -"use strict"; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -const axios_1 = __importDefault(require("axios")); -const constants_1 = require("../constants"); -exports.default = async (obj) => { - const { url, method, headers, data, timeout } = obj; - const res = await (0, axios_1.default)(url, { - method, - headers: headers, - ...(headers && { headers }), - timeout: timeout ?? constants_1.AXIOS_TIMEOUT, - ...(constants_1.METHODS_TO_INCLUDE_DATA_IN_AXIOS.includes(method) && { - data, - }), - }); - return { - headers: res?.headers, - status: res?.status, - data: res?.data, - }; -}; diff --git a/dist/utils/index.js b/dist/utils/index.js deleted file mode 100644 index ea484de8..00000000 --- a/dist/utils/index.js +++ /dev/null @@ -1,32 +0,0 @@ -"use strict"; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.getMongooseID = exports.isValidObjectId = exports.getLogMessage = exports.safePromise = exports.isEmpty = exports.throwError = void 0; -const mongoose_1 = __importDefault(require("mongoose")); -const throwError = (message, statusCode) => { - throw Object.assign(new Error(message), { statusCode }); -}; -exports.throwError = throwError; -const isEmpty = (val) => val === undefined || - val === null || - (typeof val === "object" && !Object.keys(val).length) || - (typeof val === "string" && !val.trim().length); -exports.isEmpty = isEmpty; -const safePromise = (promise) => promise.then((res) => [null, res]).catch((err) => [err]); -exports.safePromise = safePromise; -//Generic method to get log message object -const getLogMessage = (methodName, message, user = {}, error) => { - return { - methodName, - message, - ...(user && { user }), - ...(error && { error }), - }; -}; -exports.getLogMessage = getLogMessage; -const isValidObjectId = (id) => mongoose_1.default.isValidObjectId(id); -exports.isValidObjectId = isValidObjectId; -const getMongooseID = () => new mongoose_1.default.Types.ObjectId(); -exports.getMongooseID = getMongooseID; diff --git a/dist/utils/jwt.utils.js b/dist/utils/jwt.utils.js deleted file mode 100644 index ad9fd6a7..00000000 --- a/dist/utils/jwt.utils.js +++ /dev/null @@ -1,16 +0,0 @@ -"use strict"; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.generateToken = void 0; -/// src/utils/jwt.utils.ts -const jsonwebtoken_1 = __importDefault(require("jsonwebtoken")); -const config_1 = require("../config"); -// @typescript-eslint/no-explicit-any -const generateToken = (payload) => { - return jsonwebtoken_1.default.sign(payload, config_1.config.APP_TOKEN_KEY, { - expiresIn: config_1.config.APP_TOKEN_EXP, - }); -}; -exports.generateToken = generateToken; diff --git a/dist/utils/logger.js b/dist/utils/logger.js deleted file mode 100644 index de765e65..00000000 --- a/dist/utils/logger.js +++ /dev/null @@ -1,18 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -const winston_1 = require("winston"); -//Logger for custom logs -const logger = (0, winston_1.createLogger)({ - level: "info", - format: winston_1.format.combine(winston_1.format.timestamp(), winston_1.format.json()), - transports: [ - // - Write all logs with importance level of `error` or less to `error.log` - new winston_1.transports.File({ filename: "error.log", level: "error" }), - // - Write all logs with importance level of `info` or less to `combined.log` - new winston_1.transports.File({ filename: "combine.log" }), - new winston_1.transports.Console({ - format: winston_1.format.combine(winston_1.format.timestamp(), winston_1.format.prettyPrint()), - }), - ], -}); -exports.default = logger; diff --git a/dist/utils/s3-uploads.utils.js b/dist/utils/s3-uploads.utils.js deleted file mode 100644 index 9188c871..00000000 --- a/dist/utils/s3-uploads.utils.js +++ /dev/null @@ -1,34 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.finalize = exports.preSignedUrls = exports.initialize = void 0; -const client_s3_1 = require("@aws-sdk/client-s3"); -const s3_request_presigner_1 = require("@aws-sdk/s3-request-presigner"); -const config_1 = require("../config"); -const S3 = new client_s3_1.S3Client({ - region: config_1.config.AWS_REGION, - useAccelerateEndpoint: true, -}); -const initialize = async (region, orgId, userId, projectId, fileName) => S3.send(new client_s3_1.CreateMultipartUploadCommand({ - Bucket: config_1.config.UPLOAD_BUCKET, - Key: `${region}/${orgId}_${userId}/${projectId}/${fileName}`, -})); -exports.initialize = initialize; -const preSignedUrls = async (fileKey, fileId, parts) => (await Promise.all(Array.from({ length: parts }, (_, i) => i + 1).map((i) => (0, s3_request_presigner_1.getSignedUrl)(S3, new client_s3_1.UploadPartCommand({ - Bucket: config_1.config.UPLOAD_BUCKET, - Key: fileKey, - UploadId: fileId, - PartNumber: i, -}), { expiresIn: config_1.config.UPLOAD_URL_EXPIRES })))).map((url, i) => ({ - signedUrl: url, - PartNumber: i + 1, -})); -exports.preSignedUrls = preSignedUrls; -const finalize = async (fileKey, fileId, parts) => S3.send(new client_s3_1.CompleteMultipartUploadCommand({ - Bucket: config_1.config.UPLOAD_BUCKET, - Key: fileKey, - UploadId: fileId, - MultipartUpload: { - Parts: [...parts].sort((p1, p2) => p1.PartNumber - p2.PartNumber), - }, -})); -exports.finalize = finalize; diff --git a/dist/validators/auth.validator.js b/dist/validators/auth.validator.js deleted file mode 100644 index df9a7340..00000000 --- a/dist/validators/auth.validator.js +++ /dev/null @@ -1,56 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -const express_validator_1 = require("express-validator"); -const constants_1 = require("../constants"); -exports.default = (0, express_validator_1.checkSchema)({ - email: { - in: "body", - isString: { - errorMessage: constants_1.VALIDATION_ERRORS.STRING_REQUIRED.replace("$", "Email"), - bail: true, - }, - isEmail: { - errorMessage: constants_1.VALIDATION_ERRORS.INVALID_EMAIL, - bail: true, - }, - trim: true, - isLength: { - errorMessage: constants_1.VALIDATION_ERRORS.EMAIL_LIMIT, - options: { - min: 3, - max: 350, - }, - bail: true, - }, - }, - password: { - in: "body", - isString: { - errorMessage: constants_1.VALIDATION_ERRORS.STRING_REQUIRED.replace("$", "Password"), - bail: true, - }, - trim: true, - }, - region: { - in: "body", - isString: { - errorMessage: constants_1.VALIDATION_ERRORS.STRING_REQUIRED.replace("$", "Region"), - bail: true, - }, - trim: true, - isIn: { - options: [constants_1.CS_REGIONS], - errorMessage: constants_1.VALIDATION_ERRORS.INVALID_REGION, - bail: true, - }, - }, - tfa_token: { - optional: true, - in: "body", - isString: { - errorMessage: constants_1.VALIDATION_ERRORS.STRING_REQUIRED.replace("$", "2FA Token"), - bail: true, - }, - trim: true, - }, -}); diff --git a/dist/validators/cms.validator.js b/dist/validators/cms.validator.js deleted file mode 100644 index 00a8e68a..00000000 --- a/dist/validators/cms.validator.js +++ /dev/null @@ -1,22 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -const express_validator_1 = require("express-validator"); -const constants_1 = require("../constants"); -exports.default = (0, express_validator_1.checkSchema)({ - legacy_cms: { - in: "body", - isString: { - errorMessage: constants_1.VALIDATION_ERRORS.STRING_REQUIRED.replace("$", "legacy_cms"), - bail: true, - }, - trim: true, - isLength: { - errorMessage: constants_1.VALIDATION_ERRORS.LENGTH_LIMIT.replace("$", "legacy_cms"), - options: { - min: 1, - max: 200, - }, - bail: true, - }, - }, -}); diff --git a/dist/validators/destination-stack.validator.js b/dist/validators/destination-stack.validator.js deleted file mode 100644 index cc264252..00000000 --- a/dist/validators/destination-stack.validator.js +++ /dev/null @@ -1,22 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -const express_validator_1 = require("express-validator"); -const constants_1 = require("../constants"); -exports.default = (0, express_validator_1.checkSchema)({ - stack_api_key: { - in: "body", - isString: { - errorMessage: constants_1.VALIDATION_ERRORS.STRING_REQUIRED.replace("$", "stack_api_key"), - bail: true, - }, - trim: true, - isLength: { - errorMessage: constants_1.VALIDATION_ERRORS.LENGTH_LIMIT.replace("$", "stack_api_key"), - options: { - min: 1, - max: 100, - }, - bail: true, - }, - }, -}); diff --git a/dist/validators/file-format.validator.js b/dist/validators/file-format.validator.js deleted file mode 100644 index fb528f4e..00000000 --- a/dist/validators/file-format.validator.js +++ /dev/null @@ -1,22 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -const express_validator_1 = require("express-validator"); -const constants_1 = require("../constants"); -exports.default = (0, express_validator_1.checkSchema)({ - file_format: { - in: "body", - isString: { - errorMessage: constants_1.VALIDATION_ERRORS.STRING_REQUIRED.replace("$", "file_format"), - bail: true, - }, - trim: true, - isLength: { - errorMessage: constants_1.VALIDATION_ERRORS.LENGTH_LIMIT.replace("$", "file_format"), - options: { - min: 1, - max: 200, - }, - bail: true, - }, - }, -}); diff --git a/dist/validators/index.js b/dist/validators/index.js deleted file mode 100644 index 7b061963..00000000 --- a/dist/validators/index.js +++ /dev/null @@ -1,32 +0,0 @@ -"use strict"; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -const custom_errors_utils_1 = require("../utils/custom-errors.utils"); -const async_router_utils_1 = require("../utils/async-router.utils"); -const auth_validator_1 = __importDefault(require("./auth.validator")); -const project_validator_1 = __importDefault(require("./project.validator")); -const cms_validator_1 = __importDefault(require("./cms.validator")); -const file_format_validator_1 = __importDefault(require("./file-format.validator")); -const destination_stack_validator_1 = __importDefault(require("./destination-stack.validator")); -const initialize_upload_validator_1 = __importDefault(require("./initialize-upload.validator")); -const upload_validator_1 = __importDefault(require("./upload.validator")); -exports.default = (route = "") => (0, async_router_utils_1.asyncRouter)(async (req, res, next) => { - const appValidators = { - auth: auth_validator_1.default, - project: project_validator_1.default, - cms: cms_validator_1.default, - file_format: file_format_validator_1.default, - destination_stack: destination_stack_validator_1.default, - initialize_upload: initialize_upload_validator_1.default, - file_upload: upload_validator_1.default, - }; - const validator = appValidators[route]; - const result = (await validator.run(req)) - .map((field) => field.array()) - .reduce((acc, val) => [...acc, ...val], []); - if (result.length) - throw new custom_errors_utils_1.ValidationError(result[0].msg); - return next(); -}); diff --git a/dist/validators/initialize-upload.validator.js b/dist/validators/initialize-upload.validator.js deleted file mode 100644 index 6556354e..00000000 --- a/dist/validators/initialize-upload.validator.js +++ /dev/null @@ -1,14 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -const express_validator_1 = require("express-validator"); -const constants_1 = require("../constants"); -exports.default = (0, express_validator_1.checkSchema)({ - file_name: { - in: "body", - isString: { - errorMessage: constants_1.VALIDATION_ERRORS.STRING_REQUIRED.replace("$", "file_name"), - bail: true, - }, - trim: true, - }, -}); diff --git a/dist/validators/project.validator.js b/dist/validators/project.validator.js deleted file mode 100644 index accc0602..00000000 --- a/dist/validators/project.validator.js +++ /dev/null @@ -1,38 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -const express_validator_1 = require("express-validator"); -const constants_1 = require("../constants"); -exports.default = (0, express_validator_1.checkSchema)({ - name: { - in: "body", - isString: { - errorMessage: constants_1.VALIDATION_ERRORS.STRING_REQUIRED.replace("$", "Name"), - bail: true, - }, - trim: true, - isLength: { - errorMessage: constants_1.VALIDATION_ERRORS.LENGTH_LIMIT.replace("$", "Name"), - options: { - min: 1, - max: 200, - }, - bail: true, - }, - }, - description: { - in: "body", - isString: { - errorMessage: constants_1.VALIDATION_ERRORS.STRING_REQUIRED.replace("$", "Description"), - bail: true, - }, - trim: true, - isLength: { - errorMessage: constants_1.VALIDATION_ERRORS.LENGTH_LIMIT.replace("$", "Description"), - options: { - min: 1, - max: 255, - }, - bail: true, - }, - }, -}); diff --git a/dist/validators/upload.validator.js b/dist/validators/upload.validator.js deleted file mode 100644 index 3975fbe6..00000000 --- a/dist/validators/upload.validator.js +++ /dev/null @@ -1,29 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -const express_validator_1 = require("express-validator"); -const constants_1 = require("../constants"); -exports.default = (0, express_validator_1.checkSchema)({ - file_key: { - in: "body", - isString: { - errorMessage: constants_1.VALIDATION_ERRORS.STRING_REQUIRED.replace("$", "file_key"), - bail: true, - }, - trim: true, - }, - file_id: { - in: "body", - isString: { - errorMessage: constants_1.VALIDATION_ERRORS.STRING_REQUIRED.replace("$", "file_id"), - bail: true, - }, - trim: true, - }, - parts: { - in: "body", - exists: { - errorMessage: constants_1.VALIDATION_ERRORS.FIELD_REQUIRED.replace("$", "parts"), - bail: true, - }, - }, -}); diff --git a/production.env b/production.env deleted file mode 100644 index 51964d3a..00000000 --- a/production.env +++ /dev/null @@ -1,3 +0,0 @@ -APP_TOKEN_KEY=MIGRATION_V2 -PORT=5000 -MONGODB_URI=mongodb://localhost:27017/?readPreference=primary&appname=MongoDB%20Compass&directConnection=true&ssl=false \ No newline at end of file diff --git a/ui/example.env b/ui/example.env similarity index 100% rename from ui/example.env rename to ui/example.env