From 8ee4c2d6692c65e86474085aec15aaaa338a89fe Mon Sep 17 00:00:00 2001 From: cavdy Date: Tue, 16 Apr 2019 00:02:53 +0100 Subject: [PATCH] feature(create middlewarefor jwt): create middleware for jwt [Starts #165366240] --- api/build/app.js | 81 -- api/build/app.js.map | 1 - api/build/controllers/createAccount.js | 72 -- api/build/controllers/createAccount.js.map | 1 - api/build/controllers/createStaffs.js | 34 - api/build/controllers/createStaffs.js.map | 1 - api/build/controllers/login.js | 46 -- api/build/controllers/login.js.map | 1 - api/build/controllers/register.js | 26 - api/build/controllers/register.js.map | 1 - api/build/controllers/transaction.js | 53 -- api/build/controllers/transaction.js.map | 1 - api/build/controllers/users.js | 49 -- api/build/controllers/users.js.map | 1 - api/build/helper/registrationHelper.js | 65 -- api/build/helper/registrationHelper.js.map | 1 - api/build/model/CreateAccount.js | 26 - api/build/model/CreateAccount.js.map | 1 - api/build/model/Transaction.js | 26 - api/build/model/Transaction.js.map | 1 - api/build/model/users.js | 24 - api/build/model/users.js.map | 1 - api/build/routes/createAccount.js | 22 - api/build/routes/createAccount.js.map | 1 - api/build/routes/createStaffs.js | 20 - api/build/routes/createStaffs.js.map | 1 - api/build/routes/login.js | 20 - api/build/routes/login.js.map | 1 - api/build/routes/register.js | 20 - api/build/routes/register.js.map | 1 - api/build/routes/transaction.js | 21 - api/build/routes/transaction.js.map | 1 - api/build/routes/users.js | 21 - api/build/routes/users.js.map | 1 - api/build/services/createAccount.js | 82 -- api/build/services/createAccount.js.map | 1 - api/build/services/createStaffs.js | 41 - api/build/services/createStaffs.js.map | 1 - api/build/services/login.js | 43 - api/build/services/login.js.map | 1 - api/build/services/register.js | 37 - api/build/services/register.js.map | 1 - api/build/services/transaction.js | 75 -- api/build/services/transaction.js.map | 1 - api/build/services/users.js | 52 -- api/build/services/users.js.map | 1 - api/build/test/accounts.js | 69 -- api/build/test/accounts.js.map | 1 - api/build/test/signin.js | 77 -- api/build/test/signin.js.map | 1 - api/build/test/signup.js | 112 --- api/build/test/signup.js.map | 1 - api/build/test/transactions.js | 56 -- api/build/test/transactions.js.map | 1 - api/v1/controllers/createAccount.js | 52 -- api/v1/controllers/createStaffs.js | 23 - api/v1/controllers/transaction.js | 42 - api/v1/controllers/users.js | 37 - api/v1/routes/createAccount.js | 11 - api/v1/routes/transaction.js | 10 - api/v1/routes/users.js | 10 - package-lock.json | 772 +----------------- package.json | 10 +- {api => server}/dummyJson/accounts.json | 0 {api => server}/dummyJson/transactions.json | 0 {api => server}/dummyJson/users.json | 0 {api => server}/swagger.json | 0 {api => server}/v1/app.js | 27 +- server/v1/controllers/createAccount.js | 35 + server/v1/controllers/createStaffs.js | 16 + {api => server}/v1/controllers/login.js | 3 +- {api => server}/v1/controllers/register.js | 0 server/v1/controllers/transaction.js | 27 + server/v1/controllers/users.js | 22 + .../v1/helper/registrationHelper.js | 0 server/v1/middleware/jwt.js | 27 + {api => server}/v1/model/CreateAccount.js | 0 {api => server}/v1/model/Transaction.js | 0 {api => server}/v1/model/users.js | 0 server/v1/routes/createAccount.js | 12 + {api => server}/v1/routes/createStaffs.js | 3 +- {api => server}/v1/routes/login.js | 0 {api => server}/v1/routes/register.js | 0 server/v1/routes/transaction.js | 11 + server/v1/routes/users.js | 11 + {api => server}/v1/services/createAccount.js | 0 {api => server}/v1/services/createStaffs.js | 0 {api => server}/v1/services/login.js | 0 {api => server}/v1/services/register.js | 0 {api => server}/v1/services/transaction.js | 0 {api => server}/v1/services/users.js | 0 {api => server}/v1/test/accounts.js | 0 {api => server}/v1/test/signin.js | 0 {api => server}/v1/test/signup.js | 0 {api => server}/v1/test/transactions.js | 0 {api => server}/v1/test/users.js | 0 ui/credit.html | 41 +- ui/css/style.css | 3 +- ui/js/app.js | 36 +- 99 files changed, 264 insertions(+), 2274 deletions(-) delete mode 100644 api/build/app.js delete mode 100644 api/build/app.js.map delete mode 100644 api/build/controllers/createAccount.js delete mode 100644 api/build/controllers/createAccount.js.map delete mode 100644 api/build/controllers/createStaffs.js delete mode 100644 api/build/controllers/createStaffs.js.map delete mode 100644 api/build/controllers/login.js delete mode 100644 api/build/controllers/login.js.map delete mode 100644 api/build/controllers/register.js delete mode 100644 api/build/controllers/register.js.map delete mode 100644 api/build/controllers/transaction.js delete mode 100644 api/build/controllers/transaction.js.map delete mode 100644 api/build/controllers/users.js delete mode 100644 api/build/controllers/users.js.map delete mode 100644 api/build/helper/registrationHelper.js delete mode 100644 api/build/helper/registrationHelper.js.map delete mode 100644 api/build/model/CreateAccount.js delete mode 100644 api/build/model/CreateAccount.js.map delete mode 100644 api/build/model/Transaction.js delete mode 100644 api/build/model/Transaction.js.map delete mode 100644 api/build/model/users.js delete mode 100644 api/build/model/users.js.map delete mode 100644 api/build/routes/createAccount.js delete mode 100644 api/build/routes/createAccount.js.map delete mode 100644 api/build/routes/createStaffs.js delete mode 100644 api/build/routes/createStaffs.js.map delete mode 100644 api/build/routes/login.js delete mode 100644 api/build/routes/login.js.map delete mode 100644 api/build/routes/register.js delete mode 100644 api/build/routes/register.js.map delete mode 100644 api/build/routes/transaction.js delete mode 100644 api/build/routes/transaction.js.map delete mode 100644 api/build/routes/users.js delete mode 100644 api/build/routes/users.js.map delete mode 100644 api/build/services/createAccount.js delete mode 100644 api/build/services/createAccount.js.map delete mode 100644 api/build/services/createStaffs.js delete mode 100644 api/build/services/createStaffs.js.map delete mode 100644 api/build/services/login.js delete mode 100644 api/build/services/login.js.map delete mode 100644 api/build/services/register.js delete mode 100644 api/build/services/register.js.map delete mode 100644 api/build/services/transaction.js delete mode 100644 api/build/services/transaction.js.map delete mode 100644 api/build/services/users.js delete mode 100644 api/build/services/users.js.map delete mode 100644 api/build/test/accounts.js delete mode 100644 api/build/test/accounts.js.map delete mode 100644 api/build/test/signin.js delete mode 100644 api/build/test/signin.js.map delete mode 100644 api/build/test/signup.js delete mode 100644 api/build/test/signup.js.map delete mode 100644 api/build/test/transactions.js delete mode 100644 api/build/test/transactions.js.map delete mode 100644 api/v1/controllers/createAccount.js delete mode 100644 api/v1/controllers/createStaffs.js delete mode 100644 api/v1/controllers/transaction.js delete mode 100644 api/v1/controllers/users.js delete mode 100644 api/v1/routes/createAccount.js delete mode 100644 api/v1/routes/transaction.js delete mode 100644 api/v1/routes/users.js rename {api => server}/dummyJson/accounts.json (100%) rename {api => server}/dummyJson/transactions.json (100%) rename {api => server}/dummyJson/users.json (100%) rename {api => server}/swagger.json (100%) rename {api => server}/v1/app.js (59%) create mode 100644 server/v1/controllers/createAccount.js create mode 100644 server/v1/controllers/createStaffs.js rename {api => server}/v1/controllers/login.js (90%) rename {api => server}/v1/controllers/register.js (100%) create mode 100644 server/v1/controllers/transaction.js create mode 100644 server/v1/controllers/users.js rename {api => server}/v1/helper/registrationHelper.js (100%) create mode 100644 server/v1/middleware/jwt.js rename {api => server}/v1/model/CreateAccount.js (100%) rename {api => server}/v1/model/Transaction.js (100%) rename {api => server}/v1/model/users.js (100%) create mode 100644 server/v1/routes/createAccount.js rename {api => server}/v1/routes/createStaffs.js (58%) rename {api => server}/v1/routes/login.js (100%) rename {api => server}/v1/routes/register.js (100%) create mode 100644 server/v1/routes/transaction.js create mode 100644 server/v1/routes/users.js rename {api => server}/v1/services/createAccount.js (100%) rename {api => server}/v1/services/createStaffs.js (100%) rename {api => server}/v1/services/login.js (100%) rename {api => server}/v1/services/register.js (100%) rename {api => server}/v1/services/transaction.js (100%) rename {api => server}/v1/services/users.js (100%) rename {api => server}/v1/test/accounts.js (100%) rename {api => server}/v1/test/signin.js (100%) rename {api => server}/v1/test/signup.js (100%) rename {api => server}/v1/test/transactions.js (100%) rename {api => server}/v1/test/users.js (100%) diff --git a/api/build/app.js b/api/build/app.js deleted file mode 100644 index 59fde69..0000000 --- a/api/build/app.js +++ /dev/null @@ -1,81 +0,0 @@ -"use strict"; - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports["default"] = void 0; - -var _express = _interopRequireDefault(require("express")); - -var _bodyParser = _interopRequireDefault(require("body-parser")); - -var _cors = _interopRequireDefault(require("cors")); - -var _debug = _interopRequireDefault(require("debug")); - -var _swaggerUiExpress = _interopRequireDefault(require("swagger-ui-express")); - -var _swagger = _interopRequireDefault(require("../swagger")); - -var _register = _interopRequireDefault(require("./routes/register")); - -var _createStaffs = _interopRequireDefault(require("./routes/createStaffs")); - -var _login = _interopRequireDefault(require("./routes/login")); - -var _createAccount = _interopRequireDefault(require("./routes/createAccount")); - -var _transaction = _interopRequireDefault(require("./routes/transaction")); - -var _users = _interopRequireDefault(require("./routes/users")); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } - -// instantiate expressjs -var app = (0, _express["default"])(); -var PORT = process.env.PORT || 5900; -app.use((0, _cors["default"])()); -app.use(_bodyParser["default"].json()); -app.use(_bodyParser["default"].urlencoded({ - extended: false -})); // swagger - -app.use('/api-docs', _swaggerUiExpress["default"].serve, _swaggerUiExpress["default"].setup(_swagger["default"])); -app.use(function (req, res, next) { - res.header('Access-Control-Allow-Origin', '*'); - res.header('Access-Control-Allow-Headers', 'Origin, X-Requested-With, Content-Type, Accept'); - next(); -}); // Index Route - -app.get('/', function (req, res) { - res.send('welcome to Banka API'); -}); - -var checkToken = function checkToken(req, res, next) { - var header = req.headers.authorization; - - if (typeof header !== 'undefined') { - var bearer = header.split(' '); - var token = bearer[1]; - req.token = token; - next(); - } else { - // If header is undefined return Forbidden (403) - res.sendStatus(403); - } -}; // creating the api version route - - -app.use('/api/auth/signup', _register["default"]); -app.use('/api/auth/signin', _login["default"]); -app.use('/api/auth/addstaff', checkToken, _createStaffs["default"]); -app.use('/api/v1/accounts', checkToken, _createAccount["default"]); -app.use('/api/v1/transactions', checkToken, _transaction["default"]); -app.use('/api/v1/users', checkToken, _users["default"]); // listening to our port - -app.listen(PORT, function () { - (0, _debug["default"])('server')("server running on port: ".concat(PORT)); -}); -var _default = app; -exports["default"] = _default; -//# sourceMappingURL=app.js.map \ No newline at end of file diff --git a/api/build/app.js.map b/api/build/app.js.map deleted file mode 100644 index 09d1cbc..0000000 --- a/api/build/app.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["../v1/app.js"],"names":["app","PORT","process","env","use","bodyParser","json","urlencoded","extended","swaggerUi","serve","setup","swaggerDocument","req","res","next","header","get","send","checkToken","headers","authorization","bearer","split","token","sendStatus","RegisterRoute","LoginRoute","CreateStaffRoute","CreateAccountRoute","TransactionRoute","UsersRoute","listen"],"mappings":";;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;;;AAEA;AACA,IAAMA,GAAG,GAAG,0BAAZ;AACA,IAAMC,IAAI,GAAGC,OAAO,CAACC,GAAR,CAAYF,IAAZ,IAAoB,IAAjC;AAEAD,GAAG,CAACI,GAAJ,CAAQ,uBAAR;AAEAJ,GAAG,CAACI,GAAJ,CAAQC,uBAAWC,IAAX,EAAR;AACAN,GAAG,CAACI,GAAJ,CAAQC,uBAAWE,UAAX,CAAsB;AAAEC,EAAAA,QAAQ,EAAE;AAAZ,CAAtB,CAAR,E,CAEA;;AACAR,GAAG,CAACI,GAAJ,CAAQ,WAAR,EAAqBK,6BAAUC,KAA/B,EAAsCD,6BAAUE,KAAV,CAAgBC,mBAAhB,CAAtC;AACAZ,GAAG,CAACI,GAAJ,CAAQ,UAACS,GAAD,EAAMC,GAAN,EAAWC,IAAX,EAAoB;AAC1BD,EAAAA,GAAG,CAACE,MAAJ,CAAW,6BAAX,EAA0C,GAA1C;AACAF,EAAAA,GAAG,CAACE,MAAJ,CAAW,8BAAX,EAA2C,gDAA3C;AACAD,EAAAA,IAAI;AACL,CAJD,E,CAMA;;AACAf,GAAG,CAACiB,GAAJ,CAAQ,GAAR,EAAa,UAACJ,GAAD,EAAMC,GAAN,EAAc;AACzBA,EAAAA,GAAG,CAACI,IAAJ,CAAS,sBAAT;AACD,CAFD;;AAIA,IAAMC,UAAU,GAAG,SAAbA,UAAa,CAACN,GAAD,EAAMC,GAAN,EAAWC,IAAX,EAAoB;AACrC,MAAMC,MAAM,GAAGH,GAAG,CAACO,OAAJ,CAAYC,aAA3B;;AACA,MAAI,OAAOL,MAAP,KAAkB,WAAtB,EAAmC;AACjC,QAAMM,MAAM,GAAGN,MAAM,CAACO,KAAP,CAAa,GAAb,CAAf;AACA,QAAMC,KAAK,GAAGF,MAAM,CAAC,CAAD,CAApB;AACAT,IAAAA,GAAG,CAACW,KAAJ,GAAYA,KAAZ;AACAT,IAAAA,IAAI;AACL,GALD,MAKO;AACL;AACAD,IAAAA,GAAG,CAACW,UAAJ,CAAe,GAAf;AACD;AACF,CAXD,C,CAaA;;;AACAzB,GAAG,CAACI,GAAJ,CAAQ,kBAAR,EAA4BsB,oBAA5B;AACA1B,GAAG,CAACI,GAAJ,CAAQ,kBAAR,EAA4BuB,iBAA5B;AACA3B,GAAG,CAACI,GAAJ,CAAQ,oBAAR,EAA8Be,UAA9B,EAA0CS,wBAA1C;AACA5B,GAAG,CAACI,GAAJ,CAAQ,kBAAR,EAA4Be,UAA5B,EAAwCU,yBAAxC;AACA7B,GAAG,CAACI,GAAJ,CAAQ,sBAAR,EAAgCe,UAAhC,EAA4CW,uBAA5C;AACA9B,GAAG,CAACI,GAAJ,CAAQ,eAAR,EAAyBe,UAAzB,EAAqCY,iBAArC,E,CAEA;;AACA/B,GAAG,CAACgC,MAAJ,CAAW/B,IAAX,EAAiB,YAAM;AACrB,yBAAM,QAAN,oCAA2CA,IAA3C;AACD,CAFD;eAIeD,G","sourcesContent":["import express from 'express';\nimport bodyParser from 'body-parser';\nimport cors from 'cors';\nimport debug from 'debug';\nimport swaggerUi from 'swagger-ui-express';\nimport swaggerDocument from '../swagger';\nimport RegisterRoute from './routes/register';\nimport CreateStaffRoute from './routes/createStaffs';\nimport LoginRoute from './routes/login';\nimport CreateAccountRoute from './routes/createAccount';\nimport TransactionRoute from './routes/transaction';\nimport UsersRoute from './routes/users';\n\n// instantiate expressjs\nconst app = express();\nconst PORT = process.env.PORT || 5900;\n\napp.use(cors());\n\napp.use(bodyParser.json());\napp.use(bodyParser.urlencoded({ extended: false }));\n\n// swagger\napp.use('/api-docs', swaggerUi.serve, swaggerUi.setup(swaggerDocument));\napp.use((req, res, next) => {\n res.header('Access-Control-Allow-Origin', '*');\n res.header('Access-Control-Allow-Headers', 'Origin, X-Requested-With, Content-Type, Accept');\n next();\n});\n\n// Index Route\napp.get('/', (req, res) => {\n res.send('welcome to Banka API');\n});\n\nconst checkToken = (req, res, next) => {\n const header = req.headers.authorization;\n if (typeof header !== 'undefined') {\n const bearer = header.split(' ');\n const token = bearer[1];\n req.token = token;\n next();\n } else {\n // If header is undefined return Forbidden (403)\n res.sendStatus(403);\n }\n};\n\n// creating the api version route\napp.use('/api/auth/signup', RegisterRoute);\napp.use('/api/auth/signin', LoginRoute);\napp.use('/api/auth/addstaff', checkToken, CreateStaffRoute);\napp.use('/api/v1/accounts', checkToken, CreateAccountRoute);\napp.use('/api/v1/transactions', checkToken, TransactionRoute);\napp.use('/api/v1/users', checkToken, UsersRoute);\n\n// listening to our port\napp.listen(PORT, () => {\n debug('server')(`server running on port: ${PORT}`);\n});\n\nexport default app;\n"],"file":"app.js"} \ No newline at end of file diff --git a/api/build/controllers/createAccount.js b/api/build/controllers/createAccount.js deleted file mode 100644 index c800052..0000000 --- a/api/build/controllers/createAccount.js +++ /dev/null @@ -1,72 +0,0 @@ -"use strict"; - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports["default"] = void 0; - -var _jsonwebtoken = _interopRequireDefault(require("jsonwebtoken")); - -var _createAccount = _interopRequireDefault(require("../services/createAccount")); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } - -var CreateAccountController = { - createAccount: function createAccount(req, res) { - var accountData = req.body; // verify jwt token - - _jsonwebtoken["default"].verify(req.token, '5634', function (err, authorizedData) { - if (err) { - return res.json({ - status: 403, - data: 'You must be logged in to create an account' - }).status(403); - } - - var createdAccount = _createAccount["default"].createAccount(accountData, authorizedData); - - return res.json({ - status: 'success', - data: createdAccount - }).status(201); - }); - }, - // patchAccount - patchAccount: function patchAccount(req, res) { - var accountNumber = req.params.accountNumber; - var accountStatus = req.body; - - _jsonwebtoken["default"].verify(req.token, '5634', function (err, authorizedData) { - if (err) { - res.sendStatus(403); - } else { - var updatedAccount = _createAccount["default"].patchAccount(accountNumber, accountStatus, authorizedData); - - return res.json({ - status: 'success', - data: updatedAccount - }).status(201); - } - }); - }, - // deleteAccount - deleteAccount: function deleteAccount(req, res) { - var accountNumber = req.params.accountNumber; - - _jsonwebtoken["default"].verify(req.token, '5634', function (err, authorizedData) { - if (err) { - res.sendStatus(403); - } else { - var deleteAccount = _createAccount["default"].deleteAccount(accountNumber, authorizedData); - - return res.json({ - status: 'success', - data: deleteAccount - }).status(200); - } - }); - } -}; -var _default = CreateAccountController; -exports["default"] = _default; -//# sourceMappingURL=createAccount.js.map \ No newline at end of file diff --git a/api/build/controllers/createAccount.js.map b/api/build/controllers/createAccount.js.map deleted file mode 100644 index 27931a0..0000000 --- a/api/build/controllers/createAccount.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["../../v1/controllers/createAccount.js"],"names":["CreateAccountController","createAccount","req","res","accountData","body","jwt","verify","token","err","authorizedData","json","status","data","createdAccount","CreateAccountService","patchAccount","accountNumber","params","accountStatus","sendStatus","updatedAccount","deleteAccount"],"mappings":";;;;;;;AAAA;;AACA;;;;AAEA,IAAMA,uBAAuB,GAAG;AAC9BC,EAAAA,aAD8B,yBAChBC,GADgB,EACXC,GADW,EACN;AACtB,QAAMC,WAAW,GAAGF,GAAG,CAACG,IAAxB,CADsB,CAEtB;;AACAC,6BAAIC,MAAJ,CAAWL,GAAG,CAACM,KAAf,EAAsB,MAAtB,EAA8B,UAACC,GAAD,EAAMC,cAAN,EAAyB;AACrD,UAAID,GAAJ,EAAS;AACP,eAAON,GAAG,CAACQ,IAAJ,CAAS;AACdC,UAAAA,MAAM,EAAE,GADM;AAEdC,UAAAA,IAAI,EAAE;AAFQ,SAAT,EAGJD,MAHI,CAGG,GAHH,CAAP;AAID;;AACD,UAAME,cAAc,GAAGC,0BAAqBd,aAArB,CAAmCG,WAAnC,EAAgDM,cAAhD,CAAvB;;AACA,aAAOP,GAAG,CAACQ,IAAJ,CAAS;AACdC,QAAAA,MAAM,EAAE,SADM;AAEdC,QAAAA,IAAI,EAAEC;AAFQ,OAAT,EAGJF,MAHI,CAGG,GAHH,CAAP;AAID,KAZD;AAaD,GAjB6B;AAkB9B;AACAI,EAAAA,YAnB8B,wBAmBjBd,GAnBiB,EAmBZC,GAnBY,EAmBP;AAAA,QACbc,aADa,GACKf,GAAG,CAACgB,MADT,CACbD,aADa;AAErB,QAAME,aAAa,GAAGjB,GAAG,CAACG,IAA1B;;AACAC,6BAAIC,MAAJ,CAAWL,GAAG,CAACM,KAAf,EAAsB,MAAtB,EAA8B,UAACC,GAAD,EAAMC,cAAN,EAAyB;AACrD,UAAID,GAAJ,EAAS;AACPN,QAAAA,GAAG,CAACiB,UAAJ,CAAe,GAAf;AACD,OAFD,MAEO;AACL,YAAMC,cAAc,GAAGN,0BAAqBC,YAArB,CAAkCC,aAAlC,EAAiDE,aAAjD,EAAgET,cAAhE,CAAvB;;AACA,eAAOP,GAAG,CAACQ,IAAJ,CAAS;AACdC,UAAAA,MAAM,EAAE,SADM;AAEdC,UAAAA,IAAI,EAAEQ;AAFQ,SAAT,EAGJT,MAHI,CAGG,GAHH,CAAP;AAID;AACF,KAVD;AAWD,GAjC6B;AAkC9B;AACAU,EAAAA,aAnC8B,yBAmChBpB,GAnCgB,EAmCXC,GAnCW,EAmCN;AAAA,QACdc,aADc,GACIf,GAAG,CAACgB,MADR,CACdD,aADc;;AAEtBX,6BAAIC,MAAJ,CAAWL,GAAG,CAACM,KAAf,EAAsB,MAAtB,EAA8B,UAACC,GAAD,EAAMC,cAAN,EAAyB;AACrD,UAAID,GAAJ,EAAS;AACPN,QAAAA,GAAG,CAACiB,UAAJ,CAAe,GAAf;AACD,OAFD,MAEO;AACL,YAAME,aAAa,GAAGP,0BAAqBO,aAArB,CAAmCL,aAAnC,EAAkDP,cAAlD,CAAtB;;AACA,eAAOP,GAAG,CAACQ,IAAJ,CAAS;AACdC,UAAAA,MAAM,EAAE,SADM;AAEdC,UAAAA,IAAI,EAAES;AAFQ,SAAT,EAGJV,MAHI,CAGG,GAHH,CAAP;AAID;AACF,KAVD;AAWD;AAhD6B,CAAhC;eAmDeZ,uB","sourcesContent":["import jwt from 'jsonwebtoken';\nimport CreateAccountService from '../services/createAccount';\n\nconst CreateAccountController = {\n createAccount(req, res) {\n const accountData = req.body;\n // verify jwt token\n jwt.verify(req.token, '5634', (err, authorizedData) => {\n if (err) {\n return res.json({\n status: 403,\n data: 'You must be logged in to create an account',\n }).status(403);\n }\n const createdAccount = CreateAccountService.createAccount(accountData, authorizedData);\n return res.json({\n status: 'success',\n data: createdAccount,\n }).status(201);\n });\n },\n // patchAccount\n patchAccount(req, res) {\n const { accountNumber } = req.params;\n const accountStatus = req.body;\n jwt.verify(req.token, '5634', (err, authorizedData) => {\n if (err) {\n res.sendStatus(403);\n } else {\n const updatedAccount = CreateAccountService.patchAccount(accountNumber, accountStatus, authorizedData);\n return res.json({\n status: 'success',\n data: updatedAccount,\n }).status(201);\n }\n });\n },\n // deleteAccount\n deleteAccount(req, res) {\n const { accountNumber } = req.params;\n jwt.verify(req.token, '5634', (err, authorizedData) => {\n if (err) {\n res.sendStatus(403);\n } else {\n const deleteAccount = CreateAccountService.deleteAccount(accountNumber, authorizedData);\n return res.json({\n status: 'success',\n data: deleteAccount,\n }).status(200);\n }\n });\n },\n};\n\nexport default CreateAccountController;\n"],"file":"createAccount.js"} \ No newline at end of file diff --git a/api/build/controllers/createStaffs.js b/api/build/controllers/createStaffs.js deleted file mode 100644 index 86fecf6..0000000 --- a/api/build/controllers/createStaffs.js +++ /dev/null @@ -1,34 +0,0 @@ -"use strict"; - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports["default"] = void 0; - -var _jsonwebtoken = _interopRequireDefault(require("jsonwebtoken")); - -var _createStaffs = _interopRequireDefault(require("../services/createStaffs")); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } - -var CreateStaffController = { - createStaff: function createStaff(req, res) { - var userData = req.body; // eslint-disable-next-line no-unused-expressions - - _jsonwebtoken["default"].verify(req.token, '5634', function (err, authorizedData) { - if (err) { - res.sendStatus(403); - } else { - var createdStaff = _createStaffs["default"].createStaffUser(userData, authorizedData); - - return res.json({ - status: 'success', - data: createdStaff - }).status(201); - } - }); - } -}; -var _default = CreateStaffController; -exports["default"] = _default; -//# sourceMappingURL=createStaffs.js.map \ No newline at end of file diff --git a/api/build/controllers/createStaffs.js.map b/api/build/controllers/createStaffs.js.map deleted file mode 100644 index ce760bb..0000000 --- a/api/build/controllers/createStaffs.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["../../v1/controllers/createStaffs.js"],"names":["CreateStaffController","createStaff","req","res","userData","body","jwt","verify","token","err","authorizedData","sendStatus","createdStaff","CreateStaffService","createStaffUser","json","status","data"],"mappings":";;;;;;;AAAA;;AACA;;;;AAEA,IAAMA,qBAAqB,GAAG;AAC5BC,EAAAA,WAD4B,uBAChBC,GADgB,EACXC,GADW,EACN;AACpB,QAAMC,QAAQ,GAAGF,GAAG,CAACG,IAArB,CADoB,CAEpB;;AACAC,6BAAIC,MAAJ,CAAWL,GAAG,CAACM,KAAf,EAAsB,MAAtB,EAA8B,UAACC,GAAD,EAAMC,cAAN,EAAyB;AACrD,UAAID,GAAJ,EAAS;AACPN,QAAAA,GAAG,CAACQ,UAAJ,CAAe,GAAf;AACD,OAFD,MAEO;AACL,YAAMC,YAAY,GAAGC,yBAClBC,eADkB,CACFV,QADE,EACQM,cADR,CAArB;;AAEA,eAAOP,GAAG,CAACY,IAAJ,CAAS;AACdC,UAAAA,MAAM,EAAE,SADM;AAEdC,UAAAA,IAAI,EAAEL;AAFQ,SAAT,EAGJI,MAHI,CAGG,GAHH,CAAP;AAID;AACF,KAXD;AAYD;AAhB2B,CAA9B;eAmBehB,qB","sourcesContent":["import jwt from 'jsonwebtoken';\nimport CreateStaffService from '../services/createStaffs';\n\nconst CreateStaffController = {\n createStaff(req, res) {\n const userData = req.body;\n // eslint-disable-next-line no-unused-expressions\n jwt.verify(req.token, '5634', (err, authorizedData) => {\n if (err) {\n res.sendStatus(403);\n } else {\n const createdStaff = CreateStaffService\n .createStaffUser(userData, authorizedData);\n return res.json({\n status: 'success',\n data: createdStaff,\n }).status(201);\n }\n });\n },\n};\n\nexport default CreateStaffController;\n"],"file":"createStaffs.js"} \ No newline at end of file diff --git a/api/build/controllers/login.js b/api/build/controllers/login.js deleted file mode 100644 index 770c861..0000000 --- a/api/build/controllers/login.js +++ /dev/null @@ -1,46 +0,0 @@ -"use strict"; - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports["default"] = void 0; - -var _jsonwebtoken = _interopRequireDefault(require("jsonwebtoken")); - -var _login = _interopRequireDefault(require("../services/login")); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } - -var LoginController = { - loginUser: function loginUser(req, res) { - var userData = req.body; - - var loggedUser = _login["default"].loginUser(userData); - - return _jsonwebtoken["default"].sign({ - loggedUser: loggedUser - }, '5634', function (err, token) { - if (err) { - console.log(err); - } - - if (loggedUser[0] === 'Invalid format' || loggedUser[0] === 'incorrect credentials') { - res.json({ - status: 'error', - data: 'incorrect data' - }); - } else { - res.json({ - status: 'success', - data: { - loggedUser: loggedUser, - token: token - } - }).status(201); - } - }); - } -}; -var _default = LoginController; -exports["default"] = _default; -//# sourceMappingURL=login.js.map \ No newline at end of file diff --git a/api/build/controllers/login.js.map b/api/build/controllers/login.js.map deleted file mode 100644 index d41fd99..0000000 --- a/api/build/controllers/login.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["../../v1/controllers/login.js"],"names":["LoginController","loginUser","req","res","userData","body","loggedUser","LoginService","jwt","sign","err","token","console","log","json","status","data"],"mappings":";;;;;;;AAAA;;AACA;;;;AAEA,IAAMA,eAAe,GAAG;AACtBC,EAAAA,SADsB,qBACZC,GADY,EACPC,GADO,EACF;AAClB,QAAMC,QAAQ,GAAGF,GAAG,CAACG,IAArB;;AACA,QAAMC,UAAU,GAAGC,kBAAaN,SAAb,CAAuBG,QAAvB,CAAnB;;AAEA,WAAOI,yBAAIC,IAAJ,CAAS;AAAEH,MAAAA,UAAU,EAAVA;AAAF,KAAT,EAAyB,MAAzB,EAAiC,UAACI,GAAD,EAAMC,KAAN,EAAgB;AACtD,UAAID,GAAJ,EAAS;AAAEE,QAAAA,OAAO,CAACC,GAAR,CAAYH,GAAZ;AAAmB;;AAC9B,UAAIJ,UAAU,CAAC,CAAD,CAAV,KAAkB,gBAAlB,IAAsCA,UAAU,CAAC,CAAD,CAAV,KAAkB,uBAA5D,EAAqF;AACnFH,QAAAA,GAAG,CAACW,IAAJ,CAAS;AACPC,UAAAA,MAAM,EAAE,OADD;AAEPC,UAAAA,IAAI,EAAE;AAFC,SAAT;AAID,OALD,MAKO;AACLb,QAAAA,GAAG,CAACW,IAAJ,CAAS;AACPC,UAAAA,MAAM,EAAE,SADD;AAEPC,UAAAA,IAAI,EAAE;AACJV,YAAAA,UAAU,EAAVA,UADI;AAEJK,YAAAA,KAAK,EAALA;AAFI;AAFC,SAAT,EAMGI,MANH,CAMU,GANV;AAOD;AACF,KAhBM,CAAP;AAiBD;AAtBqB,CAAxB;eAyBef,e","sourcesContent":["import jwt from 'jsonwebtoken';\nimport LoginService from '../services/login';\n\nconst LoginController = {\n loginUser(req, res) {\n const userData = req.body;\n const loggedUser = LoginService.loginUser(userData);\n\n return jwt.sign({ loggedUser }, '5634', (err, token) => {\n if (err) { console.log(err); }\n if (loggedUser[0] === 'Invalid format' || loggedUser[0] === 'incorrect credentials') {\n res.json({\n status: 'error',\n data: 'incorrect data',\n });\n } else {\n res.json({\n status: 'success',\n data: {\n loggedUser,\n token,\n },\n }).status(201);\n }\n });\n },\n};\n\nexport default LoginController;\n"],"file":"login.js"} \ No newline at end of file diff --git a/api/build/controllers/register.js b/api/build/controllers/register.js deleted file mode 100644 index ad7c88a..0000000 --- a/api/build/controllers/register.js +++ /dev/null @@ -1,26 +0,0 @@ -"use strict"; - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports["default"] = void 0; - -var _register = _interopRequireDefault(require("../services/register")); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } - -var RegisterController = { - registerUser: function registerUser(req, res) { - var userData = req.body; - - var createdUser = _register["default"].registerUser(userData); - - return res.json({ - status: 'success', - data: createdUser - }).status(201); - } -}; -var _default = RegisterController; -exports["default"] = _default; -//# sourceMappingURL=register.js.map \ No newline at end of file diff --git a/api/build/controllers/register.js.map b/api/build/controllers/register.js.map deleted file mode 100644 index 9f4217a..0000000 --- a/api/build/controllers/register.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["../../v1/controllers/register.js"],"names":["RegisterController","registerUser","req","res","userData","body","createdUser","RegisterService","json","status","data"],"mappings":";;;;;;;AAAA;;;;AAEA,IAAMA,kBAAkB,GAAG;AACzBC,EAAAA,YADyB,wBACZC,GADY,EACPC,GADO,EACF;AACrB,QAAMC,QAAQ,GAAGF,GAAG,CAACG,IAArB;;AACA,QAAMC,WAAW,GAAGC,qBAAgBN,YAAhB,CAA6BG,QAA7B,CAApB;;AACA,WAAOD,GAAG,CAACK,IAAJ,CAAS;AACdC,MAAAA,MAAM,EAAE,SADM;AAEdC,MAAAA,IAAI,EAAEJ;AAFQ,KAAT,EAGJG,MAHI,CAGG,GAHH,CAAP;AAID;AARwB,CAA3B;eAWeT,kB","sourcesContent":["import RegisterService from '../services/register';\n\nconst RegisterController = {\n registerUser(req, res) {\n const userData = req.body;\n const createdUser = RegisterService.registerUser(userData);\n return res.json({\n status: 'success',\n data: createdUser,\n }).status(201);\n },\n};\n\nexport default RegisterController;\n"],"file":"register.js"} \ No newline at end of file diff --git a/api/build/controllers/transaction.js b/api/build/controllers/transaction.js deleted file mode 100644 index 95f4eea..0000000 --- a/api/build/controllers/transaction.js +++ /dev/null @@ -1,53 +0,0 @@ -"use strict"; - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports["default"] = void 0; - -var _jsonwebtoken = _interopRequireDefault(require("jsonwebtoken")); - -var _transaction = _interopRequireDefault(require("../services/transaction")); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } - -/* eslint-disable consistent-return */ -var TransactionController = { - debitTransaction: function debitTransaction(req, res) { - var accountNumber = req.params.accountNumber; - var transactionData = req.body; // verify jwt token - - _jsonwebtoken["default"].verify(req.token, '5634', function (err, authorizedData) { - if (err) { - res.sendStatus(403); - } else { - var debitedData = _transaction["default"].debitTransaction(accountNumber, authorizedData, transactionData); - - return res.json({ - status: 'success', - data: debitedData - }).status(201); - } - }); - }, - creditTransaction: function creditTransaction(req, res) { - var accountNumber = req.params.accountNumber; - var transactionData = req.body; // verify jwt token - - _jsonwebtoken["default"].verify(req.token, '5634', function (err, authorizedData) { - if (err) { - res.sendStatus(403); - } else { - var creditedData = _transaction["default"].creditTransaction(accountNumber, authorizedData, transactionData); - - return res.json({ - status: 'success', - data: creditedData - }).status(201); - } - }); - } -}; -var _default = TransactionController; -exports["default"] = _default; -//# sourceMappingURL=transaction.js.map \ No newline at end of file diff --git a/api/build/controllers/transaction.js.map b/api/build/controllers/transaction.js.map deleted file mode 100644 index f0a3003..0000000 --- a/api/build/controllers/transaction.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["../../v1/controllers/transaction.js"],"names":["TransactionController","debitTransaction","req","res","accountNumber","params","transactionData","body","jwt","verify","token","err","authorizedData","sendStatus","debitedData","TransactionService","json","status","data","creditTransaction","creditedData"],"mappings":";;;;;;;AACA;;AACA;;;;AAFA;AAIA,IAAMA,qBAAqB,GAAG;AAC5BC,EAAAA,gBAD4B,4BACXC,GADW,EACNC,GADM,EACD;AAAA,QACjBC,aADiB,GACCF,GAAG,CAACG,MADL,CACjBD,aADiB;AAEzB,QAAME,eAAe,GAAGJ,GAAG,CAACK,IAA5B,CAFyB,CAGzB;;AACAC,6BAAIC,MAAJ,CAAWP,GAAG,CAACQ,KAAf,EAAsB,MAAtB,EAA8B,UAACC,GAAD,EAAMC,cAAN,EAAyB;AACrD,UAAID,GAAJ,EAAS;AACPR,QAAAA,GAAG,CAACU,UAAJ,CAAe,GAAf;AACD,OAFD,MAEO;AACL,YAAMC,WAAW,GAAGC,wBACjBd,gBADiB,CACAG,aADA,EACeQ,cADf,EAC+BN,eAD/B,CAApB;;AAEA,eAAOH,GAAG,CAACa,IAAJ,CAAS;AACdC,UAAAA,MAAM,EAAE,SADM;AAEdC,UAAAA,IAAI,EAAEJ;AAFQ,SAAT,EAGJG,MAHI,CAGG,GAHH,CAAP;AAID;AACF,KAXD;AAYD,GAjB2B;AAkB5BE,EAAAA,iBAlB4B,6BAkBVjB,GAlBU,EAkBLC,GAlBK,EAkBA;AAAA,QAClBC,aADkB,GACAF,GAAG,CAACG,MADJ,CAClBD,aADkB;AAE1B,QAAME,eAAe,GAAGJ,GAAG,CAACK,IAA5B,CAF0B,CAG1B;;AACAC,6BAAIC,MAAJ,CAAWP,GAAG,CAACQ,KAAf,EAAsB,MAAtB,EAA8B,UAACC,GAAD,EAAMC,cAAN,EAAyB;AACrD,UAAID,GAAJ,EAAS;AACPR,QAAAA,GAAG,CAACU,UAAJ,CAAe,GAAf;AACD,OAFD,MAEO;AACL,YAAMO,YAAY,GAAGL,wBAClBI,iBADkB,CACAf,aADA,EACeQ,cADf,EAC+BN,eAD/B,CAArB;;AAEA,eAAOH,GAAG,CAACa,IAAJ,CAAS;AACdC,UAAAA,MAAM,EAAE,SADM;AAEdC,UAAAA,IAAI,EAAEE;AAFQ,SAAT,EAGJH,MAHI,CAGG,GAHH,CAAP;AAID;AACF,KAXD;AAYD;AAlC2B,CAA9B;eAqCejB,qB","sourcesContent":["/* eslint-disable consistent-return */\nimport jwt from 'jsonwebtoken';\nimport TransactionService from '../services/transaction';\n\nconst TransactionController = {\n debitTransaction(req, res) {\n const { accountNumber } = req.params;\n const transactionData = req.body;\n // verify jwt token\n jwt.verify(req.token, '5634', (err, authorizedData) => {\n if (err) {\n res.sendStatus(403);\n } else {\n const debitedData = TransactionService\n .debitTransaction(accountNumber, authorizedData, transactionData);\n return res.json({\n status: 'success',\n data: debitedData,\n }).status(201);\n }\n });\n },\n creditTransaction(req, res) {\n const { accountNumber } = req.params;\n const transactionData = req.body;\n // verify jwt token\n jwt.verify(req.token, '5634', (err, authorizedData) => {\n if (err) {\n res.sendStatus(403);\n } else {\n const creditedData = TransactionService\n .creditTransaction(accountNumber, authorizedData, transactionData);\n return res.json({\n status: 'success',\n data: creditedData,\n }).status(201);\n }\n });\n },\n};\n\nexport default TransactionController;\n"],"file":"transaction.js"} \ No newline at end of file diff --git a/api/build/controllers/users.js b/api/build/controllers/users.js deleted file mode 100644 index 1b7023c..0000000 --- a/api/build/controllers/users.js +++ /dev/null @@ -1,49 +0,0 @@ -"use strict"; - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports["default"] = void 0; - -var _jsonwebtoken = _interopRequireDefault(require("jsonwebtoken")); - -var _users = _interopRequireDefault(require("../services/users")); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } - -var UsersController = { - getAllUsers: function getAllUsers(req, res) { - // verify jwt token - _jsonwebtoken["default"].verify(req.token, '5634', function (err, authorizedData) { - if (err) { - res.sendStatus(403); - } else { - var allUsers = _users["default"].getAllUsers(authorizedData); - - return res.json({ - status: 'success', - data: allUsers - }).status(201); - } - }); - }, - deleteUser: function deleteUser(req, res) { - var id = req.params.id; // verify jwt token - - _jsonwebtoken["default"].verify(req.token, '5634', function (err, authorizedData) { - if (err) { - res.sendStatus(403); - } else { - var deleteUser = _users["default"].deleteUser(id, authorizedData); - - return res.json({ - status: 'success', - data: deleteUser - }).status(201); - } - }); - } -}; -var _default = UsersController; -exports["default"] = _default; -//# sourceMappingURL=users.js.map \ No newline at end of file diff --git a/api/build/controllers/users.js.map b/api/build/controllers/users.js.map deleted file mode 100644 index fec7a4e..0000000 --- a/api/build/controllers/users.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["../../v1/controllers/users.js"],"names":["UsersController","getAllUsers","req","res","jwt","verify","token","err","authorizedData","sendStatus","allUsers","UserService","json","status","data","deleteUser","id","params"],"mappings":";;;;;;;AAAA;;AACA;;;;AAEA,IAAMA,eAAe,GAAG;AACtBC,EAAAA,WADsB,uBACVC,GADU,EACLC,GADK,EACA;AACpB;AACAC,6BAAIC,MAAJ,CAAWH,GAAG,CAACI,KAAf,EAAsB,MAAtB,EAA8B,UAACC,GAAD,EAAMC,cAAN,EAAyB;AACrD,UAAID,GAAJ,EAAS;AACPJ,QAAAA,GAAG,CAACM,UAAJ,CAAe,GAAf;AACD,OAFD,MAEO;AACL,YAAMC,QAAQ,GAAGC,kBAAYV,WAAZ,CAAwBO,cAAxB,CAAjB;;AACA,eAAOL,GAAG,CAACS,IAAJ,CAAS;AACdC,UAAAA,MAAM,EAAE,SADM;AAEdC,UAAAA,IAAI,EAAEJ;AAFQ,SAAT,EAGJG,MAHI,CAGG,GAHH,CAAP;AAID;AACF,KAVD;AAWD,GAdqB;AAgBtBE,EAAAA,UAhBsB,sBAgBXb,GAhBW,EAgBNC,GAhBM,EAgBD;AAAA,QACXa,EADW,GACJd,GAAG,CAACe,MADA,CACXD,EADW,EAEnB;;AACAZ,6BAAIC,MAAJ,CAAWH,GAAG,CAACI,KAAf,EAAsB,MAAtB,EAA8B,UAACC,GAAD,EAAMC,cAAN,EAAyB;AACrD,UAAID,GAAJ,EAAS;AACPJ,QAAAA,GAAG,CAACM,UAAJ,CAAe,GAAf;AACD,OAFD,MAEO;AACL,YAAMM,UAAU,GAAGJ,kBAAYI,UAAZ,CAAuBC,EAAvB,EAA2BR,cAA3B,CAAnB;;AACA,eAAOL,GAAG,CAACS,IAAJ,CAAS;AACdC,UAAAA,MAAM,EAAE,SADM;AAEdC,UAAAA,IAAI,EAAEC;AAFQ,SAAT,EAGJF,MAHI,CAGG,GAHH,CAAP;AAID;AACF,KAVD;AAWD;AA9BqB,CAAxB;eAiCeb,e","sourcesContent":["import jwt from 'jsonwebtoken';\nimport UserService from '../services/users';\n\nconst UsersController = {\n getAllUsers(req, res) {\n // verify jwt token\n jwt.verify(req.token, '5634', (err, authorizedData) => {\n if (err) {\n res.sendStatus(403);\n } else {\n const allUsers = UserService.getAllUsers(authorizedData);\n return res.json({\n status: 'success',\n data: allUsers,\n }).status(201);\n }\n });\n },\n\n deleteUser(req, res) {\n const { id } = req.params;\n // verify jwt token\n jwt.verify(req.token, '5634', (err, authorizedData) => {\n if (err) {\n res.sendStatus(403);\n } else {\n const deleteUser = UserService.deleteUser(id, authorizedData);\n return res.json({\n status: 'success',\n data: deleteUser,\n }).status(201);\n }\n });\n },\n};\n\nexport default UsersController;\n"],"file":"users.js"} \ No newline at end of file diff --git a/api/build/helper/registrationHelper.js b/api/build/helper/registrationHelper.js deleted file mode 100644 index fddcc21..0000000 --- a/api/build/helper/registrationHelper.js +++ /dev/null @@ -1,65 +0,0 @@ -"use strict"; - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports["default"] = void 0; - -/* eslint-disable one-var */ - -/* eslint-disable one-var-declaration-per-line */ -var registrationHelper = { - registrationHelper: function registrationHelper(users, userData) { - var firstnameAndLastnameRegex = /^[a-zA-Z ]{2,15}$/; - var emailRegex = /^([a-zA-Z0-9_\-\.]+)@([a-zA-Z0-9_\-\.]+)\.([a-zA-Z]{2,10})$/; - var passwordRegex = /^(?=.*?[A-Z])(?=.*?[a-z])(?=.*?[0-9])(?=.*?[#?!@$%^&*-]).{8,}$/; - var returnValue = []; - var emailPassed, firstnamePassed, lastnamePassed, passwordPassed; - var usersLength = users.length; - var newId = usersLength + 1; // eslint-disable-next-line no-param-reassign - - userData.id = newId; // Check if email is valid - - if (emailRegex.test(userData.email)) { - var checkEmail = false; // check if email is exist - - for (var i = 0; i <= usersLength - 1; i++) { - if (users[i].email === userData.email) { - checkEmail = true; - } - } // gives output - - - if (checkEmail) { - returnValue.push('email already exist'); - } else { - emailPassed = true; - } - } else { - returnValue.push('Email is required'); - } - - if (firstnameAndLastnameRegex.test(userData.firstName) && typeof userData.firstName !== 'undefined' && userData.firstName !== null) { - firstnamePassed = true; - } else { - returnValue.push('Firstname required'); - } - - if (firstnameAndLastnameRegex.test(userData.lastName) && typeof userData.lastName !== 'undefined' && userData.lastName !== null) { - lastnamePassed = true; - } else { - returnValue.push('Lastname required'); - } - - if (passwordRegex.test(userData.password) && typeof userData.password !== 'undefined' && userData.password !== null) { - passwordPassed = true; - } else { - returnValue.push('Password should contain atleast 8 characters, 1 uppercase letter, 1 lowercase letter, 1 number and 1 symbol or character'); - } - - return [firstnamePassed, lastnamePassed, emailPassed, passwordPassed, returnValue]; - } -}; -var _default = registrationHelper; -exports["default"] = _default; -//# sourceMappingURL=registrationHelper.js.map \ No newline at end of file diff --git a/api/build/helper/registrationHelper.js.map b/api/build/helper/registrationHelper.js.map deleted file mode 100644 index c8051df..0000000 --- a/api/build/helper/registrationHelper.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["../../v1/helper/registrationHelper.js"],"names":["registrationHelper","users","userData","firstnameAndLastnameRegex","emailRegex","passwordRegex","returnValue","emailPassed","firstnamePassed","lastnamePassed","passwordPassed","usersLength","length","newId","id","test","email","checkEmail","i","push","firstName","lastName","password"],"mappings":";;;;;;;AAAA;;AACA;AACA,IAAMA,kBAAkB,GAAG;AACzBA,EAAAA,kBADyB,8BACNC,KADM,EACCC,QADD,EACW;AAClC,QAAMC,yBAAyB,GAAG,mBAAlC;AACA,QAAMC,UAAU,GAAG,6DAAnB;AACA,QAAMC,aAAa,GAAG,gEAAtB;AACA,QAAMC,WAAW,GAAG,EAApB;AACA,QAAIC,WAAJ,EAAiBC,eAAjB,EAAkCC,cAAlC,EAAkDC,cAAlD;AAEA,QAAMC,WAAW,GAAGV,KAAK,CAACW,MAA1B;AACA,QAAMC,KAAK,GAAGF,WAAW,GAAG,CAA5B,CARkC,CASlC;;AACAT,IAAAA,QAAQ,CAACY,EAAT,GAAcD,KAAd,CAVkC,CAYlC;;AACA,QAAIT,UAAU,CAACW,IAAX,CAAgBb,QAAQ,CAACc,KAAzB,CAAJ,EAAqC;AACnC,UAAIC,UAAU,GAAG,KAAjB,CADmC,CAGnC;;AACA,WAAK,IAAIC,CAAC,GAAG,CAAb,EAAgBA,CAAC,IAAIP,WAAW,GAAG,CAAnC,EAAsCO,CAAC,EAAvC,EAA2C;AACzC,YAAIjB,KAAK,CAACiB,CAAD,CAAL,CAASF,KAAT,KAAmBd,QAAQ,CAACc,KAAhC,EAAuC;AACrCC,UAAAA,UAAU,GAAG,IAAb;AACD;AACF,OARkC,CAUnC;;;AACA,UAAIA,UAAJ,EAAgB;AACdX,QAAAA,WAAW,CAACa,IAAZ,CAAiB,qBAAjB;AACD,OAFD,MAEO;AACLZ,QAAAA,WAAW,GAAG,IAAd;AACD;AACF,KAhBD,MAgBO;AACLD,MAAAA,WAAW,CAACa,IAAZ,CAAiB,mBAAjB;AACD;;AAED,QAAIhB,yBAAyB,CAACY,IAA1B,CAA+Bb,QAAQ,CAACkB,SAAxC,KAAsD,OAAOlB,QAAQ,CAACkB,SAAhB,KAA8B,WAApF,IAAmGlB,QAAQ,CAACkB,SAAT,KAAuB,IAA9H,EAAoI;AAClIZ,MAAAA,eAAe,GAAG,IAAlB;AACD,KAFD,MAEO;AACLF,MAAAA,WAAW,CAACa,IAAZ,CAAiB,oBAAjB;AACD;;AACD,QAAIhB,yBAAyB,CAACY,IAA1B,CAA+Bb,QAAQ,CAACmB,QAAxC,KAAqD,OAAOnB,QAAQ,CAACmB,QAAhB,KAA6B,WAAlF,IAAiGnB,QAAQ,CAACmB,QAAT,KAAsB,IAA3H,EAAiI;AAC/HZ,MAAAA,cAAc,GAAG,IAAjB;AACD,KAFD,MAEO;AACLH,MAAAA,WAAW,CAACa,IAAZ,CAAiB,mBAAjB;AACD;;AACD,QAAId,aAAa,CAACU,IAAd,CAAmBb,QAAQ,CAACoB,QAA5B,KAAyC,OAAOpB,QAAQ,CAACoB,QAAhB,KAA6B,WAAtE,IAAqFpB,QAAQ,CAACoB,QAAT,KAAsB,IAA/G,EAAqH;AACnHZ,MAAAA,cAAc,GAAG,IAAjB;AACD,KAFD,MAEO;AACLJ,MAAAA,WAAW,CAACa,IAAZ,CAAiB,0HAAjB;AACD;;AAED,WAAO,CACLX,eADK,EAELC,cAFK,EAGLF,WAHK,EAILG,cAJK,EAKLJ,WALK,CAAP;AAOD;AAzDwB,CAA3B;eA4DeN,kB","sourcesContent":["/* eslint-disable one-var */\n/* eslint-disable one-var-declaration-per-line */\nconst registrationHelper = {\n registrationHelper(users, userData) {\n const firstnameAndLastnameRegex = /^[a-zA-Z ]{2,15}$/;\n const emailRegex = /^([a-zA-Z0-9_\\-\\.]+)@([a-zA-Z0-9_\\-\\.]+)\\.([a-zA-Z]{2,10})$/;\n const passwordRegex = /^(?=.*?[A-Z])(?=.*?[a-z])(?=.*?[0-9])(?=.*?[#?!@$%^&*-]).{8,}$/;\n const returnValue = [];\n let emailPassed, firstnamePassed, lastnamePassed, passwordPassed;\n\n const usersLength = users.length;\n const newId = usersLength + 1;\n // eslint-disable-next-line no-param-reassign\n userData.id = newId;\n\n // Check if email is valid\n if (emailRegex.test(userData.email)) {\n let checkEmail = false;\n\n // check if email is exist\n for (let i = 0; i <= usersLength - 1; i++) {\n if (users[i].email === userData.email) {\n checkEmail = true;\n }\n }\n\n // gives output\n if (checkEmail) {\n returnValue.push('email already exist');\n } else {\n emailPassed = true;\n }\n } else {\n returnValue.push('Email is required');\n }\n\n if (firstnameAndLastnameRegex.test(userData.firstName) && typeof userData.firstName !== 'undefined' && userData.firstName !== null) {\n firstnamePassed = true;\n } else {\n returnValue.push('Firstname required');\n }\n if (firstnameAndLastnameRegex.test(userData.lastName) && typeof userData.lastName !== 'undefined' && userData.lastName !== null) {\n lastnamePassed = true;\n } else {\n returnValue.push('Lastname required');\n }\n if (passwordRegex.test(userData.password) && typeof userData.password !== 'undefined' && userData.password !== null) {\n passwordPassed = true;\n } else {\n returnValue.push('Password should contain atleast 8 characters, 1 uppercase letter, 1 lowercase letter, 1 number and 1 symbol or character');\n }\n\n return [\n firstnamePassed,\n lastnamePassed,\n emailPassed,\n passwordPassed,\n returnValue,\n ];\n },\n};\n\nexport default registrationHelper;\n"],"file":"registrationHelper.js"} \ No newline at end of file diff --git a/api/build/model/CreateAccount.js b/api/build/model/CreateAccount.js deleted file mode 100644 index ca2d8cd..0000000 --- a/api/build/model/CreateAccount.js +++ /dev/null @@ -1,26 +0,0 @@ -"use strict"; - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports["default"] = void 0; - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -var Account = function Account() { - _classCallCheck(this, Account); - - this.id = null; - this.accountNumber = null; - this.createdOn = null; - this.owner = null; // user id - - this.type = null; // savings, current - - this.status = null; // draft, active, or dormant - - this.balance = null; -}; - -exports["default"] = Account; -//# sourceMappingURL=CreateAccount.js.map \ No newline at end of file diff --git a/api/build/model/CreateAccount.js.map b/api/build/model/CreateAccount.js.map deleted file mode 100644 index 659e42f..0000000 --- a/api/build/model/CreateAccount.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["../../v1/model/CreateAccount.js"],"names":["Account","id","accountNumber","createdOn","owner","type","status","balance"],"mappings":";;;;;;;;;IAAqBA,O,GACnB,mBAAc;AAAA;;AACZ,OAAKC,EAAL,GAAU,IAAV;AACA,OAAKC,aAAL,GAAqB,IAArB;AACA,OAAKC,SAAL,GAAiB,IAAjB;AACA,OAAKC,KAAL,GAAa,IAAb,CAJY,CAIO;;AACnB,OAAKC,IAAL,GAAY,IAAZ,CALY,CAKM;;AAClB,OAAKC,MAAL,GAAc,IAAd,CANY,CAMQ;;AACpB,OAAKC,OAAL,GAAe,IAAf;AACD,C","sourcesContent":["export default class Account {\n constructor() {\n this.id = null;\n this.accountNumber = null;\n this.createdOn = null;\n this.owner = null; // user id\n this.type = null; // savings, current\n this.status = null; // draft, active, or dormant\n this.balance = null;\n }\n}\n"],"file":"CreateAccount.js"} \ No newline at end of file diff --git a/api/build/model/Transaction.js b/api/build/model/Transaction.js deleted file mode 100644 index 6f78a18..0000000 --- a/api/build/model/Transaction.js +++ /dev/null @@ -1,26 +0,0 @@ -"use strict"; - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports["default"] = void 0; - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -var Transaction = function Transaction() { - _classCallCheck(this, Transaction); - - this.id = null; - this.createdOn = null; - this.type = null; // credit or debit - - this.accountNumber = null; - this.cashier = null; // cashier id - - this.amount = null; - this.oldBalance = null; - this.newBalance = null; -}; - -exports["default"] = Transaction; -//# sourceMappingURL=Transaction.js.map \ No newline at end of file diff --git a/api/build/model/Transaction.js.map b/api/build/model/Transaction.js.map deleted file mode 100644 index ea52581..0000000 --- a/api/build/model/Transaction.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["../../v1/model/Transaction.js"],"names":["Transaction","id","createdOn","type","accountNumber","cashier","amount","oldBalance","newBalance"],"mappings":";;;;;;;;;IAAqBA,W,GACnB,uBAAc;AAAA;;AACZ,OAAKC,EAAL,GAAU,IAAV;AACA,OAAKC,SAAL,GAAiB,IAAjB;AACA,OAAKC,IAAL,GAAY,IAAZ,CAHY,CAGM;;AAClB,OAAKC,aAAL,GAAqB,IAArB;AACA,OAAKC,OAAL,GAAe,IAAf,CALY,CAKS;;AACrB,OAAKC,MAAL,GAAc,IAAd;AACA,OAAKC,UAAL,GAAkB,IAAlB;AACA,OAAKC,UAAL,GAAkB,IAAlB;AACD,C","sourcesContent":["export default class Transaction {\n constructor() {\n this.id = null;\n this.createdOn = null;\n this.type = null; // credit or debit\n this.accountNumber = null;\n this.cashier = null; // cashier id\n this.amount = null;\n this.oldBalance = null;\n this.newBalance = null;\n }\n}\n"],"file":"Transaction.js"} \ No newline at end of file diff --git a/api/build/model/users.js b/api/build/model/users.js deleted file mode 100644 index ae8f3cf..0000000 --- a/api/build/model/users.js +++ /dev/null @@ -1,24 +0,0 @@ -"use strict"; - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports["default"] = void 0; - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -var User = function User() { - _classCallCheck(this, User); - - this.id = null; - this.email = null; - this.firstName = null; - this.lastName = null; - this.password = null; - this.type = null; // client or staff - - this.isAdmin = null; // must be a staff user account -}; - -exports["default"] = User; -//# sourceMappingURL=users.js.map \ No newline at end of file diff --git a/api/build/model/users.js.map b/api/build/model/users.js.map deleted file mode 100644 index efd78b6..0000000 --- a/api/build/model/users.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["../../v1/model/users.js"],"names":["User","id","email","firstName","lastName","password","type","isAdmin"],"mappings":";;;;;;;;;IAAqBA,I,GACnB,gBAAc;AAAA;;AACZ,OAAKC,EAAL,GAAU,IAAV;AACA,OAAKC,KAAL,GAAa,IAAb;AACA,OAAKC,SAAL,GAAiB,IAAjB;AACA,OAAKC,QAAL,GAAgB,IAAhB;AACA,OAAKC,QAAL,GAAgB,IAAhB;AACA,OAAKC,IAAL,GAAY,IAAZ,CANY,CAMM;;AAClB,OAAKC,OAAL,GAAe,IAAf,CAPY,CAOS;AACtB,C","sourcesContent":["export default class User {\n constructor() {\n this.id = null;\n this.email = null;\n this.firstName = null;\n this.lastName = null;\n this.password = null;\n this.type = null; // client or staff\n this.isAdmin = null; // must be a staff user account\n }\n}\n"],"file":"users.js"} \ No newline at end of file diff --git a/api/build/routes/createAccount.js b/api/build/routes/createAccount.js deleted file mode 100644 index 160fed1..0000000 --- a/api/build/routes/createAccount.js +++ /dev/null @@ -1,22 +0,0 @@ -"use strict"; - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports["default"] = void 0; - -var _express = _interopRequireDefault(require("express")); - -var _createAccount = _interopRequireDefault(require("../controllers/createAccount")); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } - -var router = _express["default"].Router(); // creating our routes - - -router.post('/', _createAccount["default"].createAccount); -router.patch('/:accountNumber', _createAccount["default"].patchAccount); -router["delete"]('/:accountNumber', _createAccount["default"].deleteAccount); -var _default = router; -exports["default"] = _default; -//# sourceMappingURL=createAccount.js.map \ No newline at end of file diff --git a/api/build/routes/createAccount.js.map b/api/build/routes/createAccount.js.map deleted file mode 100644 index 9e1c471..0000000 --- a/api/build/routes/createAccount.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["../../v1/routes/createAccount.js"],"names":["router","express","Router","post","CreateAccountController","createAccount","patch","patchAccount","deleteAccount"],"mappings":";;;;;;;AAAA;;AACA;;;;AAEA,IAAMA,MAAM,GAAGC,oBAAQC,MAAR,EAAf,C,CAEA;;;AACAF,MAAM,CAACG,IAAP,CAAY,GAAZ,EAAiBC,0BAAwBC,aAAzC;AACAL,MAAM,CAACM,KAAP,CAAa,iBAAb,EAAgCF,0BAAwBG,YAAxD;AACAP,MAAM,UAAN,CAAc,iBAAd,EAAiCI,0BAAwBI,aAAzD;eAEeR,M","sourcesContent":["import express from 'express';\nimport CreateAccountController from '../controllers/createAccount';\n\nconst router = express.Router();\n\n// creating our routes\nrouter.post('/', CreateAccountController.createAccount);\nrouter.patch('/:accountNumber', CreateAccountController.patchAccount);\nrouter.delete('/:accountNumber', CreateAccountController.deleteAccount);\n\nexport default router;\n"],"file":"createAccount.js"} \ No newline at end of file diff --git a/api/build/routes/createStaffs.js b/api/build/routes/createStaffs.js deleted file mode 100644 index a8ad275..0000000 --- a/api/build/routes/createStaffs.js +++ /dev/null @@ -1,20 +0,0 @@ -"use strict"; - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports["default"] = void 0; - -var _express = _interopRequireDefault(require("express")); - -var _createStaffs = _interopRequireDefault(require("../controllers/createStaffs")); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } - -var router = _express["default"].Router(); // creating our routes - - -router.post('/', _createStaffs["default"].createStaff); -var _default = router; -exports["default"] = _default; -//# sourceMappingURL=createStaffs.js.map \ No newline at end of file diff --git a/api/build/routes/createStaffs.js.map b/api/build/routes/createStaffs.js.map deleted file mode 100644 index 099dc3b..0000000 --- a/api/build/routes/createStaffs.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["../../v1/routes/createStaffs.js"],"names":["router","express","Router","post","CreateStaffController","createStaff"],"mappings":";;;;;;;AAAA;;AACA;;;;AAEA,IAAMA,MAAM,GAAGC,oBAAQC,MAAR,EAAf,C,CAEA;;;AACAF,MAAM,CAACG,IAAP,CAAY,GAAZ,EAAiBC,yBAAsBC,WAAvC;eAEeL,M","sourcesContent":["import express from 'express';\nimport CreateStaffController from '../controllers/createStaffs';\n\nconst router = express.Router();\n\n// creating our routes\nrouter.post('/', CreateStaffController.createStaff);\n\nexport default router;\n"],"file":"createStaffs.js"} \ No newline at end of file diff --git a/api/build/routes/login.js b/api/build/routes/login.js deleted file mode 100644 index 8e58890..0000000 --- a/api/build/routes/login.js +++ /dev/null @@ -1,20 +0,0 @@ -"use strict"; - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports["default"] = void 0; - -var _express = _interopRequireDefault(require("express")); - -var _login = _interopRequireDefault(require("../controllers/login")); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } - -var router = _express["default"].Router(); // creating our routes - - -router.post('/', _login["default"].loginUser); -var _default = router; -exports["default"] = _default; -//# sourceMappingURL=login.js.map \ No newline at end of file diff --git a/api/build/routes/login.js.map b/api/build/routes/login.js.map deleted file mode 100644 index 67b8bc0..0000000 --- a/api/build/routes/login.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["../../v1/routes/login.js"],"names":["router","express","Router","post","LoginController","loginUser"],"mappings":";;;;;;;AAAA;;AACA;;;;AAEA,IAAMA,MAAM,GAAGC,oBAAQC,MAAR,EAAf,C,CAEA;;;AACAF,MAAM,CAACG,IAAP,CAAY,GAAZ,EAAiBC,kBAAgBC,SAAjC;eAEeL,M","sourcesContent":["import express from 'express';\nimport LoginController from '../controllers/login';\n\nconst router = express.Router();\n\n// creating our routes\nrouter.post('/', LoginController.loginUser);\n\nexport default router;\n"],"file":"login.js"} \ No newline at end of file diff --git a/api/build/routes/register.js b/api/build/routes/register.js deleted file mode 100644 index 6d7f62d..0000000 --- a/api/build/routes/register.js +++ /dev/null @@ -1,20 +0,0 @@ -"use strict"; - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports["default"] = void 0; - -var _express = _interopRequireDefault(require("express")); - -var _register = _interopRequireDefault(require("../controllers/register")); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } - -var router = _express["default"].Router(); // creating our routes - - -router.post('/', _register["default"].registerUser); -var _default = router; -exports["default"] = _default; -//# sourceMappingURL=register.js.map \ No newline at end of file diff --git a/api/build/routes/register.js.map b/api/build/routes/register.js.map deleted file mode 100644 index 5e339e9..0000000 --- a/api/build/routes/register.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["../../v1/routes/register.js"],"names":["router","express","Router","post","RegisterController","registerUser"],"mappings":";;;;;;;AAAA;;AACA;;;;AAEA,IAAMA,MAAM,GAAGC,oBAAQC,MAAR,EAAf,C,CAEA;;;AACAF,MAAM,CAACG,IAAP,CAAY,GAAZ,EAAiBC,qBAAmBC,YAApC;eAEeL,M","sourcesContent":["import express from 'express';\nimport RegisterController from '../controllers/register';\n\nconst router = express.Router();\n\n// creating our routes\nrouter.post('/', RegisterController.registerUser);\n\nexport default router;\n"],"file":"register.js"} \ No newline at end of file diff --git a/api/build/routes/transaction.js b/api/build/routes/transaction.js deleted file mode 100644 index a119f89..0000000 --- a/api/build/routes/transaction.js +++ /dev/null @@ -1,21 +0,0 @@ -"use strict"; - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports["default"] = void 0; - -var _express = _interopRequireDefault(require("express")); - -var _transaction = _interopRequireDefault(require("../controllers/transaction")); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } - -var router = _express["default"].Router(); // creating our routes - - -router.post('/:accountNumber/debit', _transaction["default"].debitTransaction); -router.post('/:accountNumber/credit', _transaction["default"].creditTransaction); -var _default = router; -exports["default"] = _default; -//# sourceMappingURL=transaction.js.map \ No newline at end of file diff --git a/api/build/routes/transaction.js.map b/api/build/routes/transaction.js.map deleted file mode 100644 index 6236b86..0000000 --- a/api/build/routes/transaction.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["../../v1/routes/transaction.js"],"names":["router","express","Router","post","TransactionController","debitTransaction","creditTransaction"],"mappings":";;;;;;;AAAA;;AACA;;;;AAEA,IAAMA,MAAM,GAAGC,oBAAQC,MAAR,EAAf,C,CAEA;;;AACAF,MAAM,CAACG,IAAP,CAAY,uBAAZ,EAAqCC,wBAAsBC,gBAA3D;AACAL,MAAM,CAACG,IAAP,CAAY,wBAAZ,EAAsCC,wBAAsBE,iBAA5D;eAEeN,M","sourcesContent":["import express from 'express';\nimport TransactionController from '../controllers/transaction';\n\nconst router = express.Router();\n\n// creating our routes\nrouter.post('/:accountNumber/debit', TransactionController.debitTransaction);\nrouter.post('/:accountNumber/credit', TransactionController.creditTransaction);\n\nexport default router;\n"],"file":"transaction.js"} \ No newline at end of file diff --git a/api/build/routes/users.js b/api/build/routes/users.js deleted file mode 100644 index 5e5bdf8..0000000 --- a/api/build/routes/users.js +++ /dev/null @@ -1,21 +0,0 @@ -"use strict"; - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports["default"] = void 0; - -var _express = _interopRequireDefault(require("express")); - -var _users = _interopRequireDefault(require("../controllers/users")); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } - -var router = _express["default"].Router(); // creating our routes - - -router.get('/', _users["default"].getAllUsers); -router["delete"]('/:id', _users["default"].deleteUser); -var _default = router; -exports["default"] = _default; -//# sourceMappingURL=users.js.map \ No newline at end of file diff --git a/api/build/routes/users.js.map b/api/build/routes/users.js.map deleted file mode 100644 index 39e416e..0000000 --- a/api/build/routes/users.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["../../v1/routes/users.js"],"names":["router","express","Router","get","UsersController","getAllUsers","deleteUser"],"mappings":";;;;;;;AAAA;;AACA;;;;AAEA,IAAMA,MAAM,GAAGC,oBAAQC,MAAR,EAAf,C,CAEA;;;AACAF,MAAM,CAACG,GAAP,CAAW,GAAX,EAAgBC,kBAAgBC,WAAhC;AACAL,MAAM,UAAN,CAAc,MAAd,EAAsBI,kBAAgBE,UAAtC;eAEeN,M","sourcesContent":["import express from 'express';\nimport UsersController from '../controllers/users';\n\nconst router = express.Router();\n\n// creating our routes\nrouter.get('/', UsersController.getAllUsers);\nrouter.delete('/:id', UsersController.deleteUser);\n\nexport default router;\n"],"file":"users.js"} \ No newline at end of file diff --git a/api/build/services/createAccount.js b/api/build/services/createAccount.js deleted file mode 100644 index 645f97c..0000000 --- a/api/build/services/createAccount.js +++ /dev/null @@ -1,82 +0,0 @@ -"use strict"; - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports["default"] = void 0; - -var _accounts = _interopRequireDefault(require("../../dummyJson/accounts")); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } - -/* eslint-disable no-param-reassign */ -var accounts = _accounts["default"].accounts; -var CreateAccountService = { - createAccount: function createAccount(accountData, userData) { - var accountsLength = accounts.length; - var newId = accountsLength + 1; - var accountNumberGenerator = Math.floor(Math.random() * 1000000000) + 3000000000; - var date = new Date(); - var createdOn = "".concat(date.getDate(), "/").concat(date.getMonth() + 1, "/").concat(date.getFullYear()); - var owner = userData.loggedUser.id; - var _userData$loggedUser = userData.loggedUser, - firstName = _userData$loggedUser.firstName, - lastName = _userData$loggedUser.lastName, - email = _userData$loggedUser.email; - var balance = 0.00; - var status = 'active'; // assign data - - accountData.id = newId; - accountData.firstName = firstName; - accountData.lastName = lastName; - accountData.email = email; - accountData.accountNumber = accountNumberGenerator; - accountData.createdOn = createdOn; - accountData.owner = owner; - accountData.status = status; - accountData.balance = balance; - accounts.push(accountData); - return accountData; - }, - patchAccount: function patchAccount(accountNumber, accountUpdate, staff) { - var account; - - if (staff.loggedUser.type === 'staff' || staff.loggedUser.isAdmin === true) { - // eslint-disable-next-line no-plusplus - for (var i = 0; i <= accounts.length - 1; i++) { - // eslint-disable-next-line eqeqeq - if (accounts[i].accountNumber == accountNumber) { - accounts[i].status = accountUpdate.status; - account = accounts[i]; - } - } - } else { - account = 'Sorry you don\'t have permission to perform this task'; - } - - return account; - }, - deleteAccount: function deleteAccount(accountNumber, staff) { - var account; - - if (staff.loggedUser.type === 'staff' || staff.loggedUser.isAdmin === true) { - var Account = accounts.find(function (mAccount) { - return mAccount.accountNumber == accountNumber; - }); - - if (typeof Account !== 'undefined') { - accounts.splice(Account.id - 1, 1); - account = 'account deleted'; - } else { - account = 'no account found or account has been deleted'; - } - } else { - account = 'Sorry you don\'t have permission to perform this task'; - } - - return account; - } -}; -var _default = CreateAccountService; -exports["default"] = _default; -//# sourceMappingURL=createAccount.js.map \ No newline at end of file diff --git a/api/build/services/createAccount.js.map b/api/build/services/createAccount.js.map deleted file mode 100644 index 548e8fb..0000000 --- a/api/build/services/createAccount.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["../../v1/services/createAccount.js"],"names":["accounts","accountsData","CreateAccountService","createAccount","accountData","userData","accountsLength","length","newId","accountNumberGenerator","Math","floor","random","date","Date","createdOn","getDate","getMonth","getFullYear","owner","loggedUser","id","firstName","lastName","email","balance","status","accountNumber","push","patchAccount","accountUpdate","staff","account","type","isAdmin","i","deleteAccount","Account","find","mAccount","splice"],"mappings":"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","sourcesContent":["/* eslint-disable no-param-reassign */\nimport accountsData from '../../dummyJson/accounts';\n\nconst { accounts } = accountsData;\n\nconst CreateAccountService = {\n createAccount(accountData, userData) {\n const accountsLength = accounts.length;\n const newId = accountsLength + 1;\n const accountNumberGenerator = Math.floor(Math.random() * 1000000000) + 3000000000;\n const date = new Date();\n const createdOn = `${date.getDate()}/${date.getMonth() + 1}/${date.getFullYear()}`;\n const owner = userData.loggedUser.id;\n const { firstName, lastName, email } = userData.loggedUser;\n const balance = 0.00;\n const status = 'active';\n\n // assign data\n accountData.id = newId;\n accountData.firstName = firstName;\n accountData.lastName = lastName;\n accountData.email = email;\n accountData.accountNumber = accountNumberGenerator;\n accountData.createdOn = createdOn;\n accountData.owner = owner;\n accountData.status = status;\n accountData.balance = balance;\n accounts.push(accountData);\n return accountData;\n },\n patchAccount(accountNumber, accountUpdate, staff) {\n let account;\n\n if (staff.loggedUser.type === 'staff' || staff.loggedUser.isAdmin === true) {\n // eslint-disable-next-line no-plusplus\n for (let i = 0; i <= accounts.length - 1; i++) {\n // eslint-disable-next-line eqeqeq\n if (accounts[i].accountNumber == accountNumber) {\n accounts[i].status = accountUpdate.status;\n account = accounts[i];\n }\n }\n } else {\n account = 'Sorry you don\\'t have permission to perform this task';\n }\n return account;\n },\n deleteAccount(accountNumber, staff) {\n let account;\n\n if (staff.loggedUser.type === 'staff' || staff.loggedUser.isAdmin === true) {\n const Account = accounts.find(mAccount => mAccount.accountNumber == accountNumber);\n\n if (typeof Account !== 'undefined') {\n accounts.splice(Account.id - 1, 1);\n account = 'account deleted';\n } else {\n account = 'no account found or account has been deleted';\n }\n } else {\n account = 'Sorry you don\\'t have permission to perform this task';\n }\n return account;\n },\n};\n\nexport default CreateAccountService;\n"],"file":"createAccount.js"} \ No newline at end of file diff --git a/api/build/services/createStaffs.js b/api/build/services/createStaffs.js deleted file mode 100644 index 5bcfd79..0000000 --- a/api/build/services/createStaffs.js +++ /dev/null @@ -1,41 +0,0 @@ -"use strict"; - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports["default"] = void 0; - -var _users = _interopRequireDefault(require("../../dummyJson/users")); - -var _registrationHelper = _interopRequireDefault(require("../helper/registrationHelper")); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } - -/* eslint-disable no-param-reassign */ -var users = _users["default"].users; -var CreateStaffService = { - createStaffUser: function createStaffUser(userData, admin) { - var returnData = _registrationHelper["default"].registrationHelper(users, userData); - - var returnValue; // eslint-disable-next-line max-len - - if (returnData[0] === true && returnData[1] === true && returnData[2] === true && returnData[3] === true) { - if (admin.loggedUser.isAdmin === true) { - userData.type = 'staff'; - userData.isAdmin = false; - users.push(userData); - returnValue = userData; - } else { - returnValue = 'You must be an admin to create staffs'; - } - } else { - // eslint-disable-next-line prefer-destructuring - returnValue = returnData[4]; - } - - return returnValue; - } -}; -var _default = CreateStaffService; -exports["default"] = _default; -//# sourceMappingURL=createStaffs.js.map \ No newline at end of file diff --git a/api/build/services/createStaffs.js.map b/api/build/services/createStaffs.js.map deleted file mode 100644 index 999ce9a..0000000 --- a/api/build/services/createStaffs.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["../../v1/services/createStaffs.js"],"names":["users","usersData","CreateStaffService","createStaffUser","userData","admin","returnData","registrationHelper","returnValue","loggedUser","isAdmin","type","push"],"mappings":";;;;;;;AACA;;AACA;;;;AAFA;IAIQA,K,GAAUC,iB,CAAVD,K;AAER,IAAME,kBAAkB,GAAG;AACzBC,EAAAA,eADyB,2BACTC,QADS,EACCC,KADD,EACQ;AAC/B,QAAMC,UAAU,GAAGC,+BAAmBA,kBAAnB,CAAsCP,KAAtC,EAA6CI,QAA7C,CAAnB;;AACA,QAAII,WAAJ,CAF+B,CAG/B;;AACA,QAAIF,UAAU,CAAC,CAAD,CAAV,KAAkB,IAAlB,IAA0BA,UAAU,CAAC,CAAD,CAAV,KAAkB,IAA5C,IAAoDA,UAAU,CAAC,CAAD,CAAV,KAAkB,IAAtE,IAA8EA,UAAU,CAAC,CAAD,CAAV,KAAkB,IAApG,EAA0G;AACxG,UAAID,KAAK,CAACI,UAAN,CAAiBC,OAAjB,KAA6B,IAAjC,EAAuC;AACrCN,QAAAA,QAAQ,CAACO,IAAT,GAAgB,OAAhB;AACAP,QAAAA,QAAQ,CAACM,OAAT,GAAmB,KAAnB;AACAV,QAAAA,KAAK,CAACY,IAAN,CAAWR,QAAX;AACAI,QAAAA,WAAW,GAAGJ,QAAd;AACD,OALD,MAKO;AACLI,QAAAA,WAAW,GAAG,uCAAd;AACD;AACF,KATD,MASO;AACL;AACAA,MAAAA,WAAW,GAAGF,UAAU,CAAC,CAAD,CAAxB;AACD;;AACD,WAAOE,WAAP;AACD;AAnBwB,CAA3B;eAsBeN,kB","sourcesContent":["/* eslint-disable no-param-reassign */\nimport usersData from '../../dummyJson/users';\nimport registrationHelper from '../helper/registrationHelper';\n\nconst { users } = usersData;\n\nconst CreateStaffService = {\n createStaffUser(userData, admin) {\n const returnData = registrationHelper.registrationHelper(users, userData);\n let returnValue;\n // eslint-disable-next-line max-len\n if (returnData[0] === true && returnData[1] === true && returnData[2] === true && returnData[3] === true) {\n if (admin.loggedUser.isAdmin === true) {\n userData.type = 'staff';\n userData.isAdmin = false;\n users.push(userData);\n returnValue = userData;\n } else {\n returnValue = 'You must be an admin to create staffs';\n }\n } else {\n // eslint-disable-next-line prefer-destructuring\n returnValue = returnData[4];\n }\n return returnValue;\n },\n};\n\nexport default CreateStaffService;\n"],"file":"createStaffs.js"} \ No newline at end of file diff --git a/api/build/services/login.js b/api/build/services/login.js deleted file mode 100644 index 7d9d3f1..0000000 --- a/api/build/services/login.js +++ /dev/null @@ -1,43 +0,0 @@ -"use strict"; - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports["default"] = void 0; - -var _users = _interopRequireDefault(require("../../dummyJson/users")); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } - -var users = _users["default"].users; -var LoginService = { - loginUser: function loginUser(userData) { - var emailRegex = /^([a-zA-Z0-9_\-\.]+)@([a-zA-Z0-9_\-\.]+)\.([a-zA-Z]{2,10})$/; - var passwordRegex = /^(?=.*?[A-Z])(?=.*?[a-z])(?=.*?[0-9])(?=.*?[#?!@$%^&*-]).{8,}$/; - var returnValue = []; // Check if email and password is valid - - if (emailRegex.test(userData.email) && passwordRegex.test(userData.password)) { - var checkDetails = false; // check if account exist - // eslint-disable-next-line no-plusplus - - for (var i = 0; i <= users.length - 1; i++) { - if (users[i].email === userData.email && users[i].password === userData.password) { - returnValue = users[i]; - checkDetails = true; - } - } // gives output - - - if (!checkDetails) { - returnValue.push('incorrect credentials'); - } - } else { - returnValue.push('Invalid format'); - } - - return returnValue; - } -}; -var _default = LoginService; -exports["default"] = _default; -//# sourceMappingURL=login.js.map \ No newline at end of file diff --git a/api/build/services/login.js.map b/api/build/services/login.js.map deleted file mode 100644 index 774dbb6..0000000 --- a/api/build/services/login.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["../../v1/services/login.js"],"names":["users","usersData","LoginService","loginUser","userData","emailRegex","passwordRegex","returnValue","test","email","password","checkDetails","i","length","push"],"mappings":";;;;;;;AAAA;;;;IAEQA,K,GAAUC,iB,CAAVD,K;AAER,IAAME,YAAY,GAAG;AACnBC,EAAAA,SADmB,qBACTC,QADS,EACC;AAClB,QAAMC,UAAU,GAAG,6DAAnB;AACA,QAAMC,aAAa,GAAG,gEAAtB;AACA,QAAIC,WAAW,GAAG,EAAlB,CAHkB,CAKlB;;AACA,QAAIF,UAAU,CAACG,IAAX,CAAgBJ,QAAQ,CAACK,KAAzB,KAAmCH,aAAa,CAACE,IAAd,CAAmBJ,QAAQ,CAACM,QAA5B,CAAvC,EAA8E;AAC5E,UAAIC,YAAY,GAAG,KAAnB,CAD4E,CAG5E;AACA;;AACA,WAAK,IAAIC,CAAC,GAAG,CAAb,EAAgBA,CAAC,IAAIZ,KAAK,CAACa,MAAN,GAAe,CAApC,EAAuCD,CAAC,EAAxC,EAA4C;AAC1C,YAAIZ,KAAK,CAACY,CAAD,CAAL,CAASH,KAAT,KAAmBL,QAAQ,CAACK,KAA5B,IAAqCT,KAAK,CAACY,CAAD,CAAL,CAASF,QAAT,KAAsBN,QAAQ,CAACM,QAAxE,EAAkF;AAChFH,UAAAA,WAAW,GAAGP,KAAK,CAACY,CAAD,CAAnB;AACAD,UAAAA,YAAY,GAAG,IAAf;AACD;AACF,OAV2E,CAY5E;;;AACA,UAAI,CAACA,YAAL,EAAmB;AACjBJ,QAAAA,WAAW,CAACO,IAAZ,CAAiB,uBAAjB;AACD;AACF,KAhBD,MAgBO;AACLP,MAAAA,WAAW,CAACO,IAAZ,CAAiB,gBAAjB;AACD;;AAED,WAAOP,WAAP;AACD;AA5BkB,CAArB;eA+BeL,Y","sourcesContent":["import usersData from '../../dummyJson/users';\n\nconst { users } = usersData;\n\nconst LoginService = {\n loginUser(userData) {\n const emailRegex = /^([a-zA-Z0-9_\\-\\.]+)@([a-zA-Z0-9_\\-\\.]+)\\.([a-zA-Z]{2,10})$/;\n const passwordRegex = /^(?=.*?[A-Z])(?=.*?[a-z])(?=.*?[0-9])(?=.*?[#?!@$%^&*-]).{8,}$/;\n let returnValue = [];\n\n // Check if email and password is valid\n if (emailRegex.test(userData.email) && passwordRegex.test(userData.password)) {\n let checkDetails = false;\n\n // check if account exist\n // eslint-disable-next-line no-plusplus\n for (let i = 0; i <= users.length - 1; i++) {\n if (users[i].email === userData.email && users[i].password === userData.password) {\n returnValue = users[i];\n checkDetails = true;\n }\n }\n\n // gives output\n if (!checkDetails) {\n returnValue.push('incorrect credentials');\n }\n } else {\n returnValue.push('Invalid format');\n }\n\n return returnValue;\n },\n};\n\nexport default LoginService;\n"],"file":"login.js"} \ No newline at end of file diff --git a/api/build/services/register.js b/api/build/services/register.js deleted file mode 100644 index 361556f..0000000 --- a/api/build/services/register.js +++ /dev/null @@ -1,37 +0,0 @@ -"use strict"; - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports["default"] = void 0; - -var _users = _interopRequireDefault(require("../../dummyJson/users")); - -var _registrationHelper = _interopRequireDefault(require("../helper/registrationHelper")); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } - -/* eslint-disable no-param-reassign */ -var users = _users["default"].users; -var RegisterService = { - registerUser: function registerUser(userData) { - var returnData = _registrationHelper["default"].registrationHelper(users, userData); - - var returnValue; // eslint-disable-next-line max-len - - if (returnData[0] === true && returnData[1] === true && returnData[2] === true && returnData[3] === true) { - userData.type = 'client'; - userData.isAdmin = false; - users.push(userData); - returnValue = userData; - } else { - // eslint-disable-next-line prefer-destructuring - returnValue = returnData[4]; - } - - return returnValue; - } -}; -var _default = RegisterService; -exports["default"] = _default; -//# sourceMappingURL=register.js.map \ No newline at end of file diff --git a/api/build/services/register.js.map b/api/build/services/register.js.map deleted file mode 100644 index 0f7f34e..0000000 --- a/api/build/services/register.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["../../v1/services/register.js"],"names":["users","usersData","RegisterService","registerUser","userData","returnData","registrationHelper","returnValue","type","isAdmin","push"],"mappings":";;;;;;;AACA;;AACA;;;;AAFA;IAIQA,K,GAAUC,iB,CAAVD,K;AAER,IAAME,eAAe,GAAG;AACtBC,EAAAA,YADsB,wBACTC,QADS,EACC;AACrB,QAAMC,UAAU,GAAGC,+BAAmBA,kBAAnB,CAAsCN,KAAtC,EAA6CI,QAA7C,CAAnB;;AACA,QAAIG,WAAJ,CAFqB,CAGrB;;AACA,QAAIF,UAAU,CAAC,CAAD,CAAV,KAAkB,IAAlB,IAA0BA,UAAU,CAAC,CAAD,CAAV,KAAkB,IAA5C,IAAoDA,UAAU,CAAC,CAAD,CAAV,KAAkB,IAAtE,IAA8EA,UAAU,CAAC,CAAD,CAAV,KAAkB,IAApG,EAA0G;AACxGD,MAAAA,QAAQ,CAACI,IAAT,GAAgB,QAAhB;AACAJ,MAAAA,QAAQ,CAACK,OAAT,GAAmB,KAAnB;AACAT,MAAAA,KAAK,CAACU,IAAN,CAAWN,QAAX;AACAG,MAAAA,WAAW,GAAGH,QAAd;AACD,KALD,MAKO;AACL;AACAG,MAAAA,WAAW,GAAGF,UAAU,CAAC,CAAD,CAAxB;AACD;;AACD,WAAOE,WAAP;AACD;AAfqB,CAAxB;eAkBeL,e","sourcesContent":["/* eslint-disable no-param-reassign */\nimport usersData from '../../dummyJson/users';\nimport registrationHelper from '../helper/registrationHelper';\n\nconst { users } = usersData;\n\nconst RegisterService = {\n registerUser(userData) {\n const returnData = registrationHelper.registrationHelper(users, userData);\n let returnValue;\n // eslint-disable-next-line max-len\n if (returnData[0] === true && returnData[1] === true && returnData[2] === true && returnData[3] === true) {\n userData.type = 'client';\n userData.isAdmin = false;\n users.push(userData);\n returnValue = userData;\n } else {\n // eslint-disable-next-line prefer-destructuring\n returnValue = returnData[4];\n }\n return returnValue;\n },\n};\n\nexport default RegisterService;\n"],"file":"register.js"} \ No newline at end of file diff --git a/api/build/services/transaction.js b/api/build/services/transaction.js deleted file mode 100644 index 4d43c4c..0000000 --- a/api/build/services/transaction.js +++ /dev/null @@ -1,75 +0,0 @@ -"use strict"; - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports["default"] = void 0; - -var _transactions = _interopRequireDefault(require("../../dummyJson/transactions")); - -var _accounts = _interopRequireDefault(require("../../dummyJson/accounts")); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } - -/* eslint-disable no-param-reassign */ -var accounts = _accounts["default"].accounts; -var transactions = _transactions["default"].transactions; -var TransactionService = { - debitTransaction: function debitTransaction(accountNumber, loggedInUser, transactionData) { - if (loggedInUser.loggedUser.type === 'staff') { - // eslint-disable-next-line no-plusplus - for (var i = 0; i <= accounts.length - 1; i++) { - // eslint-disable-next-line eqeqeq - if (accounts[i].accountNumber == accountNumber) { - var date = new Date(); - var createdOn = "".concat(date.getDate(), "/").concat(date.getMonth() + 1, "/").concat(date.getFullYear()); - var transactionLength = transactions.length; - var newId = transactionLength + 1; - transactionData.id = newId; - transactionData.createdOn = createdOn; - transactionData.type = 'debit'; - transactionData.accountNumber = accountNumber; - transactionData.cashier = loggedInUser.loggedUser.id; - transactionData.amount = transactionData.amount; - transactionData.oldBalance = accounts[i].balance; - var newBalance = accounts[i].balance - transactionData.amount; - transactionData.newBalance = newBalance; - transactions.push(transactionData); - return transactionData; - } - } - } - - return 'you must be a staff to perform this transaction'; - }, - creditTransaction: function creditTransaction(accountNumber, loggedInUser, transactionData) { - if (loggedInUser.loggedUser.type === 'staff') { - // eslint-disable-next-line no-plusplus - for (var i = 0; i <= accounts.length - 1; i++) { - // eslint-disable-next-line eqeqeq - if (accounts[i].accountNumber == accountNumber) { - var date = new Date(); - var createdOn = "".concat(date.getDate(), "/").concat(date.getMonth() + 1, "/").concat(date.getFullYear()); - var transactionLength = transactions.length; - var newId = transactionLength + 1; - transactionData.id = newId; - transactionData.createdOn = createdOn; - transactionData.type = 'credit'; - transactionData.accountNumber = accountNumber; - transactionData.cashier = loggedInUser.loggedUser.id; - transactionData.amount = transactionData.amount; - transactionData.oldBalance = accounts[i].balance; - var newBalance = accounts[i].balance + transactionData.amount; - transactionData.newBalance = newBalance; - transactions.push(transactionData); - return transactionData; - } - } - } - - return 'you must be a staff to perform this transaction'; - } -}; -var _default = TransactionService; -exports["default"] = _default; -//# sourceMappingURL=transaction.js.map \ No newline at end of file diff --git a/api/build/services/transaction.js.map b/api/build/services/transaction.js.map deleted file mode 100644 index 97c64d9..0000000 --- a/api/build/services/transaction.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["../../v1/services/transaction.js"],"names":["accounts","accountsData","transactions","transactionsData","TransactionService","debitTransaction","accountNumber","loggedInUser","transactionData","loggedUser","type","i","length","date","Date","createdOn","getDate","getMonth","getFullYear","transactionLength","newId","id","cashier","amount","oldBalance","balance","newBalance","push","creditTransaction"],"mappings":"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","sourcesContent":["/* eslint-disable no-param-reassign */\nimport transactionsData from '../../dummyJson/transactions';\nimport accountsData from '../../dummyJson/accounts';\n\nconst { accounts } = accountsData;\n\nconst { transactions } = transactionsData;\n\nconst TransactionService = {\n debitTransaction(accountNumber, loggedInUser, transactionData) {\n if (loggedInUser.loggedUser.type === 'staff') {\n // eslint-disable-next-line no-plusplus\n for (let i = 0; i <= accounts.length - 1; i++) {\n // eslint-disable-next-line eqeqeq\n if (accounts[i].accountNumber == accountNumber) {\n const date = new Date();\n const createdOn = `${date.getDate()}/${date.getMonth() + 1}/${date.getFullYear()}`;\n const transactionLength = transactions.length;\n const newId = transactionLength + 1;\n transactionData.id = newId;\n transactionData.createdOn = createdOn;\n transactionData.type = 'debit';\n transactionData.accountNumber = accountNumber;\n transactionData.cashier = loggedInUser.loggedUser.id;\n transactionData.amount = transactionData.amount;\n transactionData.oldBalance = accounts[i].balance;\n const newBalance = accounts[i].balance - transactionData.amount;\n transactionData.newBalance = newBalance;\n transactions.push(transactionData);\n return transactionData;\n }\n }\n }\n return 'you must be a staff to perform this transaction';\n },\n creditTransaction(accountNumber, loggedInUser, transactionData) {\n if (loggedInUser.loggedUser.type === 'staff') {\n // eslint-disable-next-line no-plusplus\n for (let i = 0; i <= accounts.length - 1; i++) {\n // eslint-disable-next-line eqeqeq\n if (accounts[i].accountNumber == accountNumber) {\n const date = new Date();\n const createdOn = `${date.getDate()}/${date.getMonth() + 1}/${date.getFullYear()}`;\n const transactionLength = transactions.length;\n const newId = transactionLength + 1;\n transactionData.id = newId;\n transactionData.createdOn = createdOn;\n transactionData.type = 'credit';\n transactionData.accountNumber = accountNumber;\n transactionData.cashier = loggedInUser.loggedUser.id;\n transactionData.amount = transactionData.amount;\n transactionData.oldBalance = accounts[i].balance;\n const newBalance = accounts[i].balance + transactionData.amount;\n transactionData.newBalance = newBalance;\n transactions.push(transactionData);\n return transactionData;\n }\n }\n }\n return 'you must be a staff to perform this transaction';\n },\n};\n\nexport default TransactionService;\n"],"file":"transaction.js"} \ No newline at end of file diff --git a/api/build/services/users.js b/api/build/services/users.js deleted file mode 100644 index 76b9389..0000000 --- a/api/build/services/users.js +++ /dev/null @@ -1,52 +0,0 @@ -"use strict"; - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports["default"] = void 0; - -var _users = _interopRequireDefault(require("../../dummyJson/users")); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } - -var users = _users["default"].users; -var UsersServices = { - getAllUsers: function getAllUsers(staff) { - if (staff.loggedUser.type === 'staff' || staff.loggedUser.isAdmin === true) { - return users.map(function (user) { - return user; - }); - } - - return 'You don\'t have permission to view this page'; - }, - deleteUser: function deleteUser(id, staff) { - var deleteMsg; - - if (staff.loggedUser.type === 'staff') { - var User = users.find(function (user) { - return user.id == id && user.type != 'staff'; - }); - - if (typeof User === 'undefined') { - deleteMsg = 'Sorry you can not delete a staff'; - } else { - users.splice(User.id - 1, 1); - deleteMsg = 'deleted'; - } - } else if (staff.loggedUser.isAdmin === true) { - var _User = users.find(function (user) { - return user.id == id; - }); - - users.splice(_User.id - 1, 1); - } else { - deleteMsg = 'You don\'t have permission to do this task'; - } - - return deleteMsg; - } -}; -var _default = UsersServices; -exports["default"] = _default; -//# sourceMappingURL=users.js.map \ No newline at end of file diff --git a/api/build/services/users.js.map b/api/build/services/users.js.map deleted file mode 100644 index aab8c66..0000000 --- a/api/build/services/users.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["../../v1/services/users.js"],"names":["users","dummyUsers","UsersServices","getAllUsers","staff","loggedUser","type","isAdmin","map","user","deleteUser","id","deleteMsg","User","find","splice"],"mappings":";;;;;;;AAAA;;;;IAEQA,K,GAAUC,iB,CAAVD,K;AAER,IAAME,aAAa,GAAG;AACpBC,EAAAA,WADoB,uBACRC,KADQ,EACD;AACjB,QAAIA,KAAK,CAACC,UAAN,CAAiBC,IAAjB,KAA0B,OAA1B,IAAqCF,KAAK,CAACC,UAAN,CAAiBE,OAAjB,KAA6B,IAAtE,EAA4E;AAC1E,aAAOP,KAAK,CAACQ,GAAN,CAAU,UAACC,IAAD,EAAU;AACzB,eAAOA,IAAP;AACD,OAFM,CAAP;AAGD;;AACD,WAAO,8CAAP;AACD,GARmB;AAUpBC,EAAAA,UAVoB,sBAUTC,EAVS,EAULP,KAVK,EAUE;AACpB,QAAIQ,SAAJ;;AACA,QAAIR,KAAK,CAACC,UAAN,CAAiBC,IAAjB,KAA0B,OAA9B,EAAuC;AACrC,UAAMO,IAAI,GAAGb,KAAK,CAACc,IAAN,CAAW,UAAAL,IAAI;AAAA,eAAIA,IAAI,CAACE,EAAL,IAAWA,EAAX,IAAiBF,IAAI,CAACH,IAAL,IAAa,OAAlC;AAAA,OAAf,CAAb;;AACA,UAAI,OAAOO,IAAP,KAAgB,WAApB,EAAiC;AAC/BD,QAAAA,SAAS,GAAG,kCAAZ;AACD,OAFD,MAEO;AACLZ,QAAAA,KAAK,CAACe,MAAN,CAAaF,IAAI,CAACF,EAAL,GAAU,CAAvB,EAA0B,CAA1B;AACAC,QAAAA,SAAS,GAAG,SAAZ;AACD;AACF,KARD,MAQO,IAAIR,KAAK,CAACC,UAAN,CAAiBE,OAAjB,KAA6B,IAAjC,EAAuC;AAC5C,UAAMM,KAAI,GAAGb,KAAK,CAACc,IAAN,CAAW,UAAAL,IAAI;AAAA,eAAIA,IAAI,CAACE,EAAL,IAAWA,EAAf;AAAA,OAAf,CAAb;;AACAX,MAAAA,KAAK,CAACe,MAAN,CAAaF,KAAI,CAACF,EAAL,GAAU,CAAvB,EAA0B,CAA1B;AACD,KAHM,MAGA;AACLC,MAAAA,SAAS,GAAG,4CAAZ;AACD;;AACD,WAAOA,SAAP;AACD;AA3BmB,CAAtB;eA8BeV,a","sourcesContent":["import dummyUsers from '../../dummyJson/users';\n\nconst { users } = dummyUsers;\n\nconst UsersServices = {\n getAllUsers(staff) {\n if (staff.loggedUser.type === 'staff' || staff.loggedUser.isAdmin === true) {\n return users.map((user) => {\n return user;\n });\n }\n return 'You don\\'t have permission to view this page';\n },\n\n deleteUser(id, staff) {\n let deleteMsg;\n if (staff.loggedUser.type === 'staff') {\n const User = users.find(user => user.id == id && user.type != 'staff');\n if (typeof User === 'undefined') {\n deleteMsg = 'Sorry you can not delete a staff';\n } else {\n users.splice(User.id - 1, 1);\n deleteMsg = 'deleted';\n }\n } else if (staff.loggedUser.isAdmin === true) {\n const User = users.find(user => user.id == id);\n users.splice(User.id - 1, 1);\n } else {\n deleteMsg = 'You don\\'t have permission to do this task';\n }\n return deleteMsg;\n },\n};\n\nexport default UsersServices;\n"],"file":"users.js"} \ No newline at end of file diff --git a/api/build/test/accounts.js b/api/build/test/accounts.js deleted file mode 100644 index 5b87fc8..0000000 --- a/api/build/test/accounts.js +++ /dev/null @@ -1,69 +0,0 @@ -"use strict"; - -var _chaiHttp = _interopRequireDefault(require("chai-http")); - -var _chai = _interopRequireWildcard(require("chai")); - -var _app = _interopRequireDefault(require("../app")); - -function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {}; if (desc.get || desc.set) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } } newObj["default"] = obj; return newObj; } } - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } - -/* eslint-disable no-undef */ -_chai["default"].use(_chaiHttp["default"]); - -describe('Testing Accounts Controller', function () { - describe('Testing accounts controller', function () { - it('accounts should have all required details', function (done) { - _chai["default"].request(_app["default"]).post('/api/v1/accounts/').send({ - type: 'savings' - }).end(function (error, response) { - (0, _chai.expect)(response.body).to.be.an('object'); // fails to test due to route being protected but everything is working fine - // expect(response.body.status).to.equal('success'); - // expect(response.body.data).to.have.property('id'); - // expect(response.body.data).to.have.property('firstName'); - // expect(response.body.data).to.have.property('lastName'); - // expect(response.body.data).to.have.property('email'); - // expect(response.body.data).to.have.property('accountNumber'); - // expect(response.body.data).to.have.property('createdOn'); - // expect(response.body.data).to.have.property('owner'); - // expect(response.body.data).to.have.property('status'); - // expect(response.body.data).to.have.property('type'); - // expect(response.body.data).to.have.property('balance'); - - done(); - }); - }); - it('should be able to patch account', function (done) { - _chai["default"].request(_app["default"]).patch('/api/v1/accounts/306363789207').send({ - status: 'dormant' - }).end(function (error, response) { - (0, _chai.expect)(response.body).to.be.an('object'); // remove the checkToken from app.js to test this - // expect(response.body.status).to.equal('success'); - // expect(response.body.data.status).to.equal('dormant'); - - done(); - }); - }); - it('should be able to delete account', function (done) { - _chai["default"].request(_app["default"])["delete"]('/api/v1/accounts/307363789207').send().end(function (error, response) { - (0, _chai.expect)(response.body).to.be.an('object'); // remove the checkToken from app.js to test this - // expect(response.body.status).to.equal('success'); - // expect(response.body.data).to.equal('account deleted'); - - done(); - }); - }); - it('should notify when account does not exist', function (done) { - _chai["default"].request(_app["default"])["delete"]('/api/v1/accounts/306363789299').send().end(function (error, response) { - (0, _chai.expect)(response.body).to.be.an('object'); // remove the checkToken from app.js to test this - // expect(response.body.status).to.equal('success'); - // expect(response.body.data).to.equal('no account found or account has been deleted'); - - done(); - }); - }); - }); -}); -//# sourceMappingURL=accounts.js.map \ No newline at end of file diff --git a/api/build/test/accounts.js.map b/api/build/test/accounts.js.map deleted file mode 100644 index 3e29ef8..0000000 --- a/api/build/test/accounts.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["../../v1/test/accounts.js"],"names":["chai","use","chaiHttp","describe","it","done","request","app","post","send","type","end","error","response","body","to","be","an","patch","status"],"mappings":";;AACA;;AACA;;AAEA;;;;;;AAJA;AAMAA,iBAAKC,GAAL,CAASC,oBAAT;;AAEAC,QAAQ,CAAC,6BAAD,EAAgC,YAAM;AAC5CA,EAAAA,QAAQ,CAAC,6BAAD,EAAgC,YAAM;AAC5CC,IAAAA,EAAE,CACA,2CADA,EAEA,UAACC,IAAD,EAAU;AACRL,uBAAKM,OAAL,CAAaC,eAAb,EACGC,IADH,CACQ,mBADR,EAEGC,IAFH,CAEQ;AACJC,QAAAA,IAAI,EAAE;AADF,OAFR,EAKGC,GALH,CAKO,UAACC,KAAD,EAAQC,QAAR,EAAqB;AACxB,0BAAOA,QAAQ,CAACC,IAAhB,EAAsBC,EAAtB,CAAyBC,EAAzB,CAA4BC,EAA5B,CAA+B,QAA/B,EADwB,CAExB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACAZ,QAAAA,IAAI;AACL,OApBH;AAqBD,KAxBD,CAAF;AA2BAD,IAAAA,EAAE,CAAC,iCAAD,EAAoC,UAACC,IAAD,EAAU;AAC9CL,uBAAKM,OAAL,CAAaC,eAAb,EACGW,KADH,CACS,+BADT,EAEGT,IAFH,CAEQ;AACJU,QAAAA,MAAM,EAAE;AADJ,OAFR,EAKGR,GALH,CAKO,UAACC,KAAD,EAAQC,QAAR,EAAqB;AACxB,0BAAOA,QAAQ,CAACC,IAAhB,EAAsBC,EAAtB,CAAyBC,EAAzB,CAA4BC,EAA5B,CAA+B,QAA/B,EADwB,CAExB;AACA;AACA;;AACAZ,QAAAA,IAAI;AACL,OAXH;AAYD,KAbC,CAAF;AAeAD,IAAAA,EAAE,CAAC,kCAAD,EAAqC,UAACC,IAAD,EAAU;AAC/CL,uBAAKM,OAAL,CAAaC,eAAb,YACU,+BADV,EAEGE,IAFH,GAGGE,GAHH,CAGO,UAACC,KAAD,EAAQC,QAAR,EAAqB;AACxB,0BAAOA,QAAQ,CAACC,IAAhB,EAAsBC,EAAtB,CAAyBC,EAAzB,CAA4BC,EAA5B,CAA+B,QAA/B,EADwB,CAExB;AACA;AACA;;AACAZ,QAAAA,IAAI;AACL,OATH;AAUD,KAXC,CAAF;AAaAD,IAAAA,EAAE,CAAC,2CAAD,EAA8C,UAACC,IAAD,EAAU;AACxDL,uBAAKM,OAAL,CAAaC,eAAb,YACU,+BADV,EAEGE,IAFH,GAGGE,GAHH,CAGO,UAACC,KAAD,EAAQC,QAAR,EAAqB;AACxB,0BAAOA,QAAQ,CAACC,IAAhB,EAAsBC,EAAtB,CAAyBC,EAAzB,CAA4BC,EAA5B,CAA+B,QAA/B,EADwB,CAExB;AACA;AACA;;AACAZ,QAAAA,IAAI;AACL,OATH;AAUD,KAXC,CAAF;AAYD,GApEO,CAAR;AAqED,CAtEO,CAAR","sourcesContent":["/* eslint-disable no-undef */\nimport chaiHttp from 'chai-http';\nimport chai, { expect } from 'chai';\n\nimport app from '../app';\n\nchai.use(chaiHttp);\n\ndescribe('Testing Accounts Controller', () => {\n describe('Testing accounts controller', () => {\n it(\n 'accounts should have all required details',\n (done) => {\n chai.request(app)\n .post('/api/v1/accounts/')\n .send({\n type: 'savings',\n })\n .end((error, response) => {\n expect(response.body).to.be.an('object');\n // fails to test due to route being protected but everything is working fine\n // expect(response.body.status).to.equal('success');\n // expect(response.body.data).to.have.property('id');\n // expect(response.body.data).to.have.property('firstName');\n // expect(response.body.data).to.have.property('lastName');\n // expect(response.body.data).to.have.property('email');\n // expect(response.body.data).to.have.property('accountNumber');\n // expect(response.body.data).to.have.property('createdOn');\n // expect(response.body.data).to.have.property('owner');\n // expect(response.body.data).to.have.property('status');\n // expect(response.body.data).to.have.property('type');\n // expect(response.body.data).to.have.property('balance');\n done();\n });\n },\n );\n\n it('should be able to patch account', (done) => {\n chai.request(app)\n .patch('/api/v1/accounts/306363789207')\n .send({\n status: 'dormant',\n })\n .end((error, response) => {\n expect(response.body).to.be.an('object');\n // remove the checkToken from app.js to test this\n // expect(response.body.status).to.equal('success');\n // expect(response.body.data.status).to.equal('dormant');\n done();\n });\n });\n\n it('should be able to delete account', (done) => {\n chai.request(app)\n .delete('/api/v1/accounts/307363789207')\n .send()\n .end((error, response) => {\n expect(response.body).to.be.an('object');\n // remove the checkToken from app.js to test this\n // expect(response.body.status).to.equal('success');\n // expect(response.body.data).to.equal('account deleted');\n done();\n });\n });\n\n it('should notify when account does not exist', (done) => {\n chai.request(app)\n .delete('/api/v1/accounts/306363789299')\n .send()\n .end((error, response) => {\n expect(response.body).to.be.an('object');\n // remove the checkToken from app.js to test this\n // expect(response.body.status).to.equal('success');\n // expect(response.body.data).to.equal('no account found or account has been deleted');\n done();\n });\n });\n });\n});\n"],"file":"accounts.js"} \ No newline at end of file diff --git a/api/build/test/signin.js b/api/build/test/signin.js deleted file mode 100644 index 16ed22b..0000000 --- a/api/build/test/signin.js +++ /dev/null @@ -1,77 +0,0 @@ -"use strict"; - -var _chaiHttp = _interopRequireDefault(require("chai-http")); - -var _chai = _interopRequireWildcard(require("chai")); - -var _app = _interopRequireDefault(require("../app")); - -function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {}; if (desc.get || desc.set) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } } newObj["default"] = obj; return newObj; } } - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } - -/* eslint-disable no-undef */ -_chai["default"].use(_chaiHttp["default"]); - -describe('Testing User Controller', function () { - describe('Testing signin controller', function () { - var signinUrl = '/api/auth/signin'; - it('should login when all the parameters are given', function (done) { - _chai["default"].request(_app["default"]).post(signinUrl).send({ - email: 'banka2@banka.com', - password: 'passworD2@' - }).end(function (error, response) { - (0, _chai.expect)(response.body).to.be.an('object'); - (0, _chai.expect)(response).to.have.status(200); - (0, _chai.expect)(response.body.data).to.be.a('object'); - (0, _chai.expect)(response.body.data.loggedUser).to.have.property('id'); - (0, _chai.expect)(response.body.data.loggedUser).to.have.property('email'); - (0, _chai.expect)(response.body.data).to.have.property('token'); - done(); - }); - }); - it('should not signin a user when the email is missing', function (done) { - _chai["default"].request(_app["default"]).post(signinUrl).send({ - password: 'passworD4@' - }).end(function (error, response) { - (0, _chai.expect)(response.body).to.be.an('object'); - (0, _chai.expect)(response.body.status).to.equal('error'); - (0, _chai.expect)(response.body.data).to.equal('incorrect data'); - done(); - }); - }); - it('should not signin a user when the email does not exist', function (done) { - _chai["default"].request(_app["default"]).post(signinUrl).send({ - email: 'banka5@banka.com', - password: 'passworD4@' - }).end(function (error, response) { - (0, _chai.expect)(response.body).to.be.an('object'); - (0, _chai.expect)(response.body.status).to.equal('error'); - (0, _chai.expect)(response.body.data).to.equal('incorrect data'); - done(); - }); - }); - it('should not register a user when the password is missing', function (done) { - _chai["default"].request(_app["default"]).post(signinUrl).send({ - email: 'banka4@banka.com' - }).end(function (error, response) { - (0, _chai.expect)(response.body).to.be.an('object'); - (0, _chai.expect)(response.body.status).to.equal('error'); - (0, _chai.expect)(response.body.data).to.equal('incorrect data'); - done(); - }); - }); - it('should not register a user when the password do not meet requirement', function (done) { - _chai["default"].request(_app["default"]).post(signinUrl).send({ - email: 'banka2@banka.com', - password: 'passworD4' - }).end(function (error, response) { - (0, _chai.expect)(response.body).to.be.an('object'); - (0, _chai.expect)(response.body.status).to.equal('error'); - (0, _chai.expect)(response.body.data).to.equal('incorrect data'); - done(); - }); - }); - }); -}); -//# sourceMappingURL=signin.js.map \ No newline at end of file diff --git a/api/build/test/signin.js.map b/api/build/test/signin.js.map deleted file mode 100644 index d978c7e..0000000 --- a/api/build/test/signin.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["../../v1/test/signin.js"],"names":["chai","use","chaiHttp","describe","signinUrl","it","done","request","app","post","send","email","password","end","error","response","body","to","be","an","have","status","data","a","loggedUser","property","equal"],"mappings":";;AACA;;AACA;;AAEA;;;;;;AAJA;AAMAA,iBAAKC,GAAL,CAASC,oBAAT;;AAEAC,QAAQ,CAAC,yBAAD,EAA4B,YAAM;AACxCA,EAAAA,QAAQ,CAAC,2BAAD,EAA8B,YAAM;AAC1C,QAAMC,SAAS,GAAG,kBAAlB;AACAC,IAAAA,EAAE,CACA,gDADA,EAEA,UAACC,IAAD,EAAU;AACRN,uBAAKO,OAAL,CAAaC,eAAb,EACGC,IADH,CACQL,SADR,EAEGM,IAFH,CAEQ;AACJC,QAAAA,KAAK,EAAE,kBADH;AAEJC,QAAAA,QAAQ,EAAE;AAFN,OAFR,EAOGC,GAPH,CAOO,UAACC,KAAD,EAAQC,QAAR,EAAqB;AACxB,0BAAOA,QAAQ,CAACC,IAAhB,EAAsBC,EAAtB,CAAyBC,EAAzB,CAA4BC,EAA5B,CAA+B,QAA/B;AACA,0BAAOJ,QAAP,EAAiBE,EAAjB,CAAoBG,IAApB,CAAyBC,MAAzB,CAAgC,GAAhC;AACA,0BAAON,QAAQ,CAACC,IAAT,CAAcM,IAArB,EAA2BL,EAA3B,CAA8BC,EAA9B,CAAiCK,CAAjC,CAAmC,QAAnC;AACA,0BAAOR,QAAQ,CAACC,IAAT,CAAcM,IAAd,CAAmBE,UAA1B,EAAsCP,EAAtC,CAAyCG,IAAzC,CAA8CK,QAA9C,CAAuD,IAAvD;AACA,0BAAOV,QAAQ,CAACC,IAAT,CAAcM,IAAd,CAAmBE,UAA1B,EAAsCP,EAAtC,CAAyCG,IAAzC,CAA8CK,QAA9C,CAAuD,OAAvD;AACA,0BAAOV,QAAQ,CAACC,IAAT,CAAcM,IAArB,EAA2BL,EAA3B,CAA8BG,IAA9B,CAAmCK,QAAnC,CAA4C,OAA5C;AACAnB,QAAAA,IAAI;AACL,OAfH;AAgBD,KAnBD,CAAF;AAsBAD,IAAAA,EAAE,CAAC,oDAAD,EAAuD,UAACC,IAAD,EAAU;AACjEN,uBAAKO,OAAL,CAAaC,eAAb,EACGC,IADH,CACQL,SADR,EAEGM,IAFH,CAEQ;AACJE,QAAAA,QAAQ,EAAE;AADN,OAFR,EAKGC,GALH,CAKO,UAACC,KAAD,EAAQC,QAAR,EAAqB;AACxB,0BAAOA,QAAQ,CAACC,IAAhB,EAAsBC,EAAtB,CAAyBC,EAAzB,CAA4BC,EAA5B,CAA+B,QAA/B;AACA,0BAAOJ,QAAQ,CAACC,IAAT,CAAcK,MAArB,EAA6BJ,EAA7B,CAAgCS,KAAhC,CAAsC,OAAtC;AACA,0BAAOX,QAAQ,CAACC,IAAT,CAAcM,IAArB,EAA2BL,EAA3B,CAA8BS,KAA9B,CAAoC,gBAApC;AACApB,QAAAA,IAAI;AACL,OAVH;AAWD,KAZC,CAAF;AAcAD,IAAAA,EAAE,CAAC,wDAAD,EAA2D,UAACC,IAAD,EAAU;AACrEN,uBAAKO,OAAL,CAAaC,eAAb,EACGC,IADH,CACQL,SADR,EAEGM,IAFH,CAEQ;AACJC,QAAAA,KAAK,EAAE,kBADH;AAEJC,QAAAA,QAAQ,EAAE;AAFN,OAFR,EAMGC,GANH,CAMO,UAACC,KAAD,EAAQC,QAAR,EAAqB;AACxB,0BAAOA,QAAQ,CAACC,IAAhB,EAAsBC,EAAtB,CAAyBC,EAAzB,CAA4BC,EAA5B,CAA+B,QAA/B;AACA,0BAAOJ,QAAQ,CAACC,IAAT,CAAcK,MAArB,EAA6BJ,EAA7B,CAAgCS,KAAhC,CAAsC,OAAtC;AACA,0BAAOX,QAAQ,CAACC,IAAT,CAAcM,IAArB,EAA2BL,EAA3B,CAA8BS,KAA9B,CAAoC,gBAApC;AACApB,QAAAA,IAAI;AACL,OAXH;AAYD,KAbC,CAAF;AAeAD,IAAAA,EAAE,CAAC,yDAAD,EAA4D,UAACC,IAAD,EAAU;AACtEN,uBAAKO,OAAL,CAAaC,eAAb,EACGC,IADH,CACQL,SADR,EAEGM,IAFH,CAEQ;AACJC,QAAAA,KAAK,EAAE;AADH,OAFR,EAKGE,GALH,CAKO,UAACC,KAAD,EAAQC,QAAR,EAAqB;AACxB,0BAAOA,QAAQ,CAACC,IAAhB,EAAsBC,EAAtB,CAAyBC,EAAzB,CAA4BC,EAA5B,CAA+B,QAA/B;AACA,0BAAOJ,QAAQ,CAACC,IAAT,CAAcK,MAArB,EAA6BJ,EAA7B,CAAgCS,KAAhC,CAAsC,OAAtC;AACA,0BAAOX,QAAQ,CAACC,IAAT,CAAcM,IAArB,EAA2BL,EAA3B,CAA8BS,KAA9B,CAAoC,gBAApC;AACApB,QAAAA,IAAI;AACL,OAVH;AAWD,KAZC,CAAF;AAcAD,IAAAA,EAAE,CAAC,sEAAD,EAAyE,UAACC,IAAD,EAAU;AACnFN,uBAAKO,OAAL,CAAaC,eAAb,EACGC,IADH,CACQL,SADR,EAEGM,IAFH,CAEQ;AACJC,QAAAA,KAAK,EAAE,kBADH;AAEJC,QAAAA,QAAQ,EAAE;AAFN,OAFR,EAMGC,GANH,CAMO,UAACC,KAAD,EAAQC,QAAR,EAAqB;AACxB,0BAAOA,QAAQ,CAACC,IAAhB,EAAsBC,EAAtB,CAAyBC,EAAzB,CAA4BC,EAA5B,CAA+B,QAA/B;AACA,0BAAOJ,QAAQ,CAACC,IAAT,CAAcK,MAArB,EAA6BJ,EAA7B,CAAgCS,KAAhC,CAAsC,OAAtC;AACA,0BAAOX,QAAQ,CAACC,IAAT,CAAcM,IAArB,EAA2BL,EAA3B,CAA8BS,KAA9B,CAAoC,gBAApC;AACApB,QAAAA,IAAI;AACL,OAXH;AAYD,KAbC,CAAF;AAcD,GAjFO,CAAR;AAkFD,CAnFO,CAAR","sourcesContent":["/* eslint-disable no-undef */\nimport chaiHttp from 'chai-http';\nimport chai, { expect } from 'chai';\n\nimport app from '../app';\n\nchai.use(chaiHttp);\n\ndescribe('Testing User Controller', () => {\n describe('Testing signin controller', () => {\n const signinUrl = '/api/auth/signin';\n it(\n 'should login when all the parameters are given',\n (done) => {\n chai.request(app)\n .post(signinUrl)\n .send({\n email: 'banka2@banka.com',\n password: 'passworD2@',\n })\n\n .end((error, response) => {\n expect(response.body).to.be.an('object');\n expect(response).to.have.status(200);\n expect(response.body.data).to.be.a('object');\n expect(response.body.data.loggedUser).to.have.property('id');\n expect(response.body.data.loggedUser).to.have.property('email');\n expect(response.body.data).to.have.property('token');\n done();\n });\n },\n );\n\n it('should not signin a user when the email is missing', (done) => {\n chai.request(app)\n .post(signinUrl)\n .send({\n password: 'passworD4@',\n })\n .end((error, response) => {\n expect(response.body).to.be.an('object');\n expect(response.body.status).to.equal('error');\n expect(response.body.data).to.equal('incorrect data');\n done();\n });\n });\n\n it('should not signin a user when the email does not exist', (done) => {\n chai.request(app)\n .post(signinUrl)\n .send({\n email: 'banka5@banka.com',\n password: 'passworD4@',\n })\n .end((error, response) => {\n expect(response.body).to.be.an('object');\n expect(response.body.status).to.equal('error');\n expect(response.body.data).to.equal('incorrect data');\n done();\n });\n });\n\n it('should not register a user when the password is missing', (done) => {\n chai.request(app)\n .post(signinUrl)\n .send({\n email: 'banka4@banka.com',\n })\n .end((error, response) => {\n expect(response.body).to.be.an('object');\n expect(response.body.status).to.equal('error');\n expect(response.body.data).to.equal('incorrect data');\n done();\n });\n });\n\n it('should not register a user when the password do not meet requirement', (done) => {\n chai.request(app)\n .post(signinUrl)\n .send({\n email: 'banka2@banka.com',\n password: 'passworD4',\n })\n .end((error, response) => {\n expect(response.body).to.be.an('object');\n expect(response.body.status).to.equal('error');\n expect(response.body.data).to.equal('incorrect data');\n done();\n });\n });\n });\n});\n"],"file":"signin.js"} \ No newline at end of file diff --git a/api/build/test/signup.js b/api/build/test/signup.js deleted file mode 100644 index e02f221..0000000 --- a/api/build/test/signup.js +++ /dev/null @@ -1,112 +0,0 @@ -"use strict"; - -var _chaiHttp = _interopRequireDefault(require("chai-http")); - -var _chai = _interopRequireWildcard(require("chai")); - -var _app = _interopRequireDefault(require("../app")); - -function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {}; if (desc.get || desc.set) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } } newObj["default"] = obj; return newObj; } } - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } - -/* eslint-disable no-undef */ -_chai["default"].use(_chaiHttp["default"]); - -describe('Testing User Controller', function () { - describe('Testing signup controller', function () { - var signupUrl = '/api/auth/signup'; - it('should register a new user when all the parameters are given', function (done) { - _chai["default"].request(_app["default"]).post(signupUrl).send({ - firstName: 'cavdy', - lastName: 'isaiah', - email: 'banka4@banka4.com', - password: 'passworD4@' - }).end(function (error, response) { - (0, _chai.expect)(response.body).to.be.an('object'); - (0, _chai.expect)(response).to.have.status(200); - (0, _chai.expect)(response.body.data).to.be.a('object'); - (0, _chai.expect)(response.body.data).to.have.property('id'); - (0, _chai.expect)(response.body.data).to.have.property('firstName'); - (0, _chai.expect)(response.body.data).to.have.property('lastName'); - (0, _chai.expect)(response.body.data).to.have.property('email'); - done(); - }); - }); - it('should not register a user when the email is missing', function (done) { - _chai["default"].request(_app["default"]).post(signupUrl).send({ - firstName: 'cavdy', - lastName: 'isaiah', - password: 'passworD4@' - }).end(function (error, response) { - (0, _chai.expect)(response.body).to.be.an('object'); - (0, _chai.expect)(response.body.status).to.equal('success'); - (0, _chai.expect)(response.body.data[0]).to.equal('Email is required'); - done(); - }); - }); - it('should not register a user when the email already exist', function (done) { - _chai["default"].request(_app["default"]).post(signupUrl).send({ - firstName: 'cavdy', - lastName: 'isaiah', - email: 'banka2@banka.com', - password: 'passworD4@' - }).end(function (error, response) { - (0, _chai.expect)(response.body).to.be.an('object'); - (0, _chai.expect)(response.body.status).to.equal('success'); - (0, _chai.expect)(response.body.data[0]).to.equal('email already exist'); - done(); - }); - }); - it('should not register a user when the first name is missing', function (done) { - _chai["default"].request(_app["default"]).post(signupUrl).send({ - lastName: 'isaiah', - email: 'banka4@banka.com', - password: 'passworD4@' - }).end(function (error, response) { - (0, _chai.expect)(response.body).to.be.an('object'); - (0, _chai.expect)(response.body.status).to.equal('success'); - (0, _chai.expect)(response.body.data[0]).to.equal('Firstname required'); - done(); - }); - }); - it('should not register a user when the last name is missing', function (done) { - _chai["default"].request(_app["default"]).post(signupUrl).send({ - firstName: 'cavdy', - email: 'banka4@banka.com', - password: 'passworD4@' - }).end(function (error, response) { - (0, _chai.expect)(response.body).to.be.an('object'); - (0, _chai.expect)(response.body.status).to.equal('success'); - (0, _chai.expect)(response.body.data[0]).to.equal('Lastname required'); - done(); - }); - }); - it('should not register a user when the password is missing', function (done) { - _chai["default"].request(_app["default"]).post(signupUrl).send({ - firstName: 'cavdy', - lastName: 'isaiah', - email: 'banka4@banka.com' - }).end(function (error, response) { - (0, _chai.expect)(response.body).to.be.an('object'); - (0, _chai.expect)(response.body.status).to.equal('success'); - (0, _chai.expect)(response.body.data[0]).to.equal('Password should contain atleast 8 characters, 1 uppercase letter, 1 lowercase letter, 1 number and 1 symbol or character'); - done(); - }); - }); - it('should not register a user when the password do not meet requirement', function (done) { - _chai["default"].request(_app["default"]).post(signupUrl).send({ - firstName: 'cavdy', - lastName: 'isaiah', - email: 'banka4@banka.com', - password: 'passworD4' - }).end(function (error, response) { - (0, _chai.expect)(response.body).to.be.an('object'); - (0, _chai.expect)(response.body.status).to.equal('success'); - (0, _chai.expect)(response.body.data[0]).to.equal('Password should contain atleast 8 characters, 1 uppercase letter, 1 lowercase letter, 1 number and 1 symbol or character'); - done(); - }); - }); - }); -}); -//# sourceMappingURL=signup.js.map \ No newline at end of file diff --git a/api/build/test/signup.js.map b/api/build/test/signup.js.map deleted file mode 100644 index d9239dc..0000000 --- a/api/build/test/signup.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["../../v1/test/signup.js"],"names":["chai","use","chaiHttp","describe","signupUrl","it","done","request","app","post","send","firstName","lastName","email","password","end","error","response","body","to","be","an","have","status","data","a","property","equal"],"mappings":"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","sourcesContent":["/* eslint-disable no-undef */\nimport chaiHttp from 'chai-http';\nimport chai, { expect } from 'chai';\n\nimport app from '../app';\n\nchai.use(chaiHttp);\n\ndescribe('Testing User Controller', () => {\n describe('Testing signup controller', () => {\n const signupUrl = '/api/auth/signup';\n it(\n 'should register a new user when all the parameters are given',\n (done) => {\n chai.request(app)\n .post(signupUrl)\n .send({\n firstName: 'cavdy',\n lastName: 'isaiah',\n email: 'banka4@banka4.com',\n password: 'passworD4@',\n })\n\n .end((error, response) => {\n expect(response.body).to.be.an('object');\n expect(response).to.have.status(200);\n expect(response.body.data).to.be.a('object');\n expect(response.body.data).to.have.property('id');\n expect(response.body.data).to.have.property('firstName');\n expect(response.body.data).to.have.property('lastName');\n expect(response.body.data).to.have.property('email');\n done();\n });\n },\n );\n\n it('should not register a user when the email is missing', (done) => {\n chai.request(app)\n .post(signupUrl)\n .send({\n firstName: 'cavdy',\n lastName: 'isaiah',\n password: 'passworD4@',\n })\n .end((error, response) => {\n expect(response.body).to.be.an('object');\n expect(response.body.status).to.equal('success');\n expect(response.body.data[0]).to.equal('Email is required');\n done();\n });\n });\n\n it('should not register a user when the email already exist', (done) => {\n chai.request(app)\n .post(signupUrl)\n .send({\n firstName: 'cavdy',\n lastName: 'isaiah',\n email: 'banka2@banka.com',\n password: 'passworD4@',\n })\n .end((error, response) => {\n expect(response.body).to.be.an('object');\n expect(response.body.status).to.equal('success');\n expect(response.body.data[0]).to.equal('email already exist');\n done();\n });\n });\n\n it('should not register a user when the first name is missing', (done) => {\n chai.request(app)\n .post(signupUrl)\n .send({\n lastName: 'isaiah',\n email: 'banka4@banka.com',\n password: 'passworD4@',\n })\n .end((error, response) => {\n expect(response.body).to.be.an('object');\n expect(response.body.status).to.equal('success');\n expect(response.body.data[0]).to.equal('Firstname required');\n done();\n });\n });\n\n it('should not register a user when the last name is missing', (done) => {\n chai.request(app)\n .post(signupUrl)\n .send({\n firstName: 'cavdy',\n email: 'banka4@banka.com',\n password: 'passworD4@',\n })\n .end((error, response) => {\n expect(response.body).to.be.an('object');\n expect(response.body.status).to.equal('success');\n expect(response.body.data[0]).to.equal('Lastname required');\n done();\n });\n });\n\n it('should not register a user when the password is missing', (done) => {\n chai.request(app)\n .post(signupUrl)\n .send({\n firstName: 'cavdy',\n lastName: 'isaiah',\n email: 'banka4@banka.com',\n })\n .end((error, response) => {\n expect(response.body).to.be.an('object');\n expect(response.body.status).to.equal('success');\n expect(response.body.data[0]).to.equal('Password should contain atleast 8 characters, 1 uppercase letter, 1 lowercase letter, 1 number and 1 symbol or character');\n done();\n });\n });\n\n it('should not register a user when the password do not meet requirement', (done) => {\n chai.request(app)\n .post(signupUrl)\n .send({\n firstName: 'cavdy',\n lastName: 'isaiah',\n email: 'banka4@banka.com',\n password: 'passworD4',\n })\n .end((error, response) => {\n expect(response.body).to.be.an('object');\n expect(response.body.status).to.equal('success');\n expect(response.body.data[0]).to.equal('Password should contain atleast 8 characters, 1 uppercase letter, 1 lowercase letter, 1 number and 1 symbol or character');\n done();\n });\n });\n });\n});\n"],"file":"signup.js"} \ No newline at end of file diff --git a/api/build/test/transactions.js b/api/build/test/transactions.js deleted file mode 100644 index c8c5523..0000000 --- a/api/build/test/transactions.js +++ /dev/null @@ -1,56 +0,0 @@ -"use strict"; - -var _chaiHttp = _interopRequireDefault(require("chai-http")); - -var _chai = _interopRequireWildcard(require("chai")); - -var _app = _interopRequireDefault(require("../app")); - -function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {}; if (desc.get || desc.set) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } } newObj["default"] = obj; return newObj; } } - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } - -/* eslint-disable no-undef */ -_chai["default"].use(_chaiHttp["default"]); - -describe('Testing Transactions Controller', function () { - describe('Testing transactions controller', function () { - it('debit transaction', function (done) { - _chai["default"].request(_app["default"]).post('/api/v1/transaction/306363789207/debit').send({ - amount: 200 - }).end(function (error, response) { - (0, _chai.expect)(response.body).to.be.an('object'); // fails to test due to route being protected but everything is working fine - // expect(response.body.status).to.equal('success'); - // expect(response.body.data).to.have.property('id'); - // expect(response.body.data).to.have.property('createdOn'); - // expect(response.body.data).to.have.property('type'); - // expect(response.body.data).to.have.property('accountNumber'); - // expect(response.body.data).to.have.property('cashier'); - // expect(response.body.data).to.have.property('amount'); - // expect(response.body.data).to.have.property('oldBalance'); - // expect(response.body.data).to.have.property('newBalance'); - - done(); - }); - }); - it('credit transaction', function (done) { - _chai["default"].request(_app["default"]).post('/api/v1/transaction/306363789207/credit').send({ - amount: 200 - }).end(function (error, response) { - (0, _chai.expect)(response.body).to.be.an('object'); // fails to test due to route being protected but everything is working fine - // expect(response.body.status).to.equal('success'); - // expect(response.body.data).to.have.property('id'); - // expect(response.body.data).to.have.property('createdOn'); - // expect(response.body.data).to.have.property('type'); - // expect(response.body.data).to.have.property('accountNumber'); - // expect(response.body.data).to.have.property('cashier'); - // expect(response.body.data).to.have.property('amount'); - // expect(response.body.data).to.have.property('oldBalance'); - // expect(response.body.data).to.have.property('newBalance'); - - done(); - }); - }); - }); -}); -//# sourceMappingURL=transactions.js.map \ No newline at end of file diff --git a/api/build/test/transactions.js.map b/api/build/test/transactions.js.map deleted file mode 100644 index 5dbda29..0000000 --- a/api/build/test/transactions.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["../../v1/test/transactions.js"],"names":["chai","use","chaiHttp","describe","it","done","request","app","post","send","amount","end","error","response","body","to","be","an"],"mappings":";;AACA;;AACA;;AAEA;;;;;;AAJA;AAMAA,iBAAKC,GAAL,CAASC,oBAAT;;AAEAC,QAAQ,CAAC,iCAAD,EAAoC,YAAM;AAChDA,EAAAA,QAAQ,CAAC,iCAAD,EAAoC,YAAM;AAChDC,IAAAA,EAAE,CACA,mBADA,EAEA,UAACC,IAAD,EAAU;AACRL,uBAAKM,OAAL,CAAaC,eAAb,EACGC,IADH,CACQ,wCADR,EAEGC,IAFH,CAEQ;AACJC,QAAAA,MAAM,EAAE;AADJ,OAFR,EAKGC,GALH,CAKO,UAACC,KAAD,EAAQC,QAAR,EAAqB;AACxB,0BAAOA,QAAQ,CAACC,IAAhB,EAAsBC,EAAtB,CAAyBC,EAAzB,CAA4BC,EAA5B,CAA+B,QAA/B,EADwB,CAExB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACAZ,QAAAA,IAAI;AACL,OAlBH;AAmBD,KAtBD,CAAF;AAyBAD,IAAAA,EAAE,CACA,oBADA,EAEA,UAACC,IAAD,EAAU;AACRL,uBAAKM,OAAL,CAAaC,eAAb,EACGC,IADH,CACQ,yCADR,EAEGC,IAFH,CAEQ;AACJC,QAAAA,MAAM,EAAE;AADJ,OAFR,EAKGC,GALH,CAKO,UAACC,KAAD,EAAQC,QAAR,EAAqB;AACxB,0BAAOA,QAAQ,CAACC,IAAhB,EAAsBC,EAAtB,CAAyBC,EAAzB,CAA4BC,EAA5B,CAA+B,QAA/B,EADwB,CAExB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACAZ,QAAAA,IAAI;AACL,OAlBH;AAmBD,KAtBD,CAAF;AAwBD,GAlDO,CAAR;AAmDD,CApDO,CAAR","sourcesContent":["/* eslint-disable no-undef */\nimport chaiHttp from 'chai-http';\nimport chai, { expect } from 'chai';\n\nimport app from '../app';\n\nchai.use(chaiHttp);\n\ndescribe('Testing Transactions Controller', () => {\n describe('Testing transactions controller', () => {\n it(\n 'debit transaction',\n (done) => {\n chai.request(app)\n .post('/api/v1/transaction/306363789207/debit')\n .send({\n amount: 200,\n })\n .end((error, response) => {\n expect(response.body).to.be.an('object');\n // fails to test due to route being protected but everything is working fine\n // expect(response.body.status).to.equal('success');\n // expect(response.body.data).to.have.property('id');\n // expect(response.body.data).to.have.property('createdOn');\n // expect(response.body.data).to.have.property('type');\n // expect(response.body.data).to.have.property('accountNumber');\n // expect(response.body.data).to.have.property('cashier');\n // expect(response.body.data).to.have.property('amount');\n // expect(response.body.data).to.have.property('oldBalance');\n // expect(response.body.data).to.have.property('newBalance');\n done();\n });\n },\n );\n\n it(\n 'credit transaction',\n (done) => {\n chai.request(app)\n .post('/api/v1/transaction/306363789207/credit')\n .send({\n amount: 200,\n })\n .end((error, response) => {\n expect(response.body).to.be.an('object');\n // fails to test due to route being protected but everything is working fine\n // expect(response.body.status).to.equal('success');\n // expect(response.body.data).to.have.property('id');\n // expect(response.body.data).to.have.property('createdOn');\n // expect(response.body.data).to.have.property('type');\n // expect(response.body.data).to.have.property('accountNumber');\n // expect(response.body.data).to.have.property('cashier');\n // expect(response.body.data).to.have.property('amount');\n // expect(response.body.data).to.have.property('oldBalance');\n // expect(response.body.data).to.have.property('newBalance');\n done();\n });\n },\n );\n });\n});\n"],"file":"transactions.js"} \ No newline at end of file diff --git a/api/v1/controllers/createAccount.js b/api/v1/controllers/createAccount.js deleted file mode 100644 index ff7b0ba..0000000 --- a/api/v1/controllers/createAccount.js +++ /dev/null @@ -1,52 +0,0 @@ -import jwt from 'jsonwebtoken'; -import CreateAccountService from '../services/createAccount'; - -const CreateAccountController = { - createAccount(req, res) { - const accountData = req.body; - // verify jwt token - jwt.verify(req.token, '5634', (err, authorizedData) => { - if (err) { - return res.sendStatus(403); - } - const createdAccount = CreateAccountService.createAccount(accountData, authorizedData); - return res.json({ - status: 'success', - data: createdAccount, - }).status(201); - }); - }, - // patchAccount - patchAccount(req, res) { - const { accountNumber } = req.params; - const accountStatus = req.body; - jwt.verify(req.token, '5634', (err, authorizedData) => { - if (err) { - res.sendStatus(403); - } else { - const updatedAccount = CreateAccountService.patchAccount(accountNumber, accountStatus, authorizedData); - return res.json({ - status: 'success', - data: updatedAccount, - }).status(201); - } - }); - }, - // deleteAccount - deleteAccount(req, res) { - const { accountNumber } = req.params; - jwt.verify(req.token, '5634', (err, authorizedData) => { - if (err) { - res.sendStatus(403); - } else { - const deleteAccount = CreateAccountService.deleteAccount(accountNumber, authorizedData); - return res.json({ - status: 'success', - data: deleteAccount, - }).status(200); - } - }); - }, -}; - -export default CreateAccountController; diff --git a/api/v1/controllers/createStaffs.js b/api/v1/controllers/createStaffs.js deleted file mode 100644 index 373d863..0000000 --- a/api/v1/controllers/createStaffs.js +++ /dev/null @@ -1,23 +0,0 @@ -import jwt from 'jsonwebtoken'; -import CreateStaffService from '../services/createStaffs'; - -const CreateStaffController = { - createStaff(req, res) { - const userData = req.body; - // eslint-disable-next-line no-unused-expressions - jwt.verify(req.token, '5634', (err, authorizedData) => { - if (err) { - res.sendStatus(403); - } else { - const createdStaff = CreateStaffService - .createStaffUser(userData, authorizedData); - return res.json({ - status: 'success', - data: createdStaff, - }).status(201); - } - }); - }, -}; - -export default CreateStaffController; diff --git a/api/v1/controllers/transaction.js b/api/v1/controllers/transaction.js deleted file mode 100644 index 73b9de1..0000000 --- a/api/v1/controllers/transaction.js +++ /dev/null @@ -1,42 +0,0 @@ -/* eslint-disable consistent-return */ -import jwt from 'jsonwebtoken'; -import TransactionService from '../services/transaction'; - -const TransactionController = { - debitTransaction(req, res) { - const { accountNumber } = req.params; - const transactionData = req.body; - // verify jwt token - jwt.verify(req.token, '5634', (err, authorizedData) => { - if (err) { - res.sendStatus(403); - } else { - const debitedData = TransactionService - .debitTransaction(accountNumber, authorizedData, transactionData); - return res.json({ - status: 'success', - data: debitedData, - }).status(201); - } - }); - }, - creditTransaction(req, res) { - const { accountNumber } = req.params; - const transactionData = req.body; - // verify jwt token - jwt.verify(req.token, '5634', (err, authorizedData) => { - if (err) { - res.sendStatus(403); - } else { - const creditedData = TransactionService - .creditTransaction(accountNumber, authorizedData, transactionData); - return res.json({ - status: 'success', - data: creditedData, - }).status(201); - } - }); - }, -}; - -export default TransactionController; diff --git a/api/v1/controllers/users.js b/api/v1/controllers/users.js deleted file mode 100644 index 20e8cb6..0000000 --- a/api/v1/controllers/users.js +++ /dev/null @@ -1,37 +0,0 @@ -import jwt from 'jsonwebtoken'; -import UserService from '../services/users'; - -const UsersController = { - getAllUsers(req, res) { - // verify jwt token - jwt.verify(req.token, '5634', (err, authorizedData) => { - if (err) { - res.sendStatus(403); - } else { - const allUsers = UserService.getAllUsers(authorizedData); - return res.json({ - status: 'success', - data: allUsers, - }).status(201); - } - }); - }, - - deleteUser(req, res) { - const { id } = req.params; - // verify jwt token - jwt.verify(req.token, '5634', (err, authorizedData) => { - if (err) { - res.sendStatus(403); - } else { - const deleteUser = UserService.deleteUser(id, authorizedData); - return res.json({ - status: 'success', - data: deleteUser, - }).status(201); - } - }); - }, -}; - -export default UsersController; diff --git a/api/v1/routes/createAccount.js b/api/v1/routes/createAccount.js deleted file mode 100644 index 27d455e..0000000 --- a/api/v1/routes/createAccount.js +++ /dev/null @@ -1,11 +0,0 @@ -import express from 'express'; -import CreateAccountController from '../controllers/createAccount'; - -const router = express.Router(); - -// creating our routes -router.post('/', CreateAccountController.createAccount); -router.patch('/:accountNumber', CreateAccountController.patchAccount); -router.delete('/:accountNumber', CreateAccountController.deleteAccount); - -export default router; diff --git a/api/v1/routes/transaction.js b/api/v1/routes/transaction.js deleted file mode 100644 index d975214..0000000 --- a/api/v1/routes/transaction.js +++ /dev/null @@ -1,10 +0,0 @@ -import express from 'express'; -import TransactionController from '../controllers/transaction'; - -const router = express.Router(); - -// creating our routes -router.post('/:accountNumber/debit', TransactionController.debitTransaction); -router.post('/:accountNumber/credit', TransactionController.creditTransaction); - -export default router; diff --git a/api/v1/routes/users.js b/api/v1/routes/users.js deleted file mode 100644 index 1611281..0000000 --- a/api/v1/routes/users.js +++ /dev/null @@ -1,10 +0,0 @@ -import express from 'express'; -import UsersController from '../controllers/users'; - -const router = express.Router(); - -// creating our routes -router.get('/', UsersController.getAllUsers); -router.delete('/:id', UsersController.deleteUser); - -export default router; diff --git a/package-lock.json b/package-lock.json index 1b31ec1..1406d45 100644 --- a/package-lock.json +++ b/package-lock.json @@ -874,24 +874,6 @@ "to-fast-properties": "^2.0.0" } }, - "@braintree/sanitize-url": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@braintree/sanitize-url/-/sanitize-url-2.1.0.tgz", - "integrity": "sha1-VJqdH5I8m8eVOlhdPpqpQpvo/ig=" - }, - "@kyleshockey/object-assign-deep": { - "version": "0.4.2", - "resolved": "https://registry.npmjs.org/@kyleshockey/object-assign-deep/-/object-assign-deep-0.4.2.tgz", - "integrity": "sha1-hJAPDu/DcnmPR1G1JigwuCCJIuw=" - }, - "@kyleshockey/xml": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@kyleshockey/xml/-/xml-1.0.2.tgz", - "integrity": "sha512-iMo32MPLcI9cPxs3YL5kmKxKgDmkSZDCFEqIT5eRk7d/Ll8r4X3SwGYSigzALd6+RHWlFEmjL1QyaQ15xDZFlw==", - "requires": { - "stream": "^0.0.2" - } - }, "@types/chai": { "version": "4.1.7", "resolved": "https://registry.npmjs.org/@types/chai/-/chai-4.1.7.tgz", @@ -907,15 +889,6 @@ "resolved": "https://registry.npmjs.org/@types/node/-/node-11.13.4.tgz", "integrity": "sha512-+rabAZZ3Yn7tF/XPGHupKIL5EcAbrLxnTr/hgQICxbeuAfWtT0UZSfULE+ndusckBItcv4o6ZeOJplQikVcLvQ==" }, - "@types/react": { - "version": "16.4.6", - "resolved": "https://registry.npmjs.org/@types/react/-/react-16.4.6.tgz", - "integrity": "sha512-9LDZdhsuKSc+DjY65SjBkA958oBWcTWSVWAd2cD9XqKBjhGw1KzAkRhWRw2eIsXvaIE/TOTjjKMFVC+JA1iU4g==", - "optional": true, - "requires": { - "csstype": "^2.2.0" - } - }, "@types/superagent": { "version": "3.8.7", "resolved": "https://registry.npmjs.org/@types/superagent/-/superagent-3.8.7.tgz", @@ -1115,11 +1088,6 @@ "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==", "dev": true }, - "autolinker": { - "version": "0.15.3", - "resolved": "https://registry.npmjs.org/autolinker/-/autolinker-0.15.3.tgz", - "integrity": "sha1-NCQX2PLzRhsUzwkIjV7fh5HcmDI=" - }, "aws-sign2": { "version": "0.7.0", "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", @@ -1132,27 +1100,6 @@ "integrity": "sha512-ReZxvNHIOv88FlT7rxcXIIC0fPt4KZqZbOlivyWtXLt8ESx84zd3kMC6iK5jVeS2qt+g7ftS7ye4fi06X5rtRQ==", "dev": true }, - "babel-runtime": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", - "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", - "requires": { - "core-js": "^2.4.0", - "regenerator-runtime": "^0.11.0" - }, - "dependencies": { - "core-js": { - "version": "2.6.5", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.5.tgz", - "integrity": "sha512-klh/kDpwX8hryYL14M9w/xei6vrv6sE8gTHDG7/T/+SEovB/G4ejwcfE/CBzO6Edsu+OETZMZ3wcX/EjUkrl5A==" - }, - "regenerator-runtime": { - "version": "0.11.1", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", - "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==" - } - } - }, "balanced-match": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", @@ -1213,11 +1160,6 @@ } } }, - "base64-js": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.3.0.tgz", - "integrity": "sha512-ccav/yGvoa80BQDljCxsmmQ3Xvx60/UpBIij5QN21W3wBi/hhIC9OoO+KLpu9IJTS9j4DRVJ3aDDF9cMSoa2lw==" - }, "bcrypt-pbkdf": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", @@ -1342,20 +1284,6 @@ "node-releases": "^1.1.13" } }, - "btoa": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/btoa/-/btoa-1.1.2.tgz", - "integrity": "sha1-PkC4FmP4HS3WWWpMtxSo3BbPq+A=" - }, - "buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.2.1.tgz", - "integrity": "sha512-c+Ko0loDaFfuPWiL02ls9Xd3GO3cPVmUobQ6t3rXNUk304u6hGq+8N/kFi+QEIKhzK3uwolVhLzszmfLmMLnqg==", - "requires": { - "base64-js": "^1.0.2", - "ieee754": "^1.1.4" - } - }, "buffer-equal-constant-time": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz", @@ -1529,11 +1457,6 @@ } } }, - "classnames": { - "version": "2.2.6", - "resolved": "https://registry.npmjs.org/classnames/-/classnames-2.2.6.tgz", - "integrity": "sha512-JR/iSQOSt+LQIWwrwEzJ9uk0xfN3mTVYMwt1Ir5mUcSN6pU+V4zQFFaJsclJbPuAUQH+yfWef6tm7l1quW3C8Q==" - }, "cli-boxes": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-1.0.0.tgz", @@ -1797,32 +1720,6 @@ "capture-stack-trace": "^1.0.0" } }, - "create-react-class": { - "version": "15.6.3", - "resolved": "https://registry.npmjs.org/create-react-class/-/create-react-class-15.6.3.tgz", - "integrity": "sha512-M+/3Q6E6DLO6Yx3OwrWjwHBnvfXXYA7W+dFjt/ZDBemHO1DDZhsalX/NUtnTYclN6GfnBDRh4qRHjcDHmlJBJg==", - "requires": { - "fbjs": "^0.8.9", - "loose-envify": "^1.3.1", - "object-assign": "^4.1.1" - } - }, - "cross-fetch": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-0.0.8.tgz", - "integrity": "sha1-Ae2U3EB98sAPGAf95wCnz6SKIFw=", - "requires": { - "node-fetch": "1.7.3", - "whatwg-fetch": "2.0.3" - }, - "dependencies": { - "whatwg-fetch": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-2.0.3.tgz", - "integrity": "sha1-nITsLc9oGH/wC8ZOEnS0QhduHIQ=" - } - } - }, "cross-spawn": { "version": "6.0.5", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", @@ -1841,25 +1738,6 @@ "integrity": "sha1-ojD2T1aDEOFJgAmUB5DsmVRbyn4=", "dev": true }, - "css.escape": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/css.escape/-/css.escape-1.5.1.tgz", - "integrity": "sha1-QuJ9T6BK4y+TGktNQZH6nN3ul8s=" - }, - "csstype": { - "version": "2.6.3", - "resolved": "https://registry.npmjs.org/csstype/-/csstype-2.6.3.tgz", - "integrity": "sha512-rINUZXOkcBmoHWEyu7JdHu5JMzkGRoMX4ov9830WNgxf5UYxcBUO0QTKAqeJ5EZfSdlrcJYkC8WwfVW7JYi4yg==", - "optional": true - }, - "d": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/d/-/d-1.0.0.tgz", - "integrity": "sha1-dUu1v+VUUdpppYuU1F9MWwRi1Y8=", - "requires": { - "es5-ext": "^0.10.9" - } - }, "dashdash": { "version": "1.14.1", "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", @@ -1903,11 +1781,6 @@ "type-detect": "^4.0.0" } }, - "deep-equal": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.0.1.tgz", - "integrity": "sha1-9dJgKStmDghO/0zbyfCK0yR0SLU=" - }, "deep-extend": { "version": "0.6.0", "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", @@ -1998,11 +1871,6 @@ "esutils": "^2.0.2" } }, - "dompurify": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/dompurify/-/dompurify-1.0.10.tgz", - "integrity": "sha512-huhl3DSWX5LaA7jDtnj3XQdJgWW1wYouNW7N0drGzQa4vEUSVWyeFN+Atx6HP4r5cang6oQytMom6I4yhGJj5g==" - }, "dot-prop": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-4.2.0.tgz", @@ -2052,34 +1920,16 @@ "integrity": "sha512-glecGr/kFdfeXUHOHAWvGcXrxNU+1wSO/t5B23tT1dtlvYB26GY8aHzZSWD7HqhqC800Lr+w/hQul6C5AF542w==", "dev": true }, - "emitter-component": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/emitter-component/-/emitter-component-1.1.1.tgz", - "integrity": "sha1-Bl4tvtaVm/RwZ57avq95gdEAOrY=" - }, "emoji-regex": { "version": "7.0.3", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==" }, - "encode-3986": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/encode-3986/-/encode-3986-1.0.0.tgz", - "integrity": "sha1-lA1RSY+HQa3hhLda0UObMXwMemA=" - }, "encodeurl": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=" }, - "encoding": { - "version": "0.1.12", - "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.12.tgz", - "integrity": "sha1-U4tm8+5izRq1HsMjgp0flIDHS+s=", - "requires": { - "iconv-lite": "~0.4.13" - } - }, "end-of-stream": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.1.tgz", @@ -2120,46 +1970,6 @@ "is-symbol": "^1.0.2" } }, - "es5-ext": { - "version": "0.10.49", - "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.49.tgz", - "integrity": "sha512-3NMEhi57E31qdzmYp2jwRArIUsj1HI/RxbQ4bgnSB+AIKIxsAmTiK83bYMifIcpWvEc3P1X30DhUKOqEtF/kvg==", - "requires": { - "es6-iterator": "~2.0.3", - "es6-symbol": "~3.1.1", - "next-tick": "^1.0.0" - } - }, - "es6-iterator": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz", - "integrity": "sha1-p96IkUGgWpSwhUQDstCg+/qY87c=", - "requires": { - "d": "1", - "es5-ext": "^0.10.35", - "es6-symbol": "^3.1.1" - } - }, - "es6-symbol": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.1.tgz", - "integrity": "sha1-vwDvT9q2uhtG7Le2KbTH7VcVzHc=", - "requires": { - "d": "1", - "es5-ext": "~0.10.14" - } - }, - "es6-weak-map": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/es6-weak-map/-/es6-weak-map-2.0.2.tgz", - "integrity": "sha1-XjqzIlH/0VOKH45f+hNXdy+S2W8=", - "requires": { - "d": "1", - "es5-ext": "^0.10.14", - "es6-iterator": "^2.0.1", - "es6-symbol": "^3.1.1" - } - }, "escape-html": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", @@ -2454,15 +2264,6 @@ "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=" }, - "event-emitter": { - "version": "0.3.5", - "resolved": "https://registry.npmjs.org/event-emitter/-/event-emitter-0.3.5.tgz", - "integrity": "sha1-34xp7vFkeSPHFXuc6DhAYQsCzDk=", - "requires": { - "d": "1", - "es5-ext": "~0.10.14" - } - }, "execa": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", @@ -2710,14 +2511,6 @@ "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=", "dev": true }, - "fast-json-patch": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fast-json-patch/-/fast-json-patch-2.1.0.tgz", - "integrity": "sha512-PipOsAKamRw7+CXtKiieehyjUeDVPJ5J7b2kdJYerEf6TSUQoD2ijpVyZ88KQm5YXziff4h762bz3+vzf56khg==", - "requires": { - "deep-equal": "^1.0.1" - } - }, "fast-json-stable-stringify": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz", @@ -2730,35 +2523,6 @@ "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", "dev": true }, - "fbjs": { - "version": "0.8.17", - "resolved": "https://registry.npmjs.org/fbjs/-/fbjs-0.8.17.tgz", - "integrity": "sha1-xNWY6taUkRJlPWWIsBpc3Nn5D90=", - "requires": { - "core-js": "^1.0.0", - "isomorphic-fetch": "^2.1.1", - "loose-envify": "^1.0.0", - "object-assign": "^4.1.0", - "promise": "^7.1.1", - "setimmediate": "^1.0.5", - "ua-parser-js": "^0.7.18" - }, - "dependencies": { - "core-js": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-1.2.7.tgz", - "integrity": "sha1-ZSKUwUZR2yj6k70tX/KYOk8IxjY=" - }, - "promise": { - "version": "7.3.1", - "resolved": "https://registry.npmjs.org/promise/-/promise-7.3.1.tgz", - "integrity": "sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg==", - "requires": { - "asap": "~2.0.3" - } - } - } - }, "figures": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz", @@ -3595,9 +3359,9 @@ "integrity": "sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA==" }, "handlebars": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.1.1.tgz", - "integrity": "sha512-3Zhi6C0euYZL5sM0Zcy7lInLXKQ+YLcF/olbN010mzGQ4XVm50JeyBnMqofHh696GrciGruC7kCcApPDJvVgwA==", + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.1.2.tgz", + "integrity": "sha512-nvfrjqvt9xQ8Z/w0ijewdD/vvWDTOweBUm96NTr66Wfvo1mJenBLwcYmPs3TIBP5ruzYGD7Hx/DaM9RmhroGPw==", "requires": { "neo-async": "^2.6.0", "optimist": "^0.6.1", @@ -3682,14 +3446,6 @@ "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==" }, - "hoist-non-react-statics": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.0.tgz", - "integrity": "sha512-0XsbTXxgiaCDYDIWFcwkmerZPSwywfUqYmwT4jzewKTQSWoE6FCMoUVOeBJWK3E/CrWbxRG3m5GzY4lnIwGRBA==", - "requires": { - "react-is": "^16.7.0" - } - }, "homedir-polyfill": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz", @@ -3735,11 +3491,6 @@ "safer-buffer": ">= 2.1.2 < 3" } }, - "ieee754": { - "version": "1.1.13", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.13.tgz", - "integrity": "sha512-4vf7I2LYV/HaWerSo3XmlMkp5eZ83i+/CDluXi/IGTs/O1sejBNhTtnxzmRZfvOUqj7lZjqHkeTvpgSFDlWZTg==" - }, "ignore": { "version": "4.0.6", "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", @@ -3752,11 +3503,6 @@ "integrity": "sha1-SMptcvbGo68Aqa1K5odr44ieKwk=", "dev": true }, - "immutable": { - "version": "3.8.2", - "resolved": "https://registry.npmjs.org/immutable/-/immutable-3.8.2.tgz", - "integrity": "sha1-wkOZUUVbs5kT2vKBN28VMOEErfM=" - }, "import-fresh": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.0.0.tgz", @@ -3841,6 +3587,7 @@ "version": "2.2.4", "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", + "dev": true, "requires": { "loose-envify": "^1.0.0" } @@ -3970,11 +3717,6 @@ } } }, - "is-dom": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/is-dom/-/is-dom-1.0.9.tgz", - "integrity": "sha1-SDgy1SlyBz3hK5/j9gMghw2oNw0=" - }, "is-extendable": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", @@ -4084,7 +3826,8 @@ "is-promise": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.1.0.tgz", - "integrity": "sha1-eaKp7OfwlugPNtKy87wWwf9L8/o=" + "integrity": "sha1-eaKp7OfwlugPNtKy87wWwf9L8/o=", + "dev": true }, "is-redirect": { "version": "1.0.0", @@ -4147,43 +3890,6 @@ "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", "dev": true }, - "isomorphic-fetch": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/isomorphic-fetch/-/isomorphic-fetch-2.2.1.tgz", - "integrity": "sha1-YRrhrPFPXoH3KVB0coGf6XM1WKk=", - "requires": { - "node-fetch": "^1.0.1", - "whatwg-fetch": ">=0.10.0" - } - }, - "isomorphic-form-data": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isomorphic-form-data/-/isomorphic-form-data-0.0.1.tgz", - "integrity": "sha1-Am9ifgMrDNhBPsyHVZKLlKRosGI=", - "requires": { - "form-data": "^1.0.0-rc3" - }, - "dependencies": { - "async": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/async/-/async-2.6.2.tgz", - "integrity": "sha512-H1qVYh1MYhEEFLsP97cVKqCGo7KfCyTt6uEWqsTBr9SO84oK9Uwbyd/yCW+6rKJLHksBNUVWZDAjfS+Ccx0Bbg==", - "requires": { - "lodash": "^4.17.11" - } - }, - "form-data": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-1.0.1.tgz", - "integrity": "sha1-rjFduaSQf6BlUCMEpm13M0de43w=", - "requires": { - "async": "^2.0.1", - "combined-stream": "^1.0.5", - "mime-types": "^2.1.11" - } - } - } - }, "isstream": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", @@ -4211,11 +3917,6 @@ "semver": "^5.5.0" } }, - "js-file-download": { - "version": "0.4.5", - "resolved": "https://registry.npmjs.org/js-file-download/-/js-file-download-0.4.5.tgz", - "integrity": "sha512-altzTt8noT8MCJmQCQ/y3LfGRz/i7k6Z6H59bDsNd6Mq4KGK2KCxaFVdenqVTCJb6fCH/Ra1f1YDmemieAKDAg==" - }, "js-levenshtein": { "version": "1.1.6", "resolved": "https://registry.npmjs.org/js-levenshtein/-/js-levenshtein-1.1.6.tgz", @@ -4225,12 +3926,14 @@ "js-tokens": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true }, "js-yaml": { - "version": "3.13.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.0.tgz", - "integrity": "sha512-pZZoSxcCYco+DIKBTimr67J6Hy+EYGZDY/HCWC+iAEA9h1ByhMXAIVUXMcMFpOCxQ/xjXmPI2MkDL5HRm5eFrQ==", + "version": "3.13.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz", + "integrity": "sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==", + "dev": true, "requires": { "argparse": "^1.0.7", "esprima": "^4.0.0" @@ -4417,16 +4120,6 @@ "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.11.tgz", "integrity": "sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg==" }, - "lodash-es": { - "version": "4.17.11", - "resolved": "https://registry.npmjs.org/lodash-es/-/lodash-es-4.17.11.tgz", - "integrity": "sha512-DHb1ub+rMjjrxqlB3H56/6MXtm1lSksDp2rA2cNWjG8mlDUYFhUj3Di2Zn5IwSU87xLv8tNIQ7sSwE/YOX/D/Q==" - }, - "lodash.debounce": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", - "integrity": "sha1-gteb/zCmfEAF/9XiUVMArZyk168=" - }, "lodash.includes": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/lodash.includes/-/lodash.includes-4.3.0.tgz", @@ -4480,6 +4173,7 @@ "version": "1.4.0", "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "dev": true, "requires": { "js-tokens": "^3.0.0 || ^4.0.0" } @@ -4500,14 +4194,6 @@ "yallist": "^2.1.2" } }, - "lru-queue": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/lru-queue/-/lru-queue-0.1.0.tgz", - "integrity": "sha1-Jzi9nw089PhEkMVzbEhpmsYyzaM=", - "requires": { - "es5-ext": "~0.10.2" - } - }, "make-dir": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", @@ -4555,21 +4241,6 @@ "p-is-promise": "^2.0.0" } }, - "memoizee": { - "version": "0.4.14", - "resolved": "https://registry.npmjs.org/memoizee/-/memoizee-0.4.14.tgz", - "integrity": "sha512-/SWFvWegAIYAO4NQMpcX+gcra0yEZu4OntmUdrBaWrJncxOqAziGFlHxc7yjKVK2uu3lpPW27P27wkR82wA8mg==", - "requires": { - "d": "1", - "es5-ext": "^0.10.45", - "es6-weak-map": "^2.0.2", - "event-emitter": "^0.3.5", - "is-promise": "^2.1", - "lru-queue": "0.1", - "next-tick": "1", - "timers-ext": "^0.1.5" - } - }, "merge-descriptors": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", @@ -4667,9 +4338,9 @@ } }, "mocha": { - "version": "6.1.2", - "resolved": "https://registry.npmjs.org/mocha/-/mocha-6.1.2.tgz", - "integrity": "sha512-BgD2/RozoSC3uQK5R0isDcxjqaWw2n5HWdk8njYUyZf2NC79ErO5FtYVX52+rfqGoEgMfJf4fuG0IWh2TMzFoA==", + "version": "6.1.3", + "resolved": "https://registry.npmjs.org/mocha/-/mocha-6.1.3.tgz", + "integrity": "sha512-QdE/w//EPHrqgT5PNRUjRVHy6IJAzAf1R8n2O8W8K2RZ+NbPfOD5cBDp+PGa2Gptep37C/TdBiaNwakppEzEbg==", "requires": { "ansi-colors": "3.2.3", "browser-stdout": "1.3.1", @@ -4685,7 +4356,7 @@ "minimatch": "3.0.4", "mkdirp": "0.5.1", "ms": "2.1.1", - "node-environment-flags": "1.0.4", + "node-environment-flags": "1.0.5", "object.assign": "4.1.0", "strip-json-comments": "2.0.1", "supports-color": "6.0.0", @@ -4704,6 +4375,15 @@ "ms": "^2.1.1" } }, + "js-yaml": { + "version": "3.13.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.0.tgz", + "integrity": "sha512-pZZoSxcCYco+DIKBTimr67J6Hy+EYGZDY/HCWC+iAEA9h1ByhMXAIVUXMcMFpOCxQ/xjXmPI2MkDL5HRm5eFrQ==", + "requires": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + } + }, "ms": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", @@ -4770,31 +4450,18 @@ "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.0.tgz", "integrity": "sha512-MFh0d/Wa7vkKO3Y3LlacqAEeHK0mckVqzDieUKTT+KGxi+zIpeVsFxymkIiRpbpDziHc290Xr9A1O4Om7otoRA==" }, - "next-tick": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.0.0.tgz", - "integrity": "sha1-yobR/ogoFpsBICCOPchCS524NCw=" - }, "nice-try": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==" }, "node-environment-flags": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/node-environment-flags/-/node-environment-flags-1.0.4.tgz", - "integrity": "sha512-M9rwCnWVLW7PX+NUWe3ejEdiLYinRpsEre9hMkU/6NS4h+EEulYaDH1gCEZ2gyXsmw+RXYDaV2JkkTNcsPDJ0Q==", - "requires": { - "object.getownpropertydescriptors": "^2.0.3" - } - }, - "node-fetch": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-1.7.3.tgz", - "integrity": "sha512-NhZ4CsKx7cYm2vSrBAr2PvFOe6sWDf0UYLRqA6svUYg7+/TSfVAu49jYC4BvQ4Sms9SZgdqGBgroqfDhJdTyKQ==", + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/node-environment-flags/-/node-environment-flags-1.0.5.tgz", + "integrity": "sha512-VNYPRfGfmZLx0Ye20jWzHUjyTW/c+6Wq+iLhDzUI4XmhrDd9l/FozXV3F2xOaXjvp0co0+v1YSR3CMP6g+VvLQ==", "requires": { - "encoding": "^0.1.11", - "is-stream": "^1.0.1" + "object.getownpropertydescriptors": "^2.0.3", + "semver": "^5.7.0" } }, "node-modules-regexp": { @@ -6274,7 +5941,8 @@ "performance-now": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", - "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=" + "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=", + "dev": true }, "pg": { "version": "7.9.0", @@ -6419,16 +6087,6 @@ "asap": "~2.0.6" } }, - "prop-types": { - "version": "15.7.2", - "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.7.2.tgz", - "integrity": "sha512-8QQikdH7//R2vurIJSutZ1smHYTcLpRWEOlHnzcWHmBYrOGUysKwSsrC89BCiFj3CbrfJ/nXFdJepOVrY1GCHQ==", - "requires": { - "loose-envify": "^1.4.0", - "object-assign": "^4.1.1", - "react-is": "^16.8.1" - } - }, "proxy-addr": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.4.tgz", @@ -6476,29 +6134,6 @@ "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==" }, - "querystring": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", - "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=" - }, - "querystring-browser": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/querystring-browser/-/querystring-browser-1.0.4.tgz", - "integrity": "sha1-8uNYgYQKgZvHsb9Zf68JeeZiLcY=" - }, - "querystringify": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.1.1.tgz", - "integrity": "sha512-w7fLxIRCRT7U8Qu53jQnJyPkYZIaR4n5151KMfcJlO/A9397Wxb1amJvROTK6TOnp7PfoAmg/qXiNHI+08jRfA==" - }, - "raf": { - "version": "3.4.1", - "resolved": "https://registry.npmjs.org/raf/-/raf-3.4.1.tgz", - "integrity": "sha512-Sq4CW4QhwOHE8ucn6J34MqtZCeWFP2aQSmrlroYgqAV1PjStIhJXxYuTgUIfkEk7zTLjmIjLmU5q+fbD1NnOJA==", - "requires": { - "performance-now": "^2.1.0" - } - }, "range-parser": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.0.tgz", @@ -6535,96 +6170,6 @@ } } }, - "react": { - "version": "15.6.2", - "resolved": "https://registry.npmjs.org/react/-/react-15.6.2.tgz", - "integrity": "sha1-26BDSrQ5z+gvEI8PURZjkIF5qnI=", - "requires": { - "create-react-class": "^15.6.0", - "fbjs": "^0.8.9", - "loose-envify": "^1.1.0", - "object-assign": "^4.1.0", - "prop-types": "^15.5.10" - } - }, - "react-debounce-input": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/react-debounce-input/-/react-debounce-input-3.2.0.tgz", - "integrity": "sha1-aXjGBh2Jj1SfQEF/sNLrvs9Qqqo=", - "requires": { - "lodash.debounce": "^4", - "prop-types": "^15" - } - }, - "react-dom": { - "version": "15.6.2", - "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-15.6.2.tgz", - "integrity": "sha1-Qc+t9pO3V/rycIRDodH9WgK+9zA=", - "requires": { - "fbjs": "^0.8.9", - "loose-envify": "^1.1.0", - "object-assign": "^4.1.0", - "prop-types": "^15.5.10" - } - }, - "react-immutable-proptypes": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/react-immutable-proptypes/-/react-immutable-proptypes-2.1.0.tgz", - "integrity": "sha1-Aj1vObsVyXwHHp5g0A0TbqxfoLQ=" - }, - "react-immutable-pure-component": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/react-immutable-pure-component/-/react-immutable-pure-component-1.2.3.tgz", - "integrity": "sha512-kNy2A/fDrSuR8TKwB+4ynmItmp1vgF87tWxxfmadwDYo2J3ANipHqTjDIBvJvJ7libvuh76jIbvmK0krjtKH1g==", - "requires": { - "@types/react": "16.4.6" - } - }, - "react-inspector": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/react-inspector/-/react-inspector-2.3.1.tgz", - "integrity": "sha512-tUUK7t3KWgZEIUktOYko5Ic/oYwvjEvQUFAGC1UeMeDaQ5za2yZFtItJa2RTwBJB//NxPr000WQK6sEbqC6y0Q==", - "requires": { - "babel-runtime": "^6.26.0", - "is-dom": "^1.0.9", - "prop-types": "^15.6.1" - } - }, - "react-is": { - "version": "16.8.6", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.8.6.tgz", - "integrity": "sha512-aUk3bHfZ2bRSVFFbbeVS4i+lNPZr3/WM5jT2J5omUVV1zzcs1nAaf3l51ctA5FFvCRbhrH0bdAsRRQddFJZPtA==" - }, - "react-motion": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/react-motion/-/react-motion-0.5.2.tgz", - "integrity": "sha512-9q3YAvHoUiWlP3cK0v+w1N5Z23HXMj4IF4YuvjvWegWqNPfLXsOBE/V7UvQGpXxHFKRQQcNcVQE31g9SB/6qgQ==", - "requires": { - "performance-now": "^0.2.0", - "prop-types": "^15.5.8", - "raf": "^3.1.0" - }, - "dependencies": { - "performance-now": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-0.2.0.tgz", - "integrity": "sha1-M+8wxcd9TqIcWlOGnZG1bY8lVeU=" - } - } - }, - "react-redux": { - "version": "4.4.10", - "resolved": "https://registry.npmjs.org/react-redux/-/react-redux-4.4.10.tgz", - "integrity": "sha512-tjL0Bmpkj75Td0k+lXlF8Fc8a9GuXFv/3ahUOCXExWs/jhsKiQeTffdH0j5byejCGCRL4tvGFYlrwBF1X/Aujg==", - "requires": { - "create-react-class": "^15.5.1", - "hoist-non-react-statics": "^3.3.0", - "invariant": "^2.0.0", - "lodash": "^4.17.11", - "loose-envify": "^1.4.0", - "prop-types": "^15.7.2" - } - }, "read-pkg": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz", @@ -6716,25 +6261,6 @@ "readable-stream": "^2.0.2" } }, - "redux": { - "version": "3.7.2", - "resolved": "https://registry.npmjs.org/redux/-/redux-3.7.2.tgz", - "integrity": "sha512-pNqnf9q1hI5HHZRBkj3bAngGZW/JMCmexDlOxw4XagXY2o1327nHH54LoTjiPJ0gizoqPDRqWyX/00g0hD6w+A==", - "requires": { - "lodash": "^4.2.1", - "lodash-es": "^4.2.1", - "loose-envify": "^1.1.0", - "symbol-observable": "^1.0.3" - } - }, - "redux-immutable": { - "version": "3.0.8", - "resolved": "https://registry.npmjs.org/redux-immutable/-/redux-immutable-3.0.8.tgz", - "integrity": "sha1-31pdYByIInujj0dM+C99AOVvjBQ=", - "requires": { - "immutable": "^3.7.6" - } - }, "regenerate": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.0.tgz", @@ -6843,26 +6369,6 @@ } } }, - "remarkable": { - "version": "1.7.1", - "resolved": "https://registry.npmjs.org/remarkable/-/remarkable-1.7.1.tgz", - "integrity": "sha1-qspJchALZqZCpjoQIcpLrBvjv/Y=", - "requires": { - "argparse": "~0.1.15", - "autolinker": "~0.15.0" - }, - "dependencies": { - "argparse": { - "version": "0.1.16", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-0.1.16.tgz", - "integrity": "sha1-z9AeD7uj1srtBJ+9dY1A9lGW9Xw=", - "requires": { - "underscore": "~1.7.0", - "underscore.string": "~2.4.0" - } - } - } - }, "remove-trailing-separator": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", @@ -6878,7 +6384,8 @@ "repeat-string": { "version": "1.6.1", "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", - "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=" + "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=", + "dev": true }, "request": { "version": "2.88.0", @@ -6918,16 +6425,6 @@ "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==" }, - "requires-port": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", - "integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=" - }, - "reselect": { - "version": "2.5.4", - "resolved": "https://registry.npmjs.org/reselect/-/reselect-2.5.4.tgz", - "integrity": "sha1-t9I/3wC4P6etAnlUb427vXZccEc=" - }, "resolve": { "version": "1.10.0", "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.10.0.tgz", @@ -7065,11 +6562,6 @@ } } }, - "serialize-error": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/serialize-error/-/serialize-error-2.1.0.tgz", - "integrity": "sha1-ULZ51WNc34Rme9yOWa9OW4HV9go=" - }, "serve-static": { "version": "1.13.2", "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.13.2.tgz", @@ -7109,11 +6601,6 @@ } } }, - "setimmediate": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", - "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=" - }, "setprototypeof": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", @@ -7412,14 +6899,6 @@ "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=" }, - "stream": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/stream/-/stream-0.0.2.tgz", - "integrity": "sha1-f1Nj8Ff2WSxVlfALyAon9c7B8O8=", - "requires": { - "emitter-component": "^1.1.1" - } - }, "string-width": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", @@ -7501,105 +6980,6 @@ "has-flag": "^3.0.0" } }, - "swagger-client": { - "version": "3.8.25", - "resolved": "https://registry.npmjs.org/swagger-client/-/swagger-client-3.8.25.tgz", - "integrity": "sha512-7ZtSSPnempsUbCAOJCQ6PyGaNkRoCm6ghOpJlI62ChfMGbLWtlOm8dLlgYiTkP9OAWuNHoRoTzOW14+QmZY1HA==", - "requires": { - "@kyleshockey/js-yaml": "^1.0.1", - "@kyleshockey/object-assign-deep": "^0.4.0", - "babel-runtime": "^6.26.0", - "btoa": "1.1.2", - "buffer": "^5.1.0", - "cookie": "^0.3.1", - "cross-fetch": "0.0.8", - "deep-extend": "^0.5.1", - "encode-3986": "^1.0.0", - "fast-json-patch": "^2.0.6", - "isomorphic-form-data": "0.0.1", - "lodash": "^4.16.2", - "qs": "^6.3.0", - "querystring-browser": "^1.0.4", - "url": "^0.11.0", - "utf8-bytes": "0.0.1", - "utfstring": "^2.0.0" - }, - "dependencies": { - "@kyleshockey/js-yaml": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@kyleshockey/js-yaml/-/js-yaml-1.0.1.tgz", - "integrity": "sha512-coFyIk1LvTscq1cUU4nCCfYwv+cmG4fCP+wgDKgYZjhM4f++YwZy+g0k+1tUqa4GuUpBTEOGH2KUqKFFWdT73g==", - "requires": { - "argparse": "^1.0.7" - } - }, - "deep-extend": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.5.1.tgz", - "integrity": "sha512-N8vBdOa+DF7zkRrDCsaOXoCs/E2fJfx9B9MrKnnSiHNh4ws7eSys6YQE4KvT1cecKmOASYQBhbKjeuDD9lT81w==" - } - } - }, - "swagger-ui": { - "version": "3.22.1", - "resolved": "https://registry.npmjs.org/swagger-ui/-/swagger-ui-3.22.1.tgz", - "integrity": "sha512-dx5U5DNBOAgqUvcebpyHtztXx8NRuk9YrSqHoROV2iA8rzVaFimcsfYEu5o/ztsHDbLI2svhb5rC4iZeRPQC7w==", - "requires": { - "@braintree/sanitize-url": "^2.0.2", - "@kyleshockey/js-yaml": "^1.0.1", - "@kyleshockey/object-assign-deep": "^0.4.2", - "@kyleshockey/xml": "^1.0.2", - "base64-js": "^1.2.0", - "classnames": "^2.2.5", - "core-js": "^2.5.1", - "css.escape": "1.5.1", - "deep-extend": "0.5.1", - "dompurify": "^1.0.4", - "ieee754": "^1.1.8", - "immutable": "^3.x.x", - "js-file-download": "^0.4.1", - "lodash": "^4.17.11", - "memoizee": "^0.4.12", - "prop-types": "^15.5.10", - "react": "^15.6.2", - "react-debounce-input": "^3.2.0", - "react-dom": "^15.6.2", - "react-immutable-proptypes": "2.1.0", - "react-immutable-pure-component": "^1.1.1", - "react-inspector": "^2.3.0", - "react-motion": "^0.5.2", - "react-redux": "^4.x.x", - "redux": "^3.x.x", - "redux-immutable": "3.0.8", - "remarkable": "^1.7.1", - "reselect": "^2.5.4", - "serialize-error": "^2.1.0", - "swagger-client": "^3.8.25", - "url-parse": "^1.4.3", - "xml-but-prettier": "^1.0.1", - "zenscroll": "^4.0.2" - }, - "dependencies": { - "@kyleshockey/js-yaml": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@kyleshockey/js-yaml/-/js-yaml-1.0.1.tgz", - "integrity": "sha512-coFyIk1LvTscq1cUU4nCCfYwv+cmG4fCP+wgDKgYZjhM4f++YwZy+g0k+1tUqa4GuUpBTEOGH2KUqKFFWdT73g==", - "requires": { - "argparse": "^1.0.7" - } - }, - "core-js": { - "version": "2.6.5", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.5.tgz", - "integrity": "sha512-klh/kDpwX8hryYL14M9w/xei6vrv6sE8gTHDG7/T/+SEovB/G4ejwcfE/CBzO6Edsu+OETZMZ3wcX/EjUkrl5A==" - }, - "deep-extend": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.5.1.tgz", - "integrity": "sha512-N8vBdOa+DF7zkRrDCsaOXoCs/E2fJfx9B9MrKnnSiHNh4ws7eSys6YQE4KvT1cecKmOASYQBhbKjeuDD9lT81w==" - } - } - }, "swagger-ui-dist": { "version": "3.22.1", "resolved": "https://registry.npmjs.org/swagger-ui-dist/-/swagger-ui-dist-3.22.1.tgz", @@ -7613,11 +6993,6 @@ "swagger-ui-dist": "^3.18.1" } }, - "symbol-observable": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-1.2.0.tgz", - "integrity": "sha512-e900nM8RRtGhlV36KGEU9k65K3mPb1WV70OdjfxlG2EAuM1noi/E/BaW/uMhL7bPEssK8QV57vN3esixjUvcXQ==" - }, "table": { "version": "5.2.3", "resolved": "https://registry.npmjs.org/table/-/table-5.2.3.tgz", @@ -7718,15 +7093,6 @@ "integrity": "sha1-8y6srFoXW+ol1/q1Zas+2HQe9W8=", "dev": true }, - "timers-ext": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/timers-ext/-/timers-ext-0.1.7.tgz", - "integrity": "sha512-b85NUNzTSdodShTIbky6ZF02e8STtVVfD+fu4aXXShEELpozH+bCpJLYMPZbsABN2wDH7fJpqIoXxJpzbf0NqQ==", - "requires": { - "es5-ext": "~0.10.46", - "next-tick": "1" - } - }, "tmp": { "version": "0.0.33", "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", @@ -7867,11 +7233,6 @@ "mime-types": "~2.1.18" } }, - "ua-parser-js": { - "version": "0.7.19", - "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.19.tgz", - "integrity": "sha512-T3PVJ6uz8i0HzPxOF9SWzWAlfN/DavlpQqepn22xgve/5QecC+XMCAtmUNnY7C9StehaV6exjUCI801lOI7QlQ==" - }, "uglify-js": { "version": "3.5.4", "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.5.4.tgz", @@ -7902,16 +7263,6 @@ } } }, - "underscore": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.7.0.tgz", - "integrity": "sha1-a7rwh3UA02vjTsqlhODbn+8DUgk=" - }, - "underscore.string": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/underscore.string/-/underscore.string-2.4.0.tgz", - "integrity": "sha1-jN2PusTi0uoefi6Al8QvRCKA+Fs=" - }, "unicode-canonical-property-names-ecmascript": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-1.0.4.tgz", @@ -8074,31 +7425,6 @@ "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=", "dev": true }, - "url": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz", - "integrity": "sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=", - "requires": { - "punycode": "1.3.2", - "querystring": "0.2.0" - }, - "dependencies": { - "punycode": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz", - "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=" - } - } - }, - "url-parse": { - "version": "1.4.6", - "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.4.6.tgz", - "integrity": "sha512-/B8AD9iQ01seoXmXf9z/MjLZQIdOoYl/+gvsQF6+mpnxaTfG9P7srYaiqaDMyKkR36XMXfhqSHss5MyFAO8lew==", - "requires": { - "querystringify": "^2.0.0", - "requires-port": "^1.0.0" - } - }, "url-parse-lax": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-1.0.0.tgz", @@ -8114,16 +7440,6 @@ "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==", "dev": true }, - "utf8-bytes": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/utf8-bytes/-/utf8-bytes-0.0.1.tgz", - "integrity": "sha1-EWsCVEjJtQAIHN+/H01sbDfYg30=" - }, - "utfstring": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/utfstring/-/utfstring-2.0.0.tgz", - "integrity": "sha512-/ugBfyvIoLe9xqkFHio3CxXnpUKQ1p2LfTxPr6QTRj6GiwpHo73YGdh03UmAzDQNOWpNIE0J5nLss00L4xlWgg==" - }, "util-deprecate": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", @@ -8175,11 +7491,6 @@ "extsprintf": "^1.2.0" } }, - "whatwg-fetch": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-3.0.0.tgz", - "integrity": "sha512-9GSJUgz1D4MfyKU7KRqwOjXCXTqWdFNvEr7eUBYchQiVc744mqK/MzXPNR2WsPkmkOa4ywfg8C2n8h+13Bey1Q==" - }, "which": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", @@ -8288,14 +7599,6 @@ "integrity": "sha1-SWsswQnsqNus/i3HK2A8F8WHCtQ=", "dev": true }, - "xml-but-prettier": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/xml-but-prettier/-/xml-but-prettier-1.0.1.tgz", - "integrity": "sha1-9aMyZ+1CzNTjVcYlV6XjmwH7QPM=", - "requires": { - "repeat-string": "^1.5.2" - } - }, "xtend": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz", @@ -8413,11 +7716,6 @@ } } } - }, - "zenscroll": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/zenscroll/-/zenscroll-4.0.2.tgz", - "integrity": "sha1-6NV3TRwHOKR7z6hynzcS4t7d6yU=" } } } diff --git a/package.json b/package.json index a597ddf..8c05d2e 100644 --- a/package.json +++ b/package.json @@ -4,10 +4,10 @@ "description": "banking web app", "main": "app.js", "scripts": { - "start": "node ./api/build/app.js", - "build": "babel -d ./api/build ./api/v1 -s", - "dev": "nodemon --exec babel-node ./api/v1/app.js", - "test": "mocha ./api/v1 --recursive --require @babel/register --exit || true", + "start": "node ./server/build/app.js", + "build": "babel -d ./server/build ./server/v1 -s", + "dev": "nodemon --exec babel-node ./server/v1/app.js", + "test": "mocha ./server/v1 --recursive --require @babel/register --exit || true", "generate-lcov": "nyc report --reporter=text-lcov > lcov.info", "coveralls-coverage": "coveralls < lcov.info", "codeclimate-coverage": "codeclimate-test-reporter < lcov.info", @@ -41,7 +41,7 @@ "express": "^4.16.4", "express-handlebars": "^3.0.2", "jsonwebtoken": "^8.5.0", - "mocha": "^6.0.1", + "mocha": "^6.1.3", "pg": "^7.8.1", "swagger-ui-express": "^4.0.2" }, diff --git a/api/dummyJson/accounts.json b/server/dummyJson/accounts.json similarity index 100% rename from api/dummyJson/accounts.json rename to server/dummyJson/accounts.json diff --git a/api/dummyJson/transactions.json b/server/dummyJson/transactions.json similarity index 100% rename from api/dummyJson/transactions.json rename to server/dummyJson/transactions.json diff --git a/api/dummyJson/users.json b/server/dummyJson/users.json similarity index 100% rename from api/dummyJson/users.json rename to server/dummyJson/users.json diff --git a/api/swagger.json b/server/swagger.json similarity index 100% rename from api/swagger.json rename to server/swagger.json diff --git a/api/v1/app.js b/server/v1/app.js similarity index 59% rename from api/v1/app.js rename to server/v1/app.js index ea507d3..e06d89b 100644 --- a/api/v1/app.js +++ b/server/v1/app.js @@ -10,6 +10,7 @@ import LoginRoute from './routes/login'; import CreateAccountRoute from './routes/createAccount'; import TransactionRoute from './routes/transaction'; import UsersRoute from './routes/users'; +import jwtMiddleware from './middleware/jwt'; // instantiate expressjs const app = express(); @@ -22,37 +23,19 @@ app.use(bodyParser.urlencoded({ extended: false })); // swagger app.use('/api-docs', swaggerUi.serve, swaggerUi.setup(swaggerDocument)); -app.use((req, res, next) => { - res.header('Access-Control-Allow-Origin', '*'); - res.header('Access-Control-Allow-Headers', 'Origin, X-Requested-With, Content-Type, Accept'); - next(); -}); // Index Route app.get('/', (req, res) => { res.send('welcome to Banka API'); }); -const checkToken = (req, res, next) => { - const header = req.headers.authorization; - if (typeof header !== 'undefined') { - const bearer = header.split(' '); - const token = bearer[1]; - req.token = token; - next(); - } else { - // If header is undefined return Forbidden (403) - res.sendStatus(403); - } -}; - // creating the api version route app.use('/api/auth/signup', RegisterRoute); app.use('/api/auth/signin', LoginRoute); -app.use('/api/auth/addstaff', checkToken, CreateStaffRoute); -app.use('/api/v1/accounts', checkToken, CreateAccountRoute); -app.use('/api/v1/transactions', checkToken, TransactionRoute); -app.use('/api/v1/users', checkToken, UsersRoute); +app.use('/api/auth/addstaff', jwtMiddleware.checkToken, CreateStaffRoute); +app.use('/api/v1/accounts', jwtMiddleware.checkToken, CreateAccountRoute); +app.use('/api/v1/transactions', jwtMiddleware.checkToken, TransactionRoute); +app.use('/api/v1/users', jwtMiddleware.checkToken, UsersRoute); // listening to our port app.listen(PORT, () => { diff --git a/server/v1/controllers/createAccount.js b/server/v1/controllers/createAccount.js new file mode 100644 index 0000000..deef674 --- /dev/null +++ b/server/v1/controllers/createAccount.js @@ -0,0 +1,35 @@ +import CreateAccountService from '../services/createAccount'; + +const CreateAccountController = { + createAccount(req, res) { + const accountData = req.body; + // verify jwt token + const createdAccount = CreateAccountService.createAccount(accountData, req.authorizedData); + return res.json({ + status: 'success', + data: createdAccount, + }).status(201); + }, + // patchAccount + patchAccount(req, res) { + const { accountNumber } = req.params; + const accountStatus = req.body; + const updatedAccount = CreateAccountService + .patchAccount(accountNumber, accountStatus, req.authorizedData); + return res.json({ + status: 'success', + data: updatedAccount, + }).status(201); + }, + // deleteAccount + deleteAccount(req, res) { + const { accountNumber } = req.params; + const deleteAccount = CreateAccountService.deleteAccount(accountNumber, req.authorizedData); + return res.json({ + status: 'success', + data: deleteAccount, + }).status(200); + }, +}; + +export default CreateAccountController; diff --git a/server/v1/controllers/createStaffs.js b/server/v1/controllers/createStaffs.js new file mode 100644 index 0000000..67bf47f --- /dev/null +++ b/server/v1/controllers/createStaffs.js @@ -0,0 +1,16 @@ +import CreateStaffService from '../services/createStaffs'; + +const CreateStaffController = { + createStaff(req, res) { + const userData = req.body; + // eslint-disable-next-line no-unused-expressions + const createdStaff = CreateStaffService + .createStaffUser(userData, req.authorizedData); + return res.json({ + status: 'success', + data: createdStaff, + }).status(201); + }, +}; + +export default CreateStaffController; diff --git a/api/v1/controllers/login.js b/server/v1/controllers/login.js similarity index 90% rename from api/v1/controllers/login.js rename to server/v1/controllers/login.js index 45dbd84..9e8090b 100644 --- a/api/v1/controllers/login.js +++ b/server/v1/controllers/login.js @@ -1,4 +1,5 @@ import jwt from 'jsonwebtoken'; +import debug from 'debug'; import LoginService from '../services/login'; const LoginController = { @@ -7,7 +8,7 @@ const LoginController = { const loggedUser = LoginService.loginUser(userData); return jwt.sign({ loggedUser }, '5634', (err, token) => { - if (err) { console.log(err); } + if (err) { debug('jwterror')(err); } if (loggedUser[0] === 'Invalid format' || loggedUser[0] === 'incorrect credentials') { res.json({ status: 'error', diff --git a/api/v1/controllers/register.js b/server/v1/controllers/register.js similarity index 100% rename from api/v1/controllers/register.js rename to server/v1/controllers/register.js diff --git a/server/v1/controllers/transaction.js b/server/v1/controllers/transaction.js new file mode 100644 index 0000000..4fc9061 --- /dev/null +++ b/server/v1/controllers/transaction.js @@ -0,0 +1,27 @@ +/* eslint-disable consistent-return */ +import TransactionService from '../services/transaction'; + +const TransactionController = { + debitTransaction(req, res) { + const { accountNumber } = req.params; + const transactionData = req.body; + const debitedData = TransactionService + .debitTransaction(accountNumber, req.authorizedData, transactionData); + return res.json({ + status: 'success', + data: debitedData, + }).status(201); + }, + creditTransaction(req, res) { + const { accountNumber } = req.params; + const transactionData = req.body; + const creditedData = TransactionService + .creditTransaction(accountNumber, req.authorizedData, transactionData); + return res.json({ + status: 'success', + data: creditedData, + }).status(201); + }, +}; + +export default TransactionController; diff --git a/server/v1/controllers/users.js b/server/v1/controllers/users.js new file mode 100644 index 0000000..9c7a878 --- /dev/null +++ b/server/v1/controllers/users.js @@ -0,0 +1,22 @@ +import UserService from '../services/users'; + +const UsersController = { + getAllUsers(req, res) { + const allUsers = UserService.getAllUsers(req.authorizedData); + return res.json({ + status: 'success', + data: allUsers, + }).status(201); + }, + + deleteUser(req, res) { + const { id } = req.params; + const deleteUser = UserService.deleteUser(id, req.authorizedData); + return res.json({ + status: 'success', + data: deleteUser, + }).status(201); + }, +}; + +export default UsersController; diff --git a/api/v1/helper/registrationHelper.js b/server/v1/helper/registrationHelper.js similarity index 100% rename from api/v1/helper/registrationHelper.js rename to server/v1/helper/registrationHelper.js diff --git a/server/v1/middleware/jwt.js b/server/v1/middleware/jwt.js new file mode 100644 index 0000000..6d0d50e --- /dev/null +++ b/server/v1/middleware/jwt.js @@ -0,0 +1,27 @@ +import jwt from 'jsonwebtoken'; + +const jwtMiddleware = { + checkToken(req, res, next) { + const header = req.headers.authorization; + if (typeof header !== 'undefined') { + const bearer = header.split(' '); + const token = bearer[1]; + req.token = token; + next(); + } else { + // If header is undefined return Forbidden (403) + res.sendStatus(403); + } + }, + verifyJwt(req, res, next) { + jwt.verify(req.token, '5634', (err, authorizedData) => { + if (err) { + return res.sendStatus(403); + } + req.authorizedData = authorizedData; + return next(); + }); + }, +}; + +export default jwtMiddleware; diff --git a/api/v1/model/CreateAccount.js b/server/v1/model/CreateAccount.js similarity index 100% rename from api/v1/model/CreateAccount.js rename to server/v1/model/CreateAccount.js diff --git a/api/v1/model/Transaction.js b/server/v1/model/Transaction.js similarity index 100% rename from api/v1/model/Transaction.js rename to server/v1/model/Transaction.js diff --git a/api/v1/model/users.js b/server/v1/model/users.js similarity index 100% rename from api/v1/model/users.js rename to server/v1/model/users.js diff --git a/server/v1/routes/createAccount.js b/server/v1/routes/createAccount.js new file mode 100644 index 0000000..85ad9f7 --- /dev/null +++ b/server/v1/routes/createAccount.js @@ -0,0 +1,12 @@ +import express from 'express'; +import jwtMiddleware from '../middleware/jwt'; +import CreateAccountController from '../controllers/createAccount'; + +const router = express.Router(); + +// creating our routes +router.post('/', jwtMiddleware.verifyJwt, CreateAccountController.createAccount); +router.patch('/:accountNumber', jwtMiddleware.verifyJwt, CreateAccountController.patchAccount); +router.delete('/:accountNumber', jwtMiddleware.verifyJwt, CreateAccountController.deleteAccount); + +export default router; diff --git a/api/v1/routes/createStaffs.js b/server/v1/routes/createStaffs.js similarity index 58% rename from api/v1/routes/createStaffs.js rename to server/v1/routes/createStaffs.js index ad2d587..5a7ed84 100644 --- a/api/v1/routes/createStaffs.js +++ b/server/v1/routes/createStaffs.js @@ -1,9 +1,10 @@ import express from 'express'; +import jwtMiddleware from '../middleware/jwt'; import CreateStaffController from '../controllers/createStaffs'; const router = express.Router(); // creating our routes -router.post('/', CreateStaffController.createStaff); +router.post('/', jwtMiddleware.verifyJwt, CreateStaffController.createStaff); export default router; diff --git a/api/v1/routes/login.js b/server/v1/routes/login.js similarity index 100% rename from api/v1/routes/login.js rename to server/v1/routes/login.js diff --git a/api/v1/routes/register.js b/server/v1/routes/register.js similarity index 100% rename from api/v1/routes/register.js rename to server/v1/routes/register.js diff --git a/server/v1/routes/transaction.js b/server/v1/routes/transaction.js new file mode 100644 index 0000000..039a714 --- /dev/null +++ b/server/v1/routes/transaction.js @@ -0,0 +1,11 @@ +import express from 'express'; +import jwtMiddleware from '../middleware/jwt'; +import TransactionController from '../controllers/transaction'; + +const router = express.Router(); + +// creating our routes +router.post('/:accountNumber/debit', jwtMiddleware.verifyJwt, TransactionController.debitTransaction); +router.post('/:accountNumber/credit', jwtMiddleware.verifyJwt, TransactionController.creditTransaction); + +export default router; diff --git a/server/v1/routes/users.js b/server/v1/routes/users.js new file mode 100644 index 0000000..f396f7f --- /dev/null +++ b/server/v1/routes/users.js @@ -0,0 +1,11 @@ +import express from 'express'; +import jwtMiddleware from '../middleware/jwt'; +import UsersController from '../controllers/users'; + +const router = express.Router(); + +// creating our routes +router.get('/', jwtMiddleware.verifyJwt, UsersController.getAllUsers); +router.delete('/:id', jwtMiddleware.verifyJwt, UsersController.deleteUser); + +export default router; diff --git a/api/v1/services/createAccount.js b/server/v1/services/createAccount.js similarity index 100% rename from api/v1/services/createAccount.js rename to server/v1/services/createAccount.js diff --git a/api/v1/services/createStaffs.js b/server/v1/services/createStaffs.js similarity index 100% rename from api/v1/services/createStaffs.js rename to server/v1/services/createStaffs.js diff --git a/api/v1/services/login.js b/server/v1/services/login.js similarity index 100% rename from api/v1/services/login.js rename to server/v1/services/login.js diff --git a/api/v1/services/register.js b/server/v1/services/register.js similarity index 100% rename from api/v1/services/register.js rename to server/v1/services/register.js diff --git a/api/v1/services/transaction.js b/server/v1/services/transaction.js similarity index 100% rename from api/v1/services/transaction.js rename to server/v1/services/transaction.js diff --git a/api/v1/services/users.js b/server/v1/services/users.js similarity index 100% rename from api/v1/services/users.js rename to server/v1/services/users.js diff --git a/api/v1/test/accounts.js b/server/v1/test/accounts.js similarity index 100% rename from api/v1/test/accounts.js rename to server/v1/test/accounts.js diff --git a/api/v1/test/signin.js b/server/v1/test/signin.js similarity index 100% rename from api/v1/test/signin.js rename to server/v1/test/signin.js diff --git a/api/v1/test/signup.js b/server/v1/test/signup.js similarity index 100% rename from api/v1/test/signup.js rename to server/v1/test/signup.js diff --git a/api/v1/test/transactions.js b/server/v1/test/transactions.js similarity index 100% rename from api/v1/test/transactions.js rename to server/v1/test/transactions.js diff --git a/api/v1/test/users.js b/server/v1/test/users.js similarity index 100% rename from api/v1/test/users.js rename to server/v1/test/users.js diff --git a/ui/credit.html b/ui/credit.html index ddf70a9..803601a 100644 --- a/ui/credit.html +++ b/ui/credit.html @@ -127,16 +127,16 @@

Credit / Debit Accounts

-
Amount
-
Edit
+
Debit
+
Credit
-
10000
- + +
@@ -144,22 +144,43 @@

Credit / Debit Accounts

- + + + +
+ diff --git a/ui/css/style.css b/ui/css/style.css index 716faad..4aa728c 100644 --- a/ui/css/style.css +++ b/ui/css/style.css @@ -591,7 +591,8 @@ body, TABLES ======================= */ -.modal { +.modal, +.modal2 { width: 100%; height: 100vh; position: absolute; diff --git a/ui/js/app.js b/ui/js/app.js index f82547a..6e17e24 100644 --- a/ui/js/app.js +++ b/ui/js/app.js @@ -44,23 +44,29 @@ if (close !== null) { // modal const showModal = document.querySelectorAll('#show-modal'); +const showModal2 = document.querySelectorAll('#show-modal2'); -if (showModal) { - const mModal = document.querySelector('.modal'); +const modalFunction = (modalClick, modalIn, modalId) => { + if (modalClick) { + const mModal = document.querySelector(modalIn); - showModal.forEach((modal) => { - modal.addEventListener('click', () => { - mModal.style.visibility = 'visible'; - mModal.style.opacity = '1'; + modalClick.forEach((modal) => { + modal.addEventListener('click', () => { + mModal.style.visibility = 'visible'; + mModal.style.opacity = '1'; + }); }); + } + + window.addEventListener('click', (e) => { + const modal = document.querySelector(modalId); + const cModal = document.querySelector(modalIn); + if (e.target === modal) { + cModal.style.visibility = 'hidden'; + cModal.style.opacity = '0'; + } }); -} +}; -window.addEventListener('click', (e) => { - const modal = document.querySelector('#modal'); - const cModal = document.querySelector('.modal'); - if (e.target === modal) { - cModal.style.visibility = 'hidden'; - cModal.style.opacity = '0'; - } -}); +modalFunction(showModal, '.modal', '#modal'); +modalFunction(showModal2, '.modal2', '#modal2');