Skip to content

Commit

Permalink
Merge pull request #26 from knovator/isActive_permissions_indexing-up…
Browse files Browse the repository at this point in the history
…dates

isActive filter and permissions updates
  • Loading branch information
chavda-bhavik authored Aug 9, 2022
2 parents 14d6dbc + 1c0ffc8 commit 98a1df0
Show file tree
Hide file tree
Showing 11 changed files with 133 additions and 122 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('@knovator/masters-node');
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}`);
});
3 changes: 3 additions & 0 deletions demo/nodemon.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
{
"watch": ["app.js", "../dist/"]
}
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"
}
}
58 changes: 5 additions & 53 deletions demo/yarn.lock
Original file line number Diff line number Diff line change
Expand Up @@ -2,43 +2,6 @@
# yarn lockfile v1


"@hapi/hoek@^9.0.0":
version "9.3.0"
resolved "https://registry.yarnpkg.com/@hapi/hoek/-/hoek-9.3.0.tgz#8368869dcb735be2e7f5cb7647de78e167a251fb"
integrity sha512-/c6rf4UJlmHlC9b5BaNvzAcFv7HZ2QHaV0D4/HNlBdvFnvQq8RI4kYdhyPCl7Xj+oWvTWQ8ujhqS53LIgAe6KQ==

"@hapi/topo@^5.0.0":
version "5.1.0"
resolved "https://registry.yarnpkg.com/@hapi/topo/-/topo-5.1.0.tgz#dc448e332c6c6e37a4dc02fd84ba8d44b9afb012"
integrity sha512-foQZKJig7Ob0BMAYBfcJk8d77QtOe7Wo4ox7ff1lQYoNNAb6jwcY1ncdoy2e9wQZzvNy7ODZCYJkK8kzmcAnAg==
dependencies:
"@hapi/hoek" "^9.0.0"

"@knovator/masters-node@^1.1.2":
version "1.1.2"
resolved "https://registry.yarnpkg.com/@knovator/masters-node/-/masters-node-1.1.2.tgz#cd44d8127be60ac107279bdf2d2b57d2cba785e4"
integrity sha512-NP2HlLb3b8pUD5CgftMrJrxikQNwUCsZSAKjwsv/BzsUoH6Z2zR+cLz5eAv4pyTi/fSfLuU4bK46XKmIAqeR9w==
dependencies:
joi "^17.6.0"
mongoose-paginate-v2 "^1.7.0"

"@sideway/address@^4.1.3":
version "4.1.4"
resolved "https://registry.yarnpkg.com/@sideway/address/-/address-4.1.4.tgz#03dccebc6ea47fdc226f7d3d1ad512955d4783f0"
integrity sha512-7vwq+rOHVWjyXxVlR76Agnvhy8I9rpzjosTESvmhNeXOXdZZB15Fl+TI9x1SiHZH5Jv2wTGduSxFDIaq0m3DUw==
dependencies:
"@hapi/hoek" "^9.0.0"

"@sideway/formula@^3.0.0":
version "3.0.0"
resolved "https://registry.yarnpkg.com/@sideway/formula/-/formula-3.0.0.tgz#fe158aee32e6bd5de85044be615bc08478a0a13c"
integrity sha512-vHe7wZ4NOXVfkoRb8T5otiENVlT7a3IAiw7H5M2+GO+9CDgcVUUsX1zalAztCmwyOr2RUTGJdgB+ZvSVqmdHmg==

"@sideway/pinpoint@^2.0.0":
version "2.0.0"
resolved "https://registry.yarnpkg.com/@sideway/pinpoint/-/pinpoint-2.0.0.tgz#cff8ffadc372ad29fd3f78277aeb29e632cc70df"
integrity sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ==

"@types/node@*":
version "18.0.3"
resolved "https://registry.yarnpkg.com/@types/node/-/node-18.0.3.tgz#463fc47f13ec0688a33aec75d078a0541a447199"
Expand Down Expand Up @@ -205,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 Expand Up @@ -329,17 +297,6 @@ ipaddr.js@1.9.1:
resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.9.1.tgz#bff38543eeb8984825079ff3a2a8e6cbd46781b3"
integrity sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==

joi@^17.6.0:
version "17.6.0"
resolved "https://registry.yarnpkg.com/joi/-/joi-17.6.0.tgz#0bb54f2f006c09a96e75ce687957bd04290054b2"
integrity sha512-OX5dG6DTbcr/kbMFj0KGYxuew69HPcAE3K/sZpEV2nP6e/j/C0HV+HNiBPCASxdx5T7DMoa0s8UeHWMnb6n2zw==
dependencies:
"@hapi/hoek" "^9.0.0"
"@hapi/topo" "^5.0.0"
"@sideway/address" "^4.1.3"
"@sideway/formula" "^3.0.0"
"@sideway/pinpoint" "^2.0.0"

kareem@2.4.1:
version "2.4.1"
resolved "https://registry.yarnpkg.com/kareem/-/kareem-2.4.1.tgz#7d81ec518204a48c1cb16554af126806c3cd82b0"
Expand Down Expand Up @@ -402,11 +359,6 @@ mongodb@4.7.0:
optionalDependencies:
saslprep "^1.0.3"

mongoose-paginate-v2@^1.7.0:
version "1.7.0"
resolved "https://registry.yarnpkg.com/mongoose-paginate-v2/-/mongoose-paginate-v2-1.7.0.tgz#989a97160b5aa18b4bb16fb9ac3a80c6c33837ec"
integrity sha512-r9bns1sMWRl0QO3YXVZ/uGOL/CYcDXTmapGHlddIgzbfOhVxUWKHKItwJO8rZICF1ooOukLQv8qQLVTc3qSLpQ==

mongoose@^6.4.4:
version "6.4.4"
resolved "https://registry.yarnpkg.com/mongoose/-/mongoose-6.4.4.tgz#4e22a36373d8a867ee8f73063d8b31f1e451316d"
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
6 changes: 5 additions & 1 deletion src/controllers/masterController.ts
Original file line number Diff line number Diff line change
Expand Up @@ -170,12 +170,16 @@ export const listMaster = catchAsync(async (req: any, res: any) => {
};
let all =
(typeof req.body.all !== 'undefined' && req.body.all === true) || false;
let isActive =
typeof req.body.isActive !== 'undefined'
? req.body.isActive || false
: null;
const result = await masterService.listMaster(
customOptions,
isCountOnly,
search,
customQuery,
[true, false],
isActive === null ? [true, false] : [isActive],
populate,
!all
);
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 98a1df0

Please sign in to comment.