From 05cba4e5c7704d56cd374f3e1cf8de380c227de8 Mon Sep 17 00:00:00 2001 From: Matteus Date: Thu, 2 Dec 2021 20:34:52 +0100 Subject: [PATCH 01/10] Small changes --- src/Interfaces/Events/MainOnEvents.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Interfaces/Events/MainOnEvents.ts b/src/Interfaces/Events/MainOnEvents.ts index 515138c..3fd72cf 100644 --- a/src/Interfaces/Events/MainOnEvents.ts +++ b/src/Interfaces/Events/MainOnEvents.ts @@ -10,5 +10,5 @@ export interface MainOnEvents invoice_notified: IInvoice; order_created: IOrder; order_updated: IOrder; - order_deleted: IOrder; + order_deleted: IOrder; } \ No newline at end of file From fee8cc012b380cde56912b6e0b24a54f131cc2c3 Mon Sep 17 00:00:00 2001 From: Tolfx Date: Fri, 3 Dec 2021 14:08:09 +0100 Subject: [PATCH 02/10] Moved file Customers --- src/Database/Schemas/{ => Customers}/Customer.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) rename src/Database/Schemas/{ => Customers}/Customer.ts (90%) diff --git a/src/Database/Schemas/Customer.ts b/src/Database/Schemas/Customers/Customer.ts similarity index 90% rename from src/Database/Schemas/Customer.ts rename to src/Database/Schemas/Customers/Customer.ts index 0e826ee..13e0081 100644 --- a/src/Database/Schemas/Customer.ts +++ b/src/Database/Schemas/Customers/Customer.ts @@ -1,7 +1,7 @@ import mongoose, { Document, model, Schema } from "mongoose" import increment from "mongoose-auto-increment"; -import { MongoDB_URI } from "../../Config"; -import { ICustomer } from "../../Interfaces/Customer"; +import { MongoDB_URI } from "../../../Config"; +import { ICustomer } from "../../../Interfaces/Customer"; const CustomerSchema = new Schema ( From 2f921c651a491d0d5f350e7b19259d546b7bf164 Mon Sep 17 00:00:00 2001 From: Tolfx Date: Fri, 3 Dec 2021 14:08:21 +0100 Subject: [PATCH 03/10] Password Reset for Customer #40 --- .../Schemas/Customers/PasswordReset.ts | 27 +++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 src/Database/Schemas/Customers/PasswordReset.ts diff --git a/src/Database/Schemas/Customers/PasswordReset.ts b/src/Database/Schemas/Customers/PasswordReset.ts new file mode 100644 index 0000000..288790a --- /dev/null +++ b/src/Database/Schemas/Customers/PasswordReset.ts @@ -0,0 +1,27 @@ +import { model, Schema } from "mongoose" + +const PasswordResetSchema = new Schema +( + { + + token: { + type: String, + required: true, + }, + + email: { + type: String, + required: true, + }, + + used: { + type: Boolean, + default: false, + } + + } +); + +const PasswordResetModel = model("password_reset", PasswordResetSchema); + +export default PasswordResetModel; \ No newline at end of file From 2c6ab410d44b26341cbc469aa3ab72db44411d99 Mon Sep 17 00:00:00 2001 From: Tolfx Date: Fri, 3 Dec 2021 14:08:37 +0100 Subject: [PATCH 04/10] Modified for moved file --- src/Cache/reCache.ts | 2 +- src/Cron/CronInvoices.ts | 2 +- src/Lib/Invoices/CreatePDFInvoice.ts | 2 +- src/Payments/Stripe.ts | 2 +- src/Plugins/PluginHandler.ts | 2 +- src/Routes/v2/Customers/Customers.controller.ts | 2 +- src/Routes/v2/Orders/Orders.config.ts | 2 +- src/Routes/v2/Orders/Orders.controller.ts | 2 +- 8 files changed, 8 insertions(+), 8 deletions(-) diff --git a/src/Cache/reCache.ts b/src/Cache/reCache.ts index c87e887..480dbe6 100644 --- a/src/Cache/reCache.ts +++ b/src/Cache/reCache.ts @@ -1,6 +1,6 @@ import AdminModel from "../Database/Schemas/Administrators"; import CategoryModel from "../Database/Schemas/Category"; -import CustomerModel from "../Database/Schemas/Customer"; +import CustomerModel from "../Database/Schemas/Customers/Customer"; import ImageModel from "../Database/Schemas/Images"; import OrderModel from "../Database/Schemas/Orders"; import ProductModel from "../Database/Schemas/Products"; diff --git a/src/Cron/CronInvoices.ts b/src/Cron/CronInvoices.ts index 265e020..d55457f 100644 --- a/src/Cron/CronInvoices.ts +++ b/src/Cron/CronInvoices.ts @@ -2,7 +2,7 @@ import { CronJob } from "cron"; import InvoiceModel from "../Database/Schemas/Invoices"; import Logger from "../Lib/Logger"; import dateFormat from "date-and-time"; -import CustomerModel from "../Database/Schemas/Customer"; +import CustomerModel from "../Database/Schemas/Customers/Customer"; import { d_Days } from "../Config"; import { sendInvoiceEmail, sendLateInvoiceEmail } from "../Lib/Invoices/SendEmail"; diff --git a/src/Lib/Invoices/CreatePDFInvoice.ts b/src/Lib/Invoices/CreatePDFInvoice.ts index 28dafdc..87392d8 100644 --- a/src/Lib/Invoices/CreatePDFInvoice.ts +++ b/src/Lib/Invoices/CreatePDFInvoice.ts @@ -1,4 +1,4 @@ -import CustomerModel from "../../Database/Schemas/Customer"; +import CustomerModel from "../../Database/Schemas/Customers/Customer"; import { IInvoice } from "../../Interfaces/Invoice"; import easyinvoice from 'easyinvoice'; import { createSwishQRCode } from "../../Payments/Swish"; diff --git a/src/Payments/Stripe.ts b/src/Payments/Stripe.ts index ce413fc..97d9cca 100644 --- a/src/Payments/Stripe.ts +++ b/src/Payments/Stripe.ts @@ -1,6 +1,6 @@ import stripe from "stripe"; import { Company_Currency, DebugMode, Stripe_SK_Live, Stripe_SK_Test } from "../Config"; -import CustomerModel from "../Database/Schemas/Customer"; +import CustomerModel from "../Database/Schemas/Customers/Customer"; import TransactionsModel from "../Database/Schemas/Transactions"; import { IInvoice } from "../Interfaces/Invoice"; import { idTransicitons } from "../Lib/Generator"; diff --git a/src/Plugins/PluginHandler.ts b/src/Plugins/PluginHandler.ts index a220e58..f2e6c73 100644 --- a/src/Plugins/PluginHandler.ts +++ b/src/Plugins/PluginHandler.ts @@ -1,6 +1,6 @@ import { Application } from "express"; import CategoryModel from "../Database/Schemas/Category"; -import CustomerModel from "../Database/Schemas/Customer"; +import CustomerModel from "../Database/Schemas/Customers/Customer"; import ImageModel from "../Database/Schemas/Images"; import InvoiceModel from "../Database/Schemas/Invoices"; import OrderModel from "../Database/Schemas/Orders"; diff --git a/src/Routes/v2/Customers/Customers.controller.ts b/src/Routes/v2/Customers/Customers.controller.ts index 228e243..e0682d4 100644 --- a/src/Routes/v2/Customers/Customers.controller.ts +++ b/src/Routes/v2/Customers/Customers.controller.ts @@ -1,6 +1,6 @@ import { Request, Response } from "express"; import bcrypt from "bcryptjs"; -import CustomerModel from "../../../Database/Schemas/Customer"; +import CustomerModel from "../../../Database/Schemas/Customers/Customer"; import { ICustomer } from "../../../Interfaces/Customer"; import { idCustomer } from "../../../Lib/Generator"; import { APIError, APISuccess } from "../../../Lib/Response"; diff --git a/src/Routes/v2/Orders/Orders.config.ts b/src/Routes/v2/Orders/Orders.config.ts index 71f7694..14a30e9 100644 --- a/src/Routes/v2/Orders/Orders.config.ts +++ b/src/Routes/v2/Orders/Orders.config.ts @@ -1,5 +1,5 @@ import { Application, Router } from "express"; -import CustomerModel from "../../../Database/Schemas/Customer"; +import CustomerModel from "../../../Database/Schemas/Customers/Customer"; import OrderModel from "../../../Database/Schemas/Orders"; import ProductModel from "../../../Database/Schemas/Products"; import { IPayments } from "../../../Interfaces/Payments"; diff --git a/src/Routes/v2/Orders/Orders.controller.ts b/src/Routes/v2/Orders/Orders.controller.ts index 0b136c9..035a670 100644 --- a/src/Routes/v2/Orders/Orders.controller.ts +++ b/src/Routes/v2/Orders/Orders.controller.ts @@ -8,7 +8,7 @@ import { APISuccess } from "../../../Lib/Response"; import BaseModelAPI from "../../../Models/BaseModelAPI"; import { createInvoiceFromOrder } from "../../../Lib/Orders/newInvoice"; import { SendEmail } from "../../../Email/Send"; -import CustomerModel from "../../../Database/Schemas/Customer"; +import CustomerModel from "../../../Database/Schemas/Customers/Customer"; import NewOrderCreated from "../../../Email/Templates/Orders/NewOrderCreated"; import { Company_Name } from "../../../Config"; From f226002f4a3ccfce37450eec62945254fd9a0bb5 Mon Sep 17 00:00:00 2001 From: Tolfx Date: Fri, 3 Dec 2021 14:08:58 +0100 Subject: [PATCH 05/10] Password reset token #40 --- src/Routes/v2/Customers/Customers.config.ts | 32 +++++++++++++++++++-- 1 file changed, 30 insertions(+), 2 deletions(-) diff --git a/src/Routes/v2/Customers/Customers.config.ts b/src/Routes/v2/Customers/Customers.config.ts index 1650789..4056651 100644 --- a/src/Routes/v2/Customers/Customers.config.ts +++ b/src/Routes/v2/Customers/Customers.config.ts @@ -1,13 +1,16 @@ import { Application, Router } from "express"; import EnsureAdmin from "../../../Middlewares/EnsureAdmin"; import CustomerController from "./Customers.controller"; -import { JWT_Access_Token } from "../../../Config"; +import { Full_Domain, JWT_Access_Token } from "../../../Config"; import jwt from "jsonwebtoken"; import bcrypt from "bcryptjs"; import { APIError, APISuccess } from "../../../Lib/Response"; -import CustomerModel from "../../../Database/Schemas/Customer"; +import CustomerModel from "../../../Database/Schemas/Customers/Customer"; import Logger from "../../../Lib/Logger"; import EnsureAuth from "../../../Middlewares/EnsureAuth"; +import crypto from "crypto"; +import PasswordResetModel from "../../../Database/Schemas/Customers/PasswordReset"; +import { SendEmail } from "../../../Email/Send"; export default class CustomerRouter { @@ -28,6 +31,31 @@ export default class CustomerRouter EnsureAuth(), CustomerController.getMyProfile ]); + + this.router.get("/my/reset-password", async (req, res) => { + const email = req.body.email; + const customer = await CustomerModel.findOne({ email }); + if(!customer) + return APIError(`Unable to find user with email ${email}`)(res); + + const randomToken = crypto.randomBytes(20).toString("hex"); + const token = crypto.createHash("sha256").update(randomToken).digest("hex"); + + new PasswordResetModel({ + email: customer.personal.email, + token: token + }).save(); + + SendEmail(customer.personal.email, "Reset Password", { + isHTML: true, + body: ` + Hello ${customer.personal.first_name}
+ Here is your reset password reset token: ${token} + ` + }); + + return APISuccess(`Succesfully created a reset password email`)(res); + }); this.router.get("/:uid", [ EnsureAdmin, From 4ae21c59062c3ff28381e47ad5940c1543b8cae0 Mon Sep 17 00:00:00 2001 From: Matteus Date: Fri, 3 Dec 2021 15:03:52 +0100 Subject: [PATCH 06/10] Small changes --- src/Cache/CacheAdmin.ts | 2 -- .../v2/Customers/Customers.controller.ts | 18 ++++++++++++++++++ 2 files changed, 18 insertions(+), 2 deletions(-) diff --git a/src/Cache/CacheAdmin.ts b/src/Cache/CacheAdmin.ts index 5839ab6..0f46363 100644 --- a/src/Cache/CacheAdmin.ts +++ b/src/Cache/CacheAdmin.ts @@ -6,10 +6,8 @@ export const CacheAdmin = new Map(); export function getAdminByUsername(username: IAdministrator["username"]) { for (const [key, value] of CacheAdmin.entries()) - { if(value.username === username) return key; - } return null; } \ No newline at end of file diff --git a/src/Routes/v2/Customers/Customers.controller.ts b/src/Routes/v2/Customers/Customers.controller.ts index 228e243..514fafc 100644 --- a/src/Routes/v2/Customers/Customers.controller.ts +++ b/src/Routes/v2/Customers/Customers.controller.ts @@ -6,6 +6,10 @@ import { idCustomer } from "../../../Lib/Generator"; import { APIError, APISuccess } from "../../../Lib/Response"; import BaseModelAPI from "../../../Models/BaseModelAPI"; import Logger from "../../../Lib/Logger"; +import { SendEmail } from "../../../Email/Send"; +import { Company_Name } from "../../../Config"; +import Footer from "../../../Email/Templates/General/Footer"; +import getFullName from "../../../Lib/Customers/getFullName"; const API_CustomerModel = new BaseModelAPI(idCustomer, CustomerModel); @@ -28,6 +32,20 @@ function insert(req: Request, res: Response) API_CustomerModel.create(req.body) .then((result) => { + + // Send email to customer + SendEmail(result.personal.email, `Welcome to ${Company_Name}`, { + isHTML: true, + body: ` + Welcome ${getFullName(result)} tp ${Company_Name}!
+
+ Your account has been created.
+ With email: ${result.personal.email}
+
+
+ ${Footer}` + }); + APISuccess({ uid: result.uid })(res); From 634a5d7cf7a5809e79f4eb7a1aed3865b870eb5f Mon Sep 17 00:00:00 2001 From: Matteus Date: Fri, 3 Dec 2021 15:37:35 +0100 Subject: [PATCH 07/10] Possible to reset password #40 --- src/Routes/v2/Customers/Customers.config.ts | 117 +++++++++++++++++++- 1 file changed, 114 insertions(+), 3 deletions(-) diff --git a/src/Routes/v2/Customers/Customers.config.ts b/src/Routes/v2/Customers/Customers.config.ts index 4056651..7b8454a 100644 --- a/src/Routes/v2/Customers/Customers.config.ts +++ b/src/Routes/v2/Customers/Customers.config.ts @@ -11,6 +11,7 @@ import EnsureAuth from "../../../Middlewares/EnsureAuth"; import crypto from "crypto"; import PasswordResetModel from "../../../Database/Schemas/Customers/PasswordReset"; import { SendEmail } from "../../../Email/Send"; +import Footer from "../../../Email/Templates/General/Footer"; export default class CustomerRouter { @@ -32,9 +33,9 @@ export default class CustomerRouter CustomerController.getMyProfile ]); - this.router.get("/my/reset-password", async (req, res) => { + this.router.post("/my/reset-password", async (req, res) => { const email = req.body.email; - const customer = await CustomerModel.findOne({ email }); + const customer = await CustomerModel.findOne({ "personal.email": email }); if(!customer) return APIError(`Unable to find user with email ${email}`)(res); @@ -50,12 +51,122 @@ export default class CustomerRouter isHTML: true, body: ` Hello ${customer.personal.first_name}
- Here is your reset password reset token: ${token} + Here is your reset password link: Reset password ` }); return APISuccess(`Succesfully created a reset password email`)(res); }); + + this.router.get("/my/reset-password/:token", async (req, res) => { + const token = req.params.token; + const passwordReset = await PasswordResetModel.findOne({ token: token }) as any; + if(!passwordReset) + return APIError(`Unable to find password reset token`)(res); + + if(!passwordReset.token) + return APIError(`Unable to find password reset token`)(res); + + if(passwordReset.used) + return APIError(`This password reset token has already been used`)(res); + + const customer = await CustomerModel.findOne({ "personal.email": passwordReset.email }); + if(!customer) + return APIError(`Unable to find user with email ${passwordReset.email}`)(res); + + return res.send(` + + + + +
+ + + +
+ ${Footer} + + + `); + }); + + this.router.post("/my/new-password", async (req, res) => { + const token = req.query.token; + const password = req.body.password; + + if(!password) + return APIError(`Password is required`)(res); + + const passwordReset = await PasswordResetModel.findOne({ token: token }) as any; + if(!passwordReset) + return APIError(`Unable to find password reset token`)(res); + + if(!passwordReset.token) + return APIError(`Unable to find password reset token`)(res); + + if(passwordReset.used) + return APIError(`This password reset token has already been used`)(res); + + const customer = await CustomerModel.findOne({ "personal.email": passwordReset.email }); + if(!customer) + return APIError(`Unable to find user with email ${passwordReset.email}`)(res); + + const genSalt = await bcrypt.genSalt(10); + customer.password = bcrypt.hashSync(password, genSalt); + await customer.save(); + passwordReset.used = true; + await passwordReset.save(); + res.send(` + + + +

Password reset successful

+
+

You can now login with your new password

+
+ ${Footer} + + + `); + }); this.router.get("/:uid", [ EnsureAdmin, From 865abd942b09d558df1571f2fbccee1841d5e8fd Mon Sep 17 00:00:00 2001 From: Matteus Date: Fri, 3 Dec 2021 15:37:44 +0100 Subject: [PATCH 08/10] Test on reset password #40 --- test/Customer.rest | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/test/Customer.rest b/test/Customer.rest index 62bf70c..5530675 100644 --- a/test/Customer.rest +++ b/test/Customer.rest @@ -8,4 +8,12 @@ Content-Type: application/json ### GET http://localhost:8080/v2/customers/my/profile -Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJkYXRhIjp7ImlkIjo1LCJlbWFpbCI6ImpvaG5AZG9lLmNvbSJ9LCJleHAiOjE2Mzg0MzEzODQsImlhdCI6MTYzODM0NDk4NH0.bWmhMafQCWYXenQojxMaTihnI1v6g2xl2_G9KhHbDMY \ No newline at end of file +Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJkYXRhIjp7ImlkIjo1LCJlbWFpbCI6ImpvaG5AZG9lLmNvbSJ9LCJleHAiOjE2Mzg0MzEzODQsImlhdCI6MTYzODM0NDk4NH0.bWmhMafQCWYXenQojxMaTihnI1v6g2xl2_G9KhHbDMY + +### +POST http://localhost:8080/v2/customers/my/reset-password +Content-Type: application/json + +{ + "email": "matteus@tolfx.dev" +} \ No newline at end of file From d0dbd20df96fafdd070fca3670c7650dd5622c6c Mon Sep 17 00:00:00 2001 From: Matteus Date: Fri, 3 Dec 2021 18:32:09 +0100 Subject: [PATCH 09/10] Fixed spelling mistake #30 --- src/Routes/v2/Customers/Customers.controller.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Routes/v2/Customers/Customers.controller.ts b/src/Routes/v2/Customers/Customers.controller.ts index b7855a5..5b72cf4 100644 --- a/src/Routes/v2/Customers/Customers.controller.ts +++ b/src/Routes/v2/Customers/Customers.controller.ts @@ -37,7 +37,7 @@ function insert(req: Request, res: Response) SendEmail(result.personal.email, `Welcome to ${Company_Name}`, { isHTML: true, body: ` - Welcome ${getFullName(result)} tp ${Company_Name}!
+ Welcome ${getFullName(result)} to ${Company_Name}!

Your account has been created.
With email: ${result.personal.email}
From 04ab2839f7dce74053ae5645b981c01eac114444 Mon Sep 17 00:00:00 2001 From: Matteus Date: Fri, 3 Dec 2021 19:15:35 +0100 Subject: [PATCH 10/10] Modified < list > --- .../v2/Categories/Categories.controller.ts | 24 +++++++------------ .../ConfigurableOptions.controller.ts | 13 ++++------ .../v2/Customers/Customers.controller.ts | 23 +++++++----------- src/Routes/v2/Images/Images.controller.ts | 13 ++++------ src/Routes/v2/Invoices/Invoices.controller.ts | 23 +++++++----------- src/Routes/v2/Orders/Orders.controller.ts | 23 +++++++----------- src/Routes/v2/Products/Products.controller.ts | 13 ++++------ .../Transactions/Transactions.controller.ts | 23 +++++++----------- 8 files changed, 57 insertions(+), 98 deletions(-) diff --git a/src/Routes/v2/Categories/Categories.controller.ts b/src/Routes/v2/Categories/Categories.controller.ts index 6c1f821..fd85e4c 100644 --- a/src/Routes/v2/Categories/Categories.controller.ts +++ b/src/Routes/v2/Categories/Categories.controller.ts @@ -27,23 +27,17 @@ function getByUid(req: Request, res: Response) function list(req: Request, res: Response) { - let limit = parseInt(req.query.limit as string) - && parseInt(req.query.limit as string) <= 100 ? - parseInt(req.query.limit as string) - : - 10; - let page = 0; + let limit = parseInt(req.query._end as string) + && parseInt(req.query._end as string) <= 100 ? + parseInt(req.query._end as string) + : + 25; + let start = 0; if(req.query) - { - if(req.query.page) - { - let p = parseInt(req.query.page as string); - page = Number.isInteger(p) ? p : 0; - } - } + if(req.query._start) + start = Number.isInteger(parseInt(req.query._start as string)) ? parseInt(req.query._start as string) : 0; - //@ts-ignore - API_CategoryModel.findAll(limit, page).then((result: any) => { + API_CategoryModel.findAll(limit, start).then((result: any) => { APISuccess(result)(res) }) } diff --git a/src/Routes/v2/ConfigurableOptions/ConfigurableOptions.controller.ts b/src/Routes/v2/ConfigurableOptions/ConfigurableOptions.controller.ts index 5261490..752d84a 100644 --- a/src/Routes/v2/ConfigurableOptions/ConfigurableOptions.controller.ts +++ b/src/Routes/v2/ConfigurableOptions/ConfigurableOptions.controller.ts @@ -28,18 +28,13 @@ function list(req: Request, res: Response) { let limit = parseInt(req.query._end as string) && parseInt(req.query._end as string) <= 100 ? - parseInt(req.query._end as string) - : - 25; + parseInt(req.query._end as string) + : + 25; let start = 0; if(req.query) - { if(req.query._start) - { - let p = parseInt(req.query._start as string); - start = Number.isInteger(p) ? p : 0; - } - } + start = Number.isInteger(parseInt(req.query._start as string)) ? parseInt(req.query._start as string) : 0; API.findAll(limit, start).then((result: any) => { APISuccess(result)(res) diff --git a/src/Routes/v2/Customers/Customers.controller.ts b/src/Routes/v2/Customers/Customers.controller.ts index 5b72cf4..6e922b1 100644 --- a/src/Routes/v2/Customers/Customers.controller.ts +++ b/src/Routes/v2/Customers/Customers.controller.ts @@ -63,22 +63,17 @@ function getByUid(req: Request, res: Response) function list(req: Request, res: Response) { - let limit = parseInt(req.query.limit as string) - && parseInt(req.query.limit as string) <= 100 ? - parseInt(req.query.limit as string) - : - 10; - let page = 0; + let limit = parseInt(req.query._end as string) + && parseInt(req.query._end as string) <= 100 ? + parseInt(req.query._end as string) + : + 25; + let start = 0; if(req.query) - { - if(req.query.page) - { - let p = parseInt(req.query.page as string); - page = Number.isInteger(p) ? p : 0; - } - } + if(req.query._start) + start = Number.isInteger(parseInt(req.query._start as string)) ? parseInt(req.query._start as string) : 0; - API_CustomerModel.findAll(limit, page).then((result: any) => { + API_CustomerModel.findAll(limit, start).then((result: any) => { APISuccess(result)(res) }); } diff --git a/src/Routes/v2/Images/Images.controller.ts b/src/Routes/v2/Images/Images.controller.ts index 73db863..66b64d9 100644 --- a/src/Routes/v2/Images/Images.controller.ts +++ b/src/Routes/v2/Images/Images.controller.ts @@ -27,18 +27,13 @@ function list(req: Request, res: Response) { let limit = parseInt(req.query._end as string) && parseInt(req.query._end as string) <= 100 ? - parseInt(req.query._end as string) - : - 25; + parseInt(req.query._end as string) + : + 25; let start = 0; if(req.query) - { if(req.query._start) - { - let p = parseInt(req.query._start as string); - start = Number.isInteger(p) ? p : 0; - } - } + start = Number.isInteger(parseInt(req.query._start as string)) ? parseInt(req.query._start as string) : 0; API.findAll(limit, start).then((result: any) => { APISuccess(result)(res) diff --git a/src/Routes/v2/Invoices/Invoices.controller.ts b/src/Routes/v2/Invoices/Invoices.controller.ts index 18d2de3..aec46f1 100644 --- a/src/Routes/v2/Invoices/Invoices.controller.ts +++ b/src/Routes/v2/Invoices/Invoices.controller.ts @@ -26,22 +26,17 @@ function getByUid(req: Request, res: Response) function list(req: Request, res: Response) { - let limit = parseInt(req.query.limit as string) - && parseInt(req.query.limit as string) <= 100 ? - parseInt(req.query.limit as string) - : - 10; - let page = 0; + let limit = parseInt(req.query._end as string) + && parseInt(req.query._end as string) <= 100 ? + parseInt(req.query._end as string) + : + 25; + let start = 0; if(req.query) - { - if(req.query.page) - { - let p = parseInt(req.query.page as string); - page = Number.isInteger(p) ? p : 0; - } - } + if(req.query._start) + start = Number.isInteger(parseInt(req.query._start as string)) ? parseInt(req.query._start as string) : 0; - API.findAll(limit, page).then((result: any) => { + API.findAll(limit, start).then((result: any) => { APISuccess(result)(res) }); } diff --git a/src/Routes/v2/Orders/Orders.controller.ts b/src/Routes/v2/Orders/Orders.controller.ts index 035a670..e598448 100644 --- a/src/Routes/v2/Orders/Orders.controller.ts +++ b/src/Routes/v2/Orders/Orders.controller.ts @@ -59,22 +59,17 @@ function getByUid(req: Request, res: Response) function list(req: Request, res: Response) { - let limit = parseInt(req.query.limit as string) - && parseInt(req.query.limit as string) <= 100 ? - parseInt(req.query.limit as string) - : - 10; - let page = 0; + let limit = parseInt(req.query._end as string) + && parseInt(req.query._end as string) <= 100 ? + parseInt(req.query._end as string) + : + 25; + let start = 0; if(req.query) - { - if(req.query.page) - { - let p = parseInt(req.query.page as string); - page = Number.isInteger(p) ? p : 0; - } - } + if(req.query._start) + start = Number.isInteger(parseInt(req.query._start as string)) ? parseInt(req.query._start as string) : 0; - API.findAll(limit, page).then((result: any) => { + API.findAll(limit, start).then((result: any) => { APISuccess(result)(res) }); } diff --git a/src/Routes/v2/Products/Products.controller.ts b/src/Routes/v2/Products/Products.controller.ts index 443e2a3..b0b094e 100644 --- a/src/Routes/v2/Products/Products.controller.ts +++ b/src/Routes/v2/Products/Products.controller.ts @@ -28,18 +28,13 @@ function list(req: Request, res: Response) { let limit = parseInt(req.query._end as string) && parseInt(req.query._end as string) <= 100 ? - parseInt(req.query._end as string) - : - 25; + parseInt(req.query._end as string) + : + 25; let start = 0; if(req.query) - { if(req.query._start) - { - let p = parseInt(req.query._start as string); - start = Number.isInteger(p) ? p : 0; - } - } + start = Number.isInteger(parseInt(req.query._start as string)) ? parseInt(req.query._start as string) : 0; API.findAll(limit, start).then((result: any) => { APISuccess(result)(res) diff --git a/src/Routes/v2/Transactions/Transactions.controller.ts b/src/Routes/v2/Transactions/Transactions.controller.ts index 65f7b47..8c20577 100644 --- a/src/Routes/v2/Transactions/Transactions.controller.ts +++ b/src/Routes/v2/Transactions/Transactions.controller.ts @@ -26,22 +26,17 @@ function getByUid(req: Request, res: Response) function list(req: Request, res: Response) { - let limit = parseInt(req.query.limit as string) - && parseInt(req.query.limit as string) <= 100 ? - parseInt(req.query.limit as string) - : - 10; - let page = 0; + let limit = parseInt(req.query._end as string) + && parseInt(req.query._end as string) <= 100 ? + parseInt(req.query._end as string) + : + 25; + let start = 0; if(req.query) - { - if(req.query.page) - { - let p = parseInt(req.query.page as string); - page = Number.isInteger(p) ? p : 0; - } - } + if(req.query._start) + start = Number.isInteger(parseInt(req.query._start as string)) ? parseInt(req.query._start as string) : 0; - API.findAll(limit, page).then((result: any) => { + API.findAll(limit, start).then((result: any) => { APISuccess(result)(res) }); }