crud-api-express 1.0.8 → 1.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "crud-api-express",
3
- "version": "1.0.8",
3
+ "version": "1.1.0",
4
4
  "type": "module",
5
5
  "description": "",
6
6
  "main": "dist/index.js",
@@ -8,7 +8,15 @@
8
8
  "scripts": {
9
9
  "build": "npx rollup -c"
10
10
  },
11
- "keywords": [],
11
+ "keywords": [
12
+ "crud",
13
+ "api",
14
+ "express",
15
+ "mongoose",
16
+ "typescript",
17
+ "rest-api",
18
+ "nodejs"
19
+ ],
12
20
  "author": "",
13
21
  "license": "ISC",
14
22
  "dependencies": {
@@ -18,6 +26,7 @@
18
26
  "typescript": "^5.4.5"
19
27
  },
20
28
  "devDependencies": {
29
+ "@rollup/plugin-commonjs": "^26.0.1",
21
30
  "@rollup/plugin-typescript": "^11.1.6",
22
31
  "@types/express": "^4.17.21",
23
32
  "@types/mongoose": "^5.11.97",
package/readme.md CHANGED
@@ -32,40 +32,83 @@ To use `CrudController` in your Node.js project, follow these steps:
32
32
  # Usage
33
33
  Here's a basic example of how to use CrudController:
34
34
 
35
-
36
35
  import express from 'express';
37
36
  import mongoose from 'mongoose';
38
- import CrudController from 'crud-api-express';
39
-
37
+ import CrudController from 'crud-api-express';
40
38
 
41
39
  const Schema = mongoose.Schema;
42
-
43
40
  const ExampleSchema = new Schema({
44
- type: { type: String, default: 'Percentage', enum: ['Percentage', 'Flat'] },
45
- status: { type: String, default: 'Active', trim: true },
46
- expiry_date: { type: Date, index: true, trim: true },
41
+ type: { type: String, default: 'Percentage', enum: ['Percentage', 'Flat'] },
42
+ status: { type: String, default: 'Active', trim: true },
43
+ expiry_date: { type: Date, index: true, trim: true },
47
44
  }, { timestamps: true, versionKey: false });
48
45
 
49
46
  const ExampleModel = mongoose.model('Example', ExampleSchema);
50
47
 
51
-
52
- const exampleController = new CrudController(ExampleModel, 'examples', {
53
- // Optional configuration options here
54
- });
55
-
56
-
57
- const mongoURI = 'mdhd';
58
-
59
-
60
- mongoose.connect(mongoURI, { useNewUrlParser: false, useUnifiedTopology: false })
48
+ const options = {
49
+ middleware: [
50
+ (req, res, next) => {
51
+ // Example: Authentication middleware
52
+ const authToken = req.headers.authorization;
53
+ if (!authToken) {
54
+ return res.status(401).json({ message: 'Unauthorized' });
55
+ }
56
+ // Verify token logic here
57
+ next();
58
+ },
59
+ (req, res, next) => {
60
+ // Example: Logging middleware
61
+ console.log(`Request received at ${new Date()}`);
62
+ next();
63
+ }
64
+ ],
65
+ onSuccess: (res, method, result) => {
66
+ console.log(`Successful ${method} operation:`, result);
67
+ res.status(200).json({ success: true, data: result });
68
+ },
69
+ onError: (res, method, error) => {
70
+ console.error(`Error in ${method} operation:`, error);
71
+ res.status(500).json({ error: error.message });
72
+ },
73
+ methods: ['GET', 'POST', 'PUT', 'DELETE'],
74
+ relatedModel: RelatedModel,
75
+ relatedField: 'relatedId',
76
+ aggregatePipeline: [
77
+ { $match: { status: 'Active' } },
78
+ { $sort: { createdAt: -1 } }
79
+ ],
80
+ customRoutes: [
81
+ {
82
+ method: 'get',
83
+ path: '/custom-route',
84
+ handler: (req, res) => {
85
+ res.json({ message: 'Custom route handler executed' });
86
+ }
87
+ },
88
+ {
89
+ method: 'post',
90
+ path: '/custom-action',
91
+ handler: (req, res) => {
92
+ // Custom logic for handling POST request
93
+ res.json({ message: 'Custom action executed' });
94
+ }
95
+ }
96
+ ]
97
+ };
98
+
99
+ const exampleController = new CrudController(ExampleModel, 'examples', options);
100
+
101
+ const mongoURI = 'mongodb://localhost:27017/mydatabase';
102
+
103
+ mongoose.connect(mongoURI, { useNewUrlParser: true, useUnifiedTopology: true })
61
104
  .then(() => {
62
- console.log('Connected to MongoDB Atlas');
105
+ console.log('Connected to MongoDB');
63
106
 
64
107
  const app = express();
65
-
66
108
  app.use(express.json());
67
109
 
68
110
  app.use('/api', exampleController.getRouter());
111
+
69
112
  console.log(exampleController.getRoutes());
70
113
 
71
114
  const PORT = process.env.PORT || 3000;
@@ -74,7 +117,7 @@ mongoose.connect(mongoURI, { useNewUrlParser: false, useUnifiedTopology: false }
74
117
  });
75
118
  })
76
119
  .catch(err => {
77
- console.error('Error connecting to MongoDB Atlas:', err.message);
120
+ console.error('Error connecting to MongoDB:', err.message);
78
121
  process.exit(1);
79
122
  });
80
123
 
package/dist/index.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sources":["../src/index.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}