initrajs
Version:
⚡ InitraJS - JavaScript CLI Toolkit | Lightning-fast scaffolding for React, Next.js, Node.js with TypeScript | The future of JavaScript development | 10x faster than create-react-app | Ultimate developer productivity tool
59 lines (51 loc) • 1.43 kB
JavaScript
export default `const {{name}} = require('../models/{{nameLower}}.model');
class {{name}}Service {
// Get all {{nameLower}}s
async getAll() {
try {
return await {{name}}.find({});
} catch (error) {
throw new Error(\`Error fetching {{nameLower}}s: \${error.message}\`);
}
}
// Get {{nameLower}} by ID
async getById(id) {
try {
return await {{name}}.findById(id);
} catch (error) {
throw new Error(\`Error fetching {{nameLower}}: \${error.message}\`);
}
}
// Create new {{nameLower}}
async create(data) {
try {
const {{nameCamel}} = new {{name}}(data);
return await {{nameCamel}}.save();
} catch (error) {
throw new Error(\`Error creating {{nameLower}}: \${error.message}\`);
}
}
// Update {{nameLower}}
async update(id, data) {
try {
return await {{name}}.findByIdAndUpdate(
id,
data,
{ new: true, runValidators: true }
);
} catch (error) {
throw new Error(\`Error updating {{nameLower}}: \${error.message}\`);
}
}
// Delete {{nameLower}}
async delete(id) {
try {
return await {{name}}.findByIdAndDelete(id);
} catch (error) {
throw new Error(\`Error deleting {{nameLower}}: \${error.message}\`);
}
}
// Add custom business logic methods here
}
module.exports = {{name}}Service;
`;