Skip to content

Commit 5c6fa3f

Browse files
committed
feat: add more default content to assets
1 parent 1e31f99 commit 5c6fa3f

File tree

4 files changed

+129
-10
lines changed

4 files changed

+129
-10
lines changed
Lines changed: 51 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,53 @@
11
module.exports = ({ answers }) => `
2-
const services = require('../services')
3-
const { asyncErrorHandler, APIError } = require('${answers.project_base}/utilities')
4-
const hello = asyncErrorHandler(async (req, res) => {
5-
res.status(200).json({ data:'Hello from ${answers.project_base}/${answers.service_name}' })
6-
})
2+
const services = require('../services/services');
3+
const { asyncErrorHandler, APIError } = require('${answers.project_base}/utilities');
4+
5+
const create${answers.service_name.charAt(0).toUpperCase()+answers.service_name.slice(1)} = asyncErrorHandler(async (req, res) => {
6+
const { body } = req;
7+
const { ${answers.service_name.toLowerCase()}: data } = await services.create${answers.service_name.charAt(0).toUpperCase()+answers.service_name.slice(1)}({ body });
8+
res.status(201).json({ data });
9+
});
10+
11+
const get${answers.service_name.charAt(0).toUpperCase()+answers.service_name.slice(1)}s = asyncErrorHandler(async (req, res) => {
12+
const { ${answers.service_name.toLowerCase()}s: data } = await services.get${answers.service_name.charAt(0).toUpperCase()+answers.service_name.slice(1)}s();
13+
res.status(200).json({ data });
14+
});
15+
16+
const get${answers.service_name.charAt(0).toUpperCase()+answers.service_name.slice(1)} = asyncErrorHandler(async (req, res) => {
17+
const { id } = req.params;
18+
const { ${answers.service_name.toLowerCase()}: data } = await services.get${answers.service_name.charAt(0).toUpperCase()+answers.service_name.slice(1)}ById({ id });
19+
if (!data) {
20+
throw new APIError(404, '${answers.service_name.toLowerCase()} not found');
21+
}
22+
res.status(200).json({ data });
23+
});
24+
25+
const update${answers.service_name.charAt(0).toUpperCase()+answers.service_name.slice(1)} = asyncErrorHandler(async (req, res) => {
26+
const { id } = req.params;
27+
const { body } = req;
28+
const { ${answers.service_name.toLowerCase()} } = await services.get${answers.service_name.charAt(0).toUpperCase()+answers.service_name.slice(1)}ById({ id });
29+
if (!${answers.service_name.toLowerCase()}) {
30+
throw new APIError(404, '${answers.service_name.toLowerCase()} not found');
31+
}
32+
const { upserted_${answers.service_name.toLowerCase()}: data } = await services.update${answers.service_name.charAt(0).toUpperCase()+answers.service_name.slice(1)}Profile({ id, body });
33+
res.status(200).json({ data });
34+
});
35+
36+
const delete${answers.service_name.charAt(0).toUpperCase()+answers.service_name.slice(1)} = asyncErrorHandler(async (req, res) => {
37+
const { id } = req.params;
38+
const { ${answers.service_name.toLowerCase()} } = await services.get${answers.service_name.charAt(0).toUpperCase()+answers.service_name.slice(1)}ById({ id });
39+
if (!${answers.service_name.toLowerCase()}) {
40+
throw new APIError(404, '${answers.service_name.toLowerCase()} not found');
41+
}
42+
await services.delete${answers.service_name.charAt(0).toUpperCase()+answers.service_name.slice(1)}({ id });
43+
res.status(200).json({ message: 'Deletion successful' });
44+
});
745
module.exports = {
8-
hello,
9-
}`;
46+
create${answers.service_name.charAt(0).toUpperCase()+answers.service_name.slice(1)},
47+
get${answers.service_name.charAt(0).toUpperCase()+answers.service_name.slice(1)}s,
48+
get${answers.service_name.charAt(0).toUpperCase()+answers.service_name.slice(1)},
49+
update${answers.service_name.charAt(0).toUpperCase()+answers.service_name.slice(1)},
50+
delete${answers.service_name.charAt(0).toUpperCase()+answers.service_name.slice(1)}
51+
};
52+
53+
`;
Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1,17 @@
1-
module.exports = () => 'module.exports = {};'; // Example content for model
1+
module.exports = ({ answers }) => `
2+
const mongoose = require('mongoose');
3+
4+
const ${answers.service_name}Schema = new mongoose.Schema({
5+
name: {
6+
type: String,
7+
required: true,
8+
}
9+
}
10+
, {
11+
timestamps: true
12+
});
13+
14+
const ${answers.service_name.charAt(0).toUpperCase() + answers.service_name.slice(1)} = mongoose.model('${answers.service_name}', ${answers.service_name}Schema);
15+
16+
module.exports = ${answers.service_name.charAt(0).toUpperCase() + answers.service_name.slice(1)};
17+
`;
Lines changed: 26 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1,26 @@
1-
module.exports = () => 'const express = require(\'express\');\nconst router = express.Router();\nmodule.exports = { router };';
1+
module.exports = ({ answers }) => `
2+
const express = require('express');
3+
const { validate } = require('${answers.project_base}/utilities');
4+
const {
5+
create${answers.service_name.charAt(0).toUpperCase() + answers.service_name.slice(1)}Validation,
6+
get${answers.service_name.charAt(0).toUpperCase() + answers.service_name.slice(1)}Validation,
7+
update${answers.service_name.charAt(0).toUpperCase() + answers.service_name.slice(1)}Validation,
8+
delete${answers.service_name.charAt(0).toUpperCase() + answers.service_name.slice(1)}Validation
9+
} = require('${answers.project_base}/validations');
10+
const ${answers.service_name.toLowerCase()}Controller = require('../controllers/controllers');
11+
12+
const router = express.Router();
13+
14+
router
15+
.route('/${answers.service_name.toLowerCase()}s')
16+
.post(validate(create${answers.service_name.charAt(0).toUpperCase() + answers.service_name.slice(1)}Validation), ${answers.service_name.toLowerCase()}Controller.create${answers.service_name.charAt(0).toUpperCase() + answers.service_name.slice(1)})
17+
.get(${answers.service_name.toLowerCase()}Controller.get${answers.service_name.charAt(0).toUpperCase() + answers.service_name.slice(1)}s);
18+
19+
router
20+
.route('/${answers.service_name.toLowerCase()}s/:id')
21+
.get(validate(get${answers.service_name.charAt(0).toUpperCase() + answers.service_name.slice(1)}Validation), ${answers.service_name.toLowerCase()}Controller.get${answers.service_name.charAt(0).toUpperCase() + answers.service_name.slice(1)})
22+
.patch(validate(update${answers.service_name.charAt(0).toUpperCase() + answers.service_name.slice(1)}Validation), ${answers.service_name.toLowerCase()}Controller.update${answers.service_name.charAt(0).toUpperCase() + answers.service_name.slice(1)})
23+
.delete(validate(delete${answers.service_name.charAt(0).toUpperCase() + answers.service_name.slice(1)}Validation), ${answers.service_name.toLowerCase()}Controller.delete${answers.service_name.charAt(0).toUpperCase() + answers.service_name.slice(1)});
24+
25+
module.exports = router;
26+
`;
Lines changed: 35 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1,35 @@
1-
module.exports = () => 'module.exports = {};';
1+
module.exports = ({ answers }) => `
2+
const { ObjectId } = require('mongodb');
3+
const ${answers.service_name.charAt(0).toUpperCase() + answers.service_name.slice(1)} = require('../models/models');
4+
5+
const create${answers.service_name.charAt(0).toUpperCase() + answers.service_name.slice(1)} = async ({ body }) => {
6+
const ${answers.service_name.toLowerCase()} = await ${answers.service_name.charAt(0).toUpperCase() + answers.service_name.slice(1)}.create(body);
7+
return { ${answers.service_name.toLowerCase()} };
8+
};
9+
10+
const get${answers.service_name.charAt(0).toUpperCase() + answers.service_name.slice(1)}s = async () => {
11+
const ${answers.service_name.toLowerCase()}s = await ${answers.service_name.charAt(0).toUpperCase() + answers.service_name.slice(1)}.find({});
12+
return { ${answers.service_name.toLowerCase()}s };
13+
};
14+
15+
const get${answers.service_name.charAt(0).toUpperCase() + answers.service_name.slice(1)}ById = async ({ id }) => {
16+
const ${answers.service_name.toLowerCase()} = await ${answers.service_name.charAt(0).toUpperCase() + answers.service_name.slice(1)}.findById(id);
17+
return { ${answers.service_name.toLowerCase()} };
18+
};
19+
20+
const update${answers.service_name.charAt(0).toUpperCase() + answers.service_name.slice(1)}Profile = async ({ id, body }) => {
21+
const upserted_${answers.service_name.toLowerCase()} = await ${answers.service_name.charAt(0).toUpperCase() + answers.service_name.slice(1)}.updateOne({ _id: ObjectId(id) }, { ...body }, { upsert: false });
22+
return { upserted_${answers.service_name.toLowerCase()} };
23+
};
24+
25+
const delete${answers.service_name.charAt(0).toUpperCase() + answers.service_name.slice(1)} = async ({ id }) => {
26+
await ${answers.service_name.charAt(0).toUpperCase() + answers.service_name.slice(1)}.deleteOne({ _id: ObjectId(id) });
27+
};
28+
module.exports = {
29+
create${answers.service_name.charAt(0).toUpperCase() + answers.service_name.slice(1)},
30+
get${answers.service_name.charAt(0).toUpperCase() + answers.service_name.slice(1)}s,
31+
get${answers.service_name.charAt(0).toUpperCase() + answers.service_name.slice(1)}ById,
32+
update${answers.service_name.charAt(0).toUpperCase() + answers.service_name.slice(1)}Profile,
33+
delete${answers.service_name.charAt(0).toUpperCase() + answers.service_name.slice(1)}
34+
};
35+
`;

0 commit comments

Comments
 (0)