110 lines
7.6 KiB
JavaScript
110 lines
7.6 KiB
JavaScript
const fs = require('fs');
|
|
const path = require('path');
|
|
|
|
const dir = 'c:/Users/Lenovo/Desktop/product_catalogue/productcatalogue_frontend/src/services/toast/messages';
|
|
if (!fs.existsSync(dir)) fs.mkdirSync(dir, { recursive: true });
|
|
|
|
function toPascal(str) {
|
|
return str.split('-').map(word => word.charAt(0).toUpperCase() + word.slice(1)).join('');
|
|
}
|
|
|
|
function toTitle(str) {
|
|
return str.split('-').map(word => word.charAt(0).toUpperCase() + word.slice(1)).join(' ');
|
|
}
|
|
|
|
const entities = [
|
|
'product', 'category', 'family', 'variant', 'attribute', 'attribute-group',
|
|
'brand', 'unit', 'channel', 'channel-type', 'asset', 'asset-family',
|
|
'workflow', 'role', 'permission', 'tenant', 'integration', 'report',
|
|
'settings', 'theme', 'auth', 'user', 'system'
|
|
];
|
|
|
|
entities.forEach(entity => {
|
|
const isSystem = ['system', 'auth', 'settings', 'theme', 'workflow'].includes(entity);
|
|
const PascalName = toPascal(entity);
|
|
const TitleName = toTitle(entity);
|
|
|
|
let content = `import { createSuccess, createError, createWarning, createInfo } from '../toast.factory';\n\n`;
|
|
content += `export const ${PascalName}Messages = {\n`;
|
|
|
|
if (entity === 'system') {
|
|
content += ` networkError: () => createError("Network Error", "Unable to connect to the server. Please check your internet connection."),
|
|
validationError: (msg?: string) => createError("Validation Failed", msg || "Please check the form for errors."),
|
|
duplicateRecord: () => createError("Duplicate Record", "A record with this information already exists."),
|
|
permissionDenied: () => createError("Permission Denied", "You do not have permission to perform this action."),
|
|
unauthorized: () => createError("Unauthorized", "Please log in to continue."),
|
|
conflict: () => createError("Conflict", "The resource has been modified by another user."),
|
|
notFound: () => createError("Not Found", "The requested resource could not be found."),
|
|
timeout: () => createError("Timeout", "The request took too long to complete."),
|
|
internalServerError: () => createError("Server Error", "An unexpected error occurred. Please try again later."),
|
|
unknownError: (msg?: string) => createError("Unknown Error", msg || "An unexpected error occurred."),\n`;
|
|
} else if (entity === 'auth') {
|
|
content += ` login: () => createSuccess("Logged In", "You have been logged in successfully."),
|
|
logout: () => createSuccess("Logged Out", "You have been logged out successfully."),
|
|
sessionExpired: () => createWarning("Session Expired", "Your session has expired. Please log in again."),\n`;
|
|
} else if (entity === 'settings') {
|
|
content += ` saved: () => createSuccess("Settings Saved", "Application settings have been saved successfully."),
|
|
reset: () => createSuccess("Settings Reset", "Application settings have been restored to defaults."),\n`;
|
|
} else if (entity === 'theme') {
|
|
content += ` applied: () => createSuccess("Theme Applied", "The selected theme has been applied."),
|
|
reset: () => createSuccess("Theme Reset", "The theme has been restored to default."),\n`;
|
|
} else if (entity === 'workflow') {
|
|
content += ` submitted: () => createSuccess("Workflow Submitted", "The record has been submitted for review."),
|
|
approved: () => createSuccess("Workflow Approved", "The record has been approved."),
|
|
rejected: () => createError("Workflow Rejected", "The submission has been returned for revision."),
|
|
returned: () => createWarning("Workflow Returned", "The workflow has been returned."),
|
|
published: () => createSuccess("Workflow Published", "The workflow has been published."),
|
|
unpublished: () => createSuccess("Workflow Unpublished", "The workflow has been unpublished."),\n`;
|
|
} else if (entity === 'asset') {
|
|
content += ` uploaded: () => createSuccess("Asset Uploaded", "The asset has been uploaded successfully."),
|
|
replaced: () => createSuccess("Asset Replaced", "The asset has been replaced successfully."),
|
|
linked: () => createSuccess("Asset Linked", "The asset has been linked successfully."),
|
|
unlinked: () => createSuccess("Asset Unlinked", "The asset has been unlinked successfully."),
|
|
archived: () => createSuccess("Asset Archived", "The asset has been archived."),
|
|
deleted: () => createSuccess("Asset Deleted", "The asset has been removed from the system."),\n`;
|
|
} else if (entity === 'role') {
|
|
content += ` created: () => createSuccess("Role Created", "The role has been added successfully."),
|
|
updated: () => createSuccess("Role Updated", "The role information has been updated successfully."),
|
|
permissionsChanged: () => createSuccess("Permissions Updated", "Role permissions have been updated."),
|
|
deleted: () => createSuccess("Role Deleted", "The role has been removed from the system."),\n`;
|
|
} else if (entity === 'user') {
|
|
content += ` created: () => createSuccess("User Created", "The user has been added to the system."),
|
|
updated: () => createSuccess("User Updated", "The user information has been updated successfully."),
|
|
disabled: () => createWarning("User Disabled", "The user has been disabled."),
|
|
enabled: () => createSuccess("User Enabled", "The user has been enabled."),
|
|
passwordReset: () => createSuccess("Password Reset", "The user's password has been reset."),
|
|
deleted: () => createSuccess("User Deleted", "The user has been removed from the system."),\n`;
|
|
} else if (entity === 'category') {
|
|
content += ` created: () => createSuccess("Category Created", "The category has been added to the catalogue."),
|
|
updated: () => createSuccess("Category Updated", "The category information has been updated successfully."),
|
|
deleted: () => createSuccess("Category Deleted", "The category has been removed from the system."),
|
|
moved: () => createSuccess("Category Moved", "The category has been moved successfully."),
|
|
merged: () => createSuccess("Category Merged", "The categories have been merged successfully."),
|
|
split: () => createSuccess("Category Split", "The category has been split successfully."),\n`;
|
|
} else {
|
|
// Standard CRUD
|
|
content += ` created: () => createSuccess("${TitleName} Created", "The ${TitleName.toLowerCase()} has been added to the catalogue."),
|
|
updated: () => createSuccess("${TitleName} Updated", "The ${TitleName.toLowerCase()} information has been updated successfully."),
|
|
deleted: () => createSuccess("${TitleName} Deleted", "The ${TitleName.toLowerCase()} has been removed from the system."),
|
|
archived: () => createSuccess("${TitleName} Archived", "The ${TitleName.toLowerCase()} has been archived."),
|
|
restored: () => createSuccess("${TitleName} Restored", "The ${TitleName.toLowerCase()} has been restored."),
|
|
published: () => createSuccess("${TitleName} Published", "The ${TitleName.toLowerCase()} has been published."),
|
|
unpublished: () => createSuccess("${TitleName} Unpublished", "The ${TitleName.toLowerCase()} has been unpublished."),
|
|
cloned: () => createSuccess("${TitleName} Cloned", "The ${TitleName.toLowerCase()} has been cloned successfully."),
|
|
imported: () => createSuccess("${TitleName} Imported", "The ${TitleName.toLowerCase()}s have been imported successfully."),
|
|
exported: () => createSuccess("${TitleName} Exported", "The ${TitleName.toLowerCase()}s have been exported successfully."),\n`;
|
|
if (entity === 'product') {
|
|
content += ` variantGenerated: () => createSuccess("Variant Generated", "The product variants have been generated successfully."),\n`;
|
|
}
|
|
}
|
|
|
|
content += `};\n`;
|
|
|
|
fs.writeFileSync(path.join(dir, `${entity}.messages.ts`), content);
|
|
});
|
|
|
|
// Create index.ts
|
|
let indexContent = entities.map(entity => `export * from './${entity}.messages';`).join('\n');
|
|
fs.writeFileSync(path.join(dir, 'index.ts'), indexContent + '\n');
|
|
console.log('Done generating messages');
|