Skip to content

Commit

Permalink
feat: Added descriptor-codes and added documentation for codes
Browse files Browse the repository at this point in the history
  • Loading branch information
chavda-bhavik committed Aug 9, 2022
1 parent 50f9d24 commit 1c0ffc8
Show file tree
Hide file tree
Showing 9 changed files with 125 additions and 68 deletions.
15 changes: 11 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -170,10 +170,6 @@ To integrate `@knovator/masters-node`, you should be having basic `nodejs` appli
# or
yarn add @knovator/masters-node
```
2. Enter timezone information in `.env`
```js
TZ=Asia/Colcutta
```

<p align="right">(<a href="#top">back to top</a>)</p>

Expand Down Expand Up @@ -309,6 +305,17 @@ req?.i18n?.(CODE)
| `master.findAll` | When all data is fetched |
| `master.masterNotFound` | When Master data is not found |
### `descriptor` codes
| Code | Description |
| --- | ----------- |
| `master.create` | For Create API |
| `master.update` | For Update API |
| `master.active` | For `isActive` toggle API |
| `master.default` | For `isDefault` toggle API |
| `master.webVisible` | For `isWebVisible` toggle API |
| `master.sequence` | For `sequence` update API |
| `master.softDelete` | For Soft-Delete API |
| `master.list` | For List API |
<p align="right">(<a href="#top">back to top</a>)</p>
Expand Down
13 changes: 12 additions & 1 deletion demo/app.js
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,8 @@ require('./src/models/file');
const express = require('express');
const cors = require('cors');
const fileRoute = require('./src/routes/fileRoute');
const { masters, Master } = require('../.');
var api = require('express-list-endpoints-descriptor')(express);
const { masters } = require('../.');
const PORT = 8080;

const app = express();
Expand All @@ -14,6 +15,16 @@ app.use(cors());
app.use(fileRoute);
app.use('/admin/masters', masters());

app.get('/allendpoints', (req, res) => {
//return all endpoints defined inside routes
res.send(api.listAllEndpoints(app));
});

app.get('/endpoints', (req, res) => {
//return all endpoints defined inside routes
res.send(api.listEndpoints(app));
});

app.listen(PORT, () => {
console.log(`App started on ${PORT}`);
});
1 change: 1 addition & 0 deletions demo/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@
"cors": "^2.8.5",
"dotenv": "^16.0.1",
"express": "^4.18.1",
"express-list-endpoints-descriptor": "^1.0.13",
"mongoose": "^6.4.4"
}
}
5 changes: 5 additions & 0 deletions demo/yarn.lock
Original file line number Diff line number Diff line change
Expand Up @@ -168,6 +168,11 @@ etag@~1.8.1:
resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887"
integrity sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==

express-list-endpoints-descriptor@^1.0.13:
version "1.0.13"
resolved "https://registry.yarnpkg.com/express-list-endpoints-descriptor/-/express-list-endpoints-descriptor-1.0.13.tgz#f59b771f527be797ca398bf24ba3f357bb5c1942"
integrity sha512-eGEeJNqXa6sVsJW7V3D1UiP9AS9hJ202T7n9zoknvyII+Vnkqm2kwf32diUVer2MqsikhijjEdR3gTguY/ATnw==

express@^4.18.1:
version "4.18.1"
resolved "https://registry.yarnpkg.com/express/-/express-4.18.1.tgz#7797de8b9c72c857b9cd0e14a5eea80666267caf"
Expand Down
1 change: 1 addition & 0 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -82,6 +82,7 @@
"typescript": "^4.7.4"
},
"dependencies": {
"express-list-endpoints-descriptor": "^1.0.13",
"joi": "^17.6.0",
"mongoose-paginate-v2": "^1.7.0"
}
Expand Down
134 changes: 73 additions & 61 deletions src/routes/masterRoutes.ts
Original file line number Diff line number Diff line change
@@ -1,71 +1,83 @@
import express from "express";
import defaults from "../helpers/defaults";
import express from 'express';
require('express-list-endpoints-descriptor')(express);
import defaults from '../helpers/defaults';
import { IRouter } from '../../types/Router';

import validate from "../policies/validate";
import * as masterValidation from "../helpers/validations";
import * as MasterController from "../controllers/masterController";
import validate from '../policies/validate';
import * as masterValidation from '../helpers/validations';
import * as MasterController from '../controllers/masterController';

const routes: IRouter = express.Router();

const routes = express.Router();
routes.use(express.json());

const authenticate = (req: any, res: any, next: any) => {
return defaults.authentication(req, res, next);
};

routes.post(
`/create`,
authenticate,
validate(masterValidation.CreateSchema),
MasterController.createMaster
);
// .descriptor("admin.master.create");
routes.put(
`/update/:id`,
authenticate,
validate(masterValidation.UpdateSchema),
MasterController.updateMaster
);
// .descriptor("admin.master.update");
routes.patch(
`/partial-update/activate/:id`,
authenticate,
validate(masterValidation.activate),
MasterController.activateMaster
);
// .descriptor("admin.master.active");
routes.patch(
`/partial-update/default/:id`,
authenticate,
validate(masterValidation.isDefault),
MasterController.defaultMaster
);
// .descriptor("admin.master.default");
routes.patch(
`/partial-update/web-visible/:id`,
authenticate,
validate(masterValidation.webVisible),
MasterController.webVisibleMaster
);
routes.patch(
`/partial-update/sequence`,
authenticate,
validate(masterValidation.sequence),
MasterController.sequenceMaster
);
// .descriptor("admin.master.sequence");
routes.put(
`/soft-delete`,
authenticate,
validate(masterValidation.DeleteSchema),
MasterController.softDeleteMaster
);
// .descriptor("admin.master.softDelete");
routes.post(
`/list`,
authenticate,
validate(masterValidation.ListSchema),
MasterController.listMaster
);
// .descriptor("admin.master.getAll");
routes
.post(
`/create`,
authenticate,
validate(masterValidation.CreateSchema),
MasterController.createMaster
)
.descriptor('master.create');
routes
.put(
`/update/:id`,
authenticate,
validate(masterValidation.UpdateSchema),
MasterController.updateMaster
)
.descriptor('master.update');
routes
.patch(
`/partial-update/activate/:id`,
authenticate,
validate(masterValidation.activate),
MasterController.activateMaster
)
.descriptor('master.active');
routes
.patch(
`/partial-update/default/:id`,
authenticate,
validate(masterValidation.isDefault),
MasterController.defaultMaster
)
.descriptor('master.default');
routes
.patch(
`/partial-update/web-visible/:id`,
authenticate,
validate(masterValidation.webVisible),
MasterController.webVisibleMaster
)
.descriptor('master.webVisible');
routes
.patch(
`/partial-update/sequence`,
authenticate,
validate(masterValidation.sequence),
MasterController.sequenceMaster
)
.descriptor('master.sequence');
routes
.put(
`/soft-delete`,
authenticate,
validate(masterValidation.DeleteSchema),
MasterController.softDeleteMaster
)
.descriptor('master.softDelete');
routes
.post(
`/list`,
authenticate,
validate(masterValidation.ListSchema),
MasterController.listMaster
)
.descriptor('master.list');

export default routes;
5 changes: 5 additions & 0 deletions types/Router.d.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
import { Router } from 'express';

export interface IRouter extends Router {
descriptor?: any;
}
14 changes: 12 additions & 2 deletions types/index.d.ts
Original file line number Diff line number Diff line change
@@ -1,3 +1,6 @@
declare module 'express-list-endpoints-descriptor' {
function listEndpoints(routes: any): any;
}
declare module '@knovator/masters-node' {
export type MastersProps = {
convertToTz: (params: any) => any;
Expand All @@ -8,8 +11,15 @@ declare module '@knovator/masters-node' {
};

function masters(props: MastersProps): import('express').Router;

var Master: import('mongoose').Model<MasterType>

var Master: import('mongoose').Model<MasterType>;
}

declare module 'Router' {
descriptor: any;
// import { Router } from 'express';
// Router.descriptor: any = '';
// export default Router;
}

type MasterType = {
Expand Down
5 changes: 5 additions & 0 deletions yarn.lock
Original file line number Diff line number Diff line change
Expand Up @@ -3198,6 +3198,11 @@ expect@^27.5.1:
jest-matcher-utils "^27.5.1"
jest-message-util "^27.5.1"

express-list-endpoints-descriptor@^1.0.13:
version "1.0.13"
resolved "https://registry.yarnpkg.com/express-list-endpoints-descriptor/-/express-list-endpoints-descriptor-1.0.13.tgz#f59b771f527be797ca398bf24ba3f357bb5c1942"
integrity sha512-eGEeJNqXa6sVsJW7V3D1UiP9AS9hJ202T7n9zoknvyII+Vnkqm2kwf32diUVer2MqsikhijjEdR3gTguY/ATnw==

express@^4.18.1:
version "4.18.1"
resolved "https://registry.yarnpkg.com/express/-/express-4.18.1.tgz#7797de8b9c72c857b9cd0e14a5eea80666267caf"
Expand Down

0 comments on commit 1c0ffc8

Please sign in to comment.