From 8b467cb832def40bed65863e0bbf53ea27b05266 Mon Sep 17 00:00:00 2001 From: Mahyargdz Date: Sat, 24 May 2025 16:20:56 +0330 Subject: [PATCH] chore: fix the sms length bug --- src/modules/tickets/tickets.controller.ts | 8 ++++ src/modules/utils/providers/sms.service.ts | 41 +++++++++++---------- src/modules/utils/providers/string.utils.ts | 4 ++ 3 files changed, 33 insertions(+), 20 deletions(-) create mode 100644 src/modules/utils/providers/string.utils.ts diff --git a/src/modules/tickets/tickets.controller.ts b/src/modules/tickets/tickets.controller.ts index beb869b..100cf64 100755 --- a/src/modules/tickets/tickets.controller.ts +++ b/src/modules/tickets/tickets.controller.ts @@ -69,6 +69,14 @@ export class TicketsController { return this.ticketsService.createTicket(createDto, userId); } + // @ApiOperation({ summary: "create ticket by admin" }) + // @AdminRoute() + // @PermissionsDec(PermissionEnum.TICKETS) + // @Post("admin") + // createTicketByAdmin(@Body() createDto: CreateTicketDto, @UserDec("id") adminId: string) { + // return this.ticketsService.createTicketByAdmin(createDto, adminId); + // } + @ApiOperation({ summary: "Get all tickets of user ==> user route" }) @Get() getTickets(@Query() queryDto: SearchTicketQueryDto, @UserDec("id") userId: string) { diff --git a/src/modules/utils/providers/sms.service.ts b/src/modules/utils/providers/sms.service.ts index 68a8f6a..b912552 100755 --- a/src/modules/utils/providers/sms.service.ts +++ b/src/modules/utils/providers/sms.service.ts @@ -6,6 +6,7 @@ import { catchError, firstValueFrom } from "rxjs"; import { SmsMessage } from "../../../common/enums/message.enum"; import { ISmsConfigs } from "../../../configs/sms.config"; import { SMS_CONFIG } from "../constants"; +import { truncateIfLong } from "./string.utils"; import { ISmsGetLineResponse, ISmsVerifyBody, ISmsVerifyResponse } from "../interfaces/ISms"; @Injectable() @@ -58,7 +59,7 @@ export class SmsService { { name: "code", value: otpCode }, { name: "invoiceId", value: invoiceId.toString() }, { name: "price", value: Intl.NumberFormat("fa-IR").format(price) }, - { name: "items", value: items }, + { name: "items", value: truncateIfLong(items) }, ], Mobile: mobile, TemplateId: this.smsConfigs.SMS_PATTERN_INVOICE, @@ -120,7 +121,7 @@ export class SmsService { Parameters: [ { name: "invoiceId", value: invoiceId }, { name: "price", value: Intl.NumberFormat("fa-IR").format(price) }, - { name: "items", value: items }, + { name: "items", value: truncateIfLong(items) }, { name: "invoiceDate", value: invoiceDate }, { name: "dueDate", value: dueDate }, ], @@ -152,8 +153,8 @@ export class SmsService { async sendAnnouncementSms(mobile: string, title: string, description: string, date: string) { const smsData: ISmsVerifyBody = { Parameters: [ - { name: "title", value: title }, - { name: "description", value: description }, + { name: "title", value: truncateIfLong(title) }, + { name: "description", value: truncateIfLong(description) }, { name: "date", value: date }, ], Mobile: mobile, @@ -216,7 +217,7 @@ export class SmsService { Parameters: [ { name: "amount", value: amount }, { name: "newBalance", value: newBalance }, - { name: "reason", value: reason }, + { name: "reason", value: truncateIfLong(reason) }, { name: "date", value: date }, ], Mobile: mobile, @@ -248,7 +249,7 @@ export class SmsService { const smsData: ISmsVerifyBody = { Parameters: [ { name: "ticketId", value: ticketId }, - { name: "subject", value: subject }, + { name: "subject", value: truncateIfLong(subject) }, { name: "date", value: date }, ], Mobile: mobile, @@ -279,7 +280,7 @@ export class SmsService { const smsData: ISmsVerifyBody = { Parameters: [ { name: "ticketId", value: ticketId }, - { name: "subject", value: subject }, + { name: "subject", value: truncateIfLong(subject) }, ], Mobile: mobile, TemplateId: this.smsConfigs.SMS_PATTERN_TICKET_ANSWERED, @@ -309,7 +310,7 @@ export class SmsService { const smsData: ISmsVerifyBody = { Parameters: [ { name: "ticketId", value: ticketId }, - { name: "subject", value: subject }, + { name: "subject", value: truncateIfLong(subject) }, { name: "user", value: user }, ], Mobile: mobile, @@ -500,7 +501,7 @@ export class SmsService { const smsData: ISmsVerifyBody = { Parameters: [ { name: "invoiceId", value: invoiceId }, - { name: "planName", value: planName }, + { name: "planName", value: truncateIfLong(planName) }, ], Mobile: mobile, TemplateId: this.smsConfigs.SMS_PATTERN_SUBSCRIPTION_CANCELLED, @@ -608,8 +609,8 @@ export class SmsService { async sendBlogNewCommentSms(mobile: string, blogTitle: string, fullName: string) { const smsData: ISmsVerifyBody = { Parameters: [ - { name: "blogTitle", value: blogTitle }, - { name: "fullName", value: fullName }, + { name: "blogTitle", value: truncateIfLong(blogTitle) }, + { name: "fullName", value: truncateIfLong(fullName) }, ], Mobile: mobile, TemplateId: this.smsConfigs.SMS_PATTERN_BLOG_NEW_COMMENT, @@ -639,8 +640,8 @@ export class SmsService { async sendNewServiceReviewSms(mobile: string, serviceName: string, fullName: string) { const smsData: ISmsVerifyBody = { Parameters: [ - { name: "serviceName", value: serviceName }, - { name: "fullName", value: fullName }, + { name: "serviceName", value: truncateIfLong(serviceName) }, + { name: "fullName", value: truncateIfLong(fullName) }, ], Mobile: mobile, TemplateId: this.smsConfigs.SMS_PATTERN_NEW_SERVICE_REVIEW, @@ -669,7 +670,7 @@ export class SmsService { async sendNewCustomerSms(mobile: string, newCustomerMobile: string, fullName: string) { const smsData: ISmsVerifyBody = { Parameters: [ - { name: "fullName", value: fullName }, + { name: "fullName", value: truncateIfLong(fullName) }, { name: "mobile", value: newCustomerMobile }, ], Mobile: mobile, @@ -699,8 +700,8 @@ export class SmsService { async sendNewSubscriptionSms(mobile: string, serviceName: string, fullName: string, date: string) { const smsData: ISmsVerifyBody = { Parameters: [ - { name: "serviceName", value: serviceName }, - { name: "fullName", value: fullName }, + { name: "serviceName", value: truncateIfLong(serviceName) }, + { name: "fullName", value: truncateIfLong(fullName) }, { name: "date", value: date }, ], Mobile: mobile, @@ -731,8 +732,8 @@ export class SmsService { const smsData: ISmsVerifyBody = { Parameters: [ { name: "ticketId", value: ticketId }, - { name: "subject", value: subject }, - { name: "fullName", value: fullName }, + { name: "subject", value: truncateIfLong(subject) }, + { name: "fullName", value: truncateIfLong(fullName) }, ], Mobile: mobile, TemplateId: this.smsConfigs.SMS_PATTERN_NEW_TICKET_GLOBAL, @@ -761,8 +762,8 @@ export class SmsService { async sendNewCriticismSms(mobile: string, title: string, fullName: string) { const smsData: ISmsVerifyBody = { Parameters: [ - { name: "title", value: title }, - { name: "fullName", value: fullName }, + { name: "title", value: truncateIfLong(title) }, + { name: "fullName", value: truncateIfLong(fullName) }, ], Mobile: mobile, TemplateId: this.smsConfigs.SMS_PATTERN_NEW_CRITICISM, diff --git a/src/modules/utils/providers/string.utils.ts b/src/modules/utils/providers/string.utils.ts new file mode 100644 index 0000000..8e0221e --- /dev/null +++ b/src/modules/utils/providers/string.utils.ts @@ -0,0 +1,4 @@ +export function truncateIfLong(str: string, maxLength = 30): string { + if (typeof str !== "string") return str; + return str.length > maxLength ? str.slice(0, maxLength) + "..." : str; +}