@vasrefil/api-toolkit 1.0.21 → 1.0.22

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.
@@ -1,27 +1,3 @@
1
- /// <reference types="mongoose/types/aggregate" />
2
- /// <reference types="mongoose/types/callback" />
3
- /// <reference types="mongoose/types/collection" />
4
- /// <reference types="mongoose/types/connection" />
5
- /// <reference types="mongoose/types/cursor" />
6
- /// <reference types="mongoose/types/document" />
7
- /// <reference types="mongoose/types/error" />
8
- /// <reference types="mongoose/types/expressions" />
9
- /// <reference types="mongoose/types/helpers" />
10
- /// <reference types="mongoose/types/middlewares" />
11
- /// <reference types="mongoose/types/indexes" />
12
- /// <reference types="mongoose/types/models" />
13
- /// <reference types="mongoose/types/mongooseoptions" />
14
- /// <reference types="mongoose/types/pipelinestage" />
15
- /// <reference types="mongoose/types/populate" />
16
- /// <reference types="mongoose/types/query" />
17
- /// <reference types="mongoose/types/schemaoptions" />
18
- /// <reference types="mongoose/types/schematypes" />
19
- /// <reference types="mongoose/types/session" />
20
- /// <reference types="mongoose/types/types" />
21
- /// <reference types="mongoose/types/utility" />
22
- /// <reference types="mongoose/types/validation" />
23
- /// <reference types="mongoose/types/virtuals" />
24
- /// <reference types="mongoose/types/inferschematype" />
25
1
  import { Model } from 'mongoose';
26
2
  import { FetchAllQuery, FetchWithPaginationDataI, ModelPopulateI, NestedRecordQueryOptionsI } from '../interfaces/root-controller.interface';
27
3
  export declare class RootController {
package/dist/env.d.ts CHANGED
@@ -6,6 +6,7 @@ declare enum NODE_ENVS {
6
6
  declare const env: {
7
7
  NODE_ENV: NODE_ENVS;
8
8
  MONGODB_URI: string;
9
+ API_KEY: string | undefined;
9
10
  VASREFIL: {
10
11
  BASEURL: string;
11
12
  API_KEY: string | undefined;
package/dist/env.js CHANGED
@@ -12,6 +12,7 @@ let NODE_ENV = process.env.NODE_ENV;
12
12
  const env = {
13
13
  NODE_ENV,
14
14
  MONGODB_URI: '',
15
+ API_KEY: process.env.API_KEY,
15
16
  VASREFIL: {
16
17
  BASEURL: NODE_ENV === NODE_ENVS.PROD ? 'https://api.vasrefil.com' : 'https://api-v2-test.vasrefil.com',
17
18
  API_KEY: process.env.VASREFIL_API_KEY
@@ -0,0 +1,10 @@
1
+ import { Request } from 'express';
2
+ export interface AdminI {
3
+ _id: string;
4
+ first_name: string;
5
+ last_name: string;
6
+ email: string;
7
+ }
8
+ export interface AdminRequestI extends Request {
9
+ admin?: AdminI;
10
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -1,3 +1,4 @@
1
+ import { Request } from 'express';
1
2
  export interface UserI {
2
3
  _id: string;
3
4
  first_name: string;
@@ -62,3 +63,6 @@ export interface CheckUserWalletBalanceRespI {
62
63
  amount: number;
63
64
  user: UserI;
64
65
  }
66
+ export interface UserRequestI extends Request {
67
+ user?: UserI;
68
+ }
@@ -0,0 +1,9 @@
1
+ import { Response, NextFunction } from 'express';
2
+ import { RootService } from '../services/_root.service';
3
+ import { AdminRequestI } from 'src/interfaces/admin.interface';
4
+ declare class AdminAuthMidWare_ extends RootService {
5
+ auth: (req: AdminRequestI, res: Response, next: NextFunction) => Promise<any>;
6
+ private get_admin;
7
+ }
8
+ declare const AdminAuthMidWare: AdminAuthMidWare_;
9
+ export { AdminAuthMidWare };
@@ -0,0 +1,53 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.AdminAuthMidWare = void 0;
7
+ const axios_1 = __importDefault(require("axios"));
8
+ const user_response_1 = require("../api-response/user.response");
9
+ const _root_service_1 = require("../services/_root.service");
10
+ const env_1 = __importDefault(require("../env"));
11
+ const request_helper_1 = require("../helpers/request.helper");
12
+ class AdminAuthMidWare_ extends _root_service_1.RootService {
13
+ constructor() {
14
+ super(...arguments);
15
+ this.auth = async (req, res, next) => {
16
+ const actionType = 'AUTH_MIDWARE';
17
+ try {
18
+ const apiKey = req.headers['api-key'];
19
+ if (apiKey) {
20
+ if (apiKey !== env_1.default.VASREFIL.API_KEY)
21
+ throw user_response_1.UserApiResp.NOT_AUTHORIZED;
22
+ }
23
+ else {
24
+ const { admin_user } = await this.get_admin(req);
25
+ req.admin = admin_user;
26
+ }
27
+ next();
28
+ }
29
+ catch (error) {
30
+ const { status, message, data } = this.get_error(error);
31
+ return this.sendResponse({ req, res, status, actionType, message, data, error });
32
+ }
33
+ };
34
+ this.get_admin = async (req) => {
35
+ try {
36
+ const baseurl = env_1.default.VASREFIL.BASEURL;
37
+ delete req.headers['host'];
38
+ delete req.headers['content-length'];
39
+ const headers = {
40
+ Authorization: req.headers.authorization,
41
+ };
42
+ const { data } = await axios_1.default.get(`${baseurl}/admin-users/details`, { headers });
43
+ return { admin_user: data.data.user };
44
+ }
45
+ catch (error) {
46
+ const err = request_helper_1.RequestHelper.get_error(error);
47
+ throw err;
48
+ }
49
+ };
50
+ }
51
+ }
52
+ const AdminAuthMidWare = new AdminAuthMidWare_;
53
+ exports.AdminAuthMidWare = AdminAuthMidWare;
@@ -0,0 +1,2 @@
1
+ export * from './admin-auth.midware';
2
+ export * from './user-auth.midware';
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./admin-auth.midware"), exports);
18
+ __exportStar(require("./user-auth.midware"), exports);
@@ -0,0 +1,9 @@
1
+ import { NextFunction, Response } from 'express';
2
+ import { RootService } from '../services/_root.service';
3
+ import { UserRequestI } from '../interfaces/user.interface';
4
+ declare class UserAuthMidWare_ extends RootService {
5
+ auth: (req: UserRequestI, res: Response, next: NextFunction) => Promise<any>;
6
+ private get_user;
7
+ }
8
+ declare const UserAuthMidWare: UserAuthMidWare_;
9
+ export { UserAuthMidWare };
@@ -0,0 +1,44 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.UserAuthMidWare = void 0;
7
+ const axios_1 = __importDefault(require("axios"));
8
+ const env_1 = __importDefault(require("../env"));
9
+ const _root_service_1 = require("../services/_root.service");
10
+ const request_helper_1 = require("../helpers/request.helper");
11
+ class UserAuthMidWare_ extends _root_service_1.RootService {
12
+ constructor() {
13
+ super(...arguments);
14
+ this.auth = async (req, res, next) => {
15
+ const actionType = 'USER_AUTH_MIDWARE';
16
+ try {
17
+ const { user } = await this.get_user(req);
18
+ req.user = user;
19
+ next();
20
+ }
21
+ catch (error) {
22
+ const { status, message, data } = this.get_error(error);
23
+ return this.sendResponse({ req, res, status, actionType, message, data, error });
24
+ }
25
+ };
26
+ this.get_user = async (req) => {
27
+ try {
28
+ const baseurl = env_1.default.VASREFIL.BASEURL;
29
+ const headers = {
30
+ Authorization: req.headers.authorization,
31
+ 'pin-token': req.headers['pin-token']
32
+ };
33
+ const { data } = await axios_1.default.get(`${baseurl}/users/details`, { headers });
34
+ return { user: data.data.user };
35
+ }
36
+ catch (error) {
37
+ const err = request_helper_1.RequestHelper.get_error(error);
38
+ throw err;
39
+ }
40
+ };
41
+ }
42
+ }
43
+ const UserAuthMidWare = new UserAuthMidWare_;
44
+ exports.UserAuthMidWare = UserAuthMidWare;
@@ -1,27 +1,3 @@
1
- /// <reference types="mongoose/types/aggregate" />
2
- /// <reference types="mongoose/types/callback" />
3
- /// <reference types="mongoose/types/collection" />
4
- /// <reference types="mongoose/types/connection" />
5
- /// <reference types="mongoose/types/cursor" />
6
- /// <reference types="mongoose/types/document" />
7
- /// <reference types="mongoose/types/error" />
8
- /// <reference types="mongoose/types/expressions" />
9
- /// <reference types="mongoose/types/helpers" />
10
- /// <reference types="mongoose/types/middlewares" />
11
- /// <reference types="mongoose/types/indexes" />
12
- /// <reference types="mongoose/types/models" />
13
- /// <reference types="mongoose/types/mongooseoptions" />
14
- /// <reference types="mongoose/types/pipelinestage" />
15
- /// <reference types="mongoose/types/populate" />
16
- /// <reference types="mongoose/types/query" />
17
- /// <reference types="mongoose/types/schemaoptions" />
18
- /// <reference types="mongoose/types/schematypes" />
19
- /// <reference types="mongoose/types/session" />
20
- /// <reference types="mongoose/types/types" />
21
- /// <reference types="mongoose/types/utility" />
22
- /// <reference types="mongoose/types/validation" />
23
- /// <reference types="mongoose/types/virtuals" />
24
- /// <reference types="mongoose/types/inferschematype" />
25
1
  import { Document, Model } from "mongoose";
26
2
  export interface ISample extends Document {
27
3
  name: string;
@@ -3,3 +3,4 @@ export * from './helpers';
3
3
  export * from './utilities';
4
4
  export * from './app-middlewares';
5
5
  export * from './interfaces';
6
+ export * from './middlewares';
@@ -19,3 +19,4 @@ __exportStar(require("./helpers"), exports);
19
19
  __exportStar(require("./utilities"), exports);
20
20
  __exportStar(require("./app-middlewares"), exports);
21
21
  __exportStar(require("./interfaces"), exports);
22
+ __exportStar(require("./middlewares"), exports);
@@ -1,4 +1,4 @@
1
- import * as express from "express";
1
+ import { Application } from "express";
2
2
  /**
3
3
  * Create and return Router.
4
4
  *
@@ -6,4 +6,4 @@ import * as express from "express";
6
6
  * @method config
7
7
  * @return void
8
8
  */
9
- export declare const routes: (app: express.Application) => void;
9
+ export declare const routes: (app: Application) => void;
@@ -1,33 +1,10 @@
1
1
  "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || function (mod) {
19
- if (mod && mod.__esModule) return mod;
20
- var result = {};
21
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
- __setModuleDefault(result, mod);
23
- return result;
24
- };
25
2
  var __importDefault = (this && this.__importDefault) || function (mod) {
26
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
27
4
  };
28
5
  Object.defineProperty(exports, "__esModule", { value: true });
29
6
  exports.routes = void 0;
30
- const express = __importStar(require("express"));
7
+ const express_1 = require("express");
31
8
  const chalk = require("chalk");
32
9
  const env_1 = __importDefault(require("../env"));
33
10
  const sample_route_1 = __importDefault(require("./sample.route"));
@@ -40,15 +17,17 @@ const sample_route_1 = __importDefault(require("./sample.route"));
40
17
  */
41
18
  const routes = (app) => {
42
19
  let router;
43
- router = express.Router();
20
+ router = (0, express_1.Router)();
44
21
  console.log(chalk.yellow.bgBlack.bold("Loading sample routes"));
45
22
  sample_route_1.default.loadRoutes('/samples', router);
46
- router.get('/', (req, res) => res.send(`Welcome to Node-Template-TS-2 - ${env_1.default.NODE_ENV}`));
23
+ router.get('/', (req, res) => {
24
+ res.send(`Welcome to API-Toolkit - ${env_1.default.NODE_ENV}`);
25
+ });
47
26
  //use router middleware
48
27
  app.use(router);
49
28
  app.all('*', (req, res) => {
50
29
  console.log(req.url);
51
- return res.status(404).json({ status: 404, error: 'not found' });
30
+ res.status(404).json({ status: 404, error: 'not found' });
52
31
  });
53
32
  };
54
33
  exports.routes = routes;
@@ -15,13 +15,23 @@ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (
15
15
  }) : function(o, v) {
16
16
  o["default"] = v;
17
17
  });
18
- var __importStar = (this && this.__importStar) || function (mod) {
19
- if (mod && mod.__esModule) return mod;
20
- var result = {};
21
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
- __setModuleDefault(result, mod);
23
- return result;
24
- };
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
25
35
  Object.defineProperty(exports, "__esModule", { value: true });
26
36
  exports.DateUtil = void 0;
27
37
  const dateFns = __importStar(require("date-fns"));
@@ -1,4 +1,3 @@
1
- /// <reference types="node" />
2
- declare const morgan: (req: import("http").IncomingMessage, res: import("http").ServerResponse, callback: (err?: Error | undefined) => void) => void;
1
+ declare const morgan: (req: import("http").IncomingMessage, res: import("http").ServerResponse, callback: (err?: Error) => void) => void;
3
2
  declare const winston: import("winston").Logger;
4
3
  export { morgan, winston };
@@ -15,13 +15,23 @@ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (
15
15
  }) : function(o, v) {
16
16
  o["default"] = v;
17
17
  });
18
- var __importStar = (this && this.__importStar) || function (mod) {
19
- if (mod && mod.__esModule) return mod;
20
- var result = {};
21
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
- __setModuleDefault(result, mod);
23
- return result;
24
- };
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
25
35
  Object.defineProperty(exports, "__esModule", { value: true });
26
36
  const joi = __importStar(require("joi"));
27
37
  class SampleValidator {
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@vasrefil/api-toolkit",
3
3
  "description": "This is Vasrefil API toolkit",
4
- "version": "1.0.21",
4
+ "version": "1.0.22",
5
5
  "author": "Sodiq Alabi",
6
6
  "main": "dist/public-api.js",
7
7
  "types": "dist/public-api.d.ts",
@@ -20,10 +20,7 @@
20
20
  "dependencies": {
21
21
  "@airbrake/node": "^2.1.8",
22
22
  "@types/jsonwebtoken": "^8.5.0",
23
- "@vasrefil/api-toolkit": "^1.0.20",
24
23
  "axios": "^1.7.8",
25
- "bcrypt": "^5.0.1",
26
- "bcrypt-nodejs": "0.0.3",
27
24
  "chalk": "^4.1.0",
28
25
  "cors": "^2.8.5",
29
26
  "date-fns": "^2.29.3",
@@ -31,14 +28,10 @@
31
28
  "errorhandler": "^1.5.1",
32
29
  "express": "^4.18.3",
33
30
  "helmet": "^4.2.0",
34
- "ioredis": "^5.3.2",
35
31
  "joi": "^17.3.0",
36
32
  "json-stringify-safe": "^5.0.1",
37
- "jsonwebtoken": "^8.5.1",
38
33
  "mongoose": "^6.0.14",
39
34
  "morgan": "^1.10.0",
40
- "rate-limiter-flexible": "^2.4.2",
41
- "swagger-ui-express": "^4.1.4",
42
35
  "winston": "^3.3.3"
43
36
  },
44
37
  "devDependencies": {