{"version":3,"sources":["../../src/controllers/dictionary.controller.ts"],"sourcesContent":["import {\n  writeContentDeclaration as writeContentDeclarationEditor,\n  type DictionaryStatus,\n} from '@intlayer/chokidar';\nimport { getConfiguration } from '@intlayer/config';\nimport { type Dictionary } from '@intlayer/core';\nimport dictionaries from '@intlayer/dictionaries-entry';\nimport { formatResponse, type ResponseData } from '@utils/responseData';\nimport type { NextFunction, Request, Response } from 'express';\nimport { t } from 'express-intlayer';\n\ntype GetDictionariesResult = ResponseData<Record<string, Dictionary>>;\n\n/**\n * Get the Intlayer configuration\n */\nexport const getDictionaries = async (\n  _req: Request,\n  res: Response<GetDictionariesResult>,\n  _next: NextFunction\n): Promise<void> => {\n  try {\n    const formattedResponse = formatResponse<Record<string, Dictionary>>({\n      data: dictionaries,\n    });\n\n    res.json(formattedResponse);\n    return;\n  } catch (err) {\n    const errorMessage = (err as { message?: string; status?: number }) ?? {\n      message: 'Internal Server Error',\n      status: 500,\n    };\n\n    const formattedErrorResponse = formatResponse<Record<string, Dictionary>>({\n      error: {\n        message: errorMessage.message ?? 'Internal Server Error',\n        code: 'INTERNAL_SERVER_ERROR',\n        title: 'Internal Server Error',\n      },\n      status: errorMessage.status ?? 500,\n    });\n\n    res.json(formattedErrorResponse);\n    return;\n  }\n};\n\nexport type WriteContentDeclarationBody = { dictionary: Dictionary };\ntype WriteContentDeclarationResultData = {\n  status: DictionaryStatus;\n  path: string;\n};\nexport type WriteContentDeclarationResult =\n  ResponseData<WriteContentDeclarationResultData>;\n\n/**\n * Adds a new dictionary to the database.\n */\nexport const writeContentDeclaration = async (\n  req: Request<any, any, WriteContentDeclarationBody>,\n  res: Response<WriteContentDeclarationResult>,\n  _next: NextFunction\n): Promise<void> => {\n  try {\n    const dictionaryData = req.body.dictionary;\n\n    const config = getConfiguration();\n\n    const result = await writeContentDeclarationEditor(dictionaryData, config);\n\n    let description = '';\n\n    switch (result.status) {\n      case 'updated': {\n        description = t({\n          en: 'Content declaration updated successfully',\n          fr: 'Déclaration de contenu mise à jour avec succès',\n          es: 'Declaración de contenido actualizada con éxito',\n        });\n        break;\n      }\n      case 'reimported in JSON': {\n        description = t({\n          en: 'Content declaration reimported in JSON successfully',\n          fr: 'Déclaration de contenu réimportée en JSON avec succès',\n          es: 'Declaración de contenido reimportada en JSON con éxito',\n        });\n        break;\n      }\n      case 'reimported in new location': {\n        description = t({\n          en: 'Content declaration reimported in new location successfully',\n          fr: 'Déclaration de contenu réimportée dans un nouveau emplacement avec succès',\n          es: 'Declaración de contenido reimportada en un nuevo lugar con éxito',\n        });\n        break;\n      }\n      default: {\n        description = t({\n          en: 'Content declaration written successfully',\n          fr: 'Déclaration de contenu écrite avec succès',\n          es: 'Declaración de contenido escrita con éxito',\n        });\n        break;\n      }\n    }\n\n    const formattedResponse = formatResponse<WriteContentDeclarationResultData>(\n      {\n        data: result,\n        message: t({\n          en: 'Content declaration written',\n          fr: 'Déclaration de contenu écrite',\n          es: 'Declaración de contenido escrita',\n        }),\n        description: t({\n          en: 'Content declaration written successfully',\n          fr: 'Déclaration de contenu écrite avec succès',\n          es: 'Declaración de contenido escrita con éxito',\n        }),\n      }\n    );\n\n    res.json(formattedResponse);\n    return;\n  } catch (err) {\n    const errorMessage = (err as { message?: string; status?: number }) ?? {\n      message: 'Internal Server Error',\n      status: 500,\n    };\n\n    console.error(errorMessage);\n\n    const formattedErrorResponse =\n      formatResponse<WriteContentDeclarationResultData>({\n        error: {\n          message: errorMessage.message ?? 'Internal Server Error',\n          code: 'INTERNAL_SERVER_ERROR',\n          title: 'Internal Server Error',\n        },\n        status: errorMessage.status ?? 500,\n      });\n\n    res.json(formattedErrorResponse);\n    return;\n  }\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,sBAGO;AACP,oBAAiC;AAEjC,gCAAyB;AACzB,0BAAkD;AAElD,8BAAkB;AAOX,MAAM,kBAAkB,OAC7B,MACA,KACA,UACkB;AAClB,MAAI;AACF,UAAM,wBAAoB,oCAA2C;AAAA,MACnE,MAAM,0BAAAA;AAAA,IACR,CAAC;AAED,QAAI,KAAK,iBAAiB;AAC1B;AAAA,EACF,SAAS,KAAK;AACZ,UAAM,eAAgB,OAAiD;AAAA,MACrE,SAAS;AAAA,MACT,QAAQ;AAAA,IACV;AAEA,UAAM,6BAAyB,oCAA2C;AAAA,MACxE,OAAO;AAAA,QACL,SAAS,aAAa,WAAW;AAAA,QACjC,MAAM;AAAA,QACN,OAAO;AAAA,MACT;AAAA,MACA,QAAQ,aAAa,UAAU;AAAA,IACjC,CAAC;AAED,QAAI,KAAK,sBAAsB;AAC/B;AAAA,EACF;AACF;AAaO,MAAM,0BAA0B,OACrC,KACA,KACA,UACkB;AAClB,MAAI;AACF,UAAM,iBAAiB,IAAI,KAAK;AAEhC,UAAM,aAAS,gCAAiB;AAEhC,UAAM,SAAS,UAAM,gBAAAC,yBAA8B,gBAAgB,MAAM;AAEzE,QAAI,cAAc;AAElB,YAAQ,OAAO,QAAQ;AAAA,MACrB,KAAK,WAAW;AACd,0BAAc,2BAAE;AAAA,UACd,IAAI;AAAA,UACJ,IAAI;AAAA,UACJ,IAAI;AAAA,QACN,CAAC;AACD;AAAA,MACF;AAAA,MACA,KAAK,sBAAsB;AACzB,0BAAc,2BAAE;AAAA,UACd,IAAI;AAAA,UACJ,IAAI;AAAA,UACJ,IAAI;AAAA,QACN,CAAC;AACD;AAAA,MACF;AAAA,MACA,KAAK,8BAA8B;AACjC,0BAAc,2BAAE;AAAA,UACd,IAAI;AAAA,UACJ,IAAI;AAAA,UACJ,IAAI;AAAA,QACN,CAAC;AACD;AAAA,MACF;AAAA,MACA,SAAS;AACP,0BAAc,2BAAE;AAAA,UACd,IAAI;AAAA,UACJ,IAAI;AAAA,UACJ,IAAI;AAAA,QACN,CAAC;AACD;AAAA,MACF;AAAA,IACF;AAEA,UAAM,wBAAoB;AAAA,MACxB;AAAA,QACE,MAAM;AAAA,QACN,aAAS,2BAAE;AAAA,UACT,IAAI;AAAA,UACJ,IAAI;AAAA,UACJ,IAAI;AAAA,QACN,CAAC;AAAA,QACD,iBAAa,2BAAE;AAAA,UACb,IAAI;AAAA,UACJ,IAAI;AAAA,UACJ,IAAI;AAAA,QACN,CAAC;AAAA,MACH;AAAA,IACF;AAEA,QAAI,KAAK,iBAAiB;AAC1B;AAAA,EACF,SAAS,KAAK;AACZ,UAAM,eAAgB,OAAiD;AAAA,MACrE,SAAS;AAAA,MACT,QAAQ;AAAA,IACV;AAEA,YAAQ,MAAM,YAAY;AAE1B,UAAM,6BACJ,oCAAkD;AAAA,MAChD,OAAO;AAAA,QACL,SAAS,aAAa,WAAW;AAAA,QACjC,MAAM;AAAA,QACN,OAAO;AAAA,MACT;AAAA,MACA,QAAQ,aAAa,UAAU;AAAA,IACjC,CAAC;AAEH,QAAI,KAAK,sBAAsB;AAC/B;AAAA,EACF;AACF;","names":["dictionaries","writeContentDeclarationEditor"]}