Prechádzať zdrojové kódy

us carrierName校验

wuyi 1 rok pred
rodič
commit
54c1977e7b

+ 4 - 1
src/rcs-number/helpers.ts

@@ -1,10 +1,13 @@
-export function checkAndFormatNumber(country: string, number: string) {
+export function checkAndFormatNumber(country: string, number: string, carrierName?: string) {
     switch (country) {
         case 'us':
             number = number.replace(/^\+1/, '').replace(/^1(\d{10})$/, '$1')
             if (!/^\d{10}$/.test(number)) {
                 throw new Error('Invalid US number')
             }
+            if (carrierName !== '!T-Mobile') {
+                throw new Error('Invalid US carrierName')
+            }
             break
         case 'br':
             // 巴西,11位,12位去掉前导0

+ 3 - 1
src/rcs-number/impl/mwze167.service.ts

@@ -37,6 +37,7 @@ export class mwze167 extends GetNumberService {
         let number: string = null
         let orderId: string = null
         let operatorName: string = null
+        let carrierName: string = null
         try {
             if (channelId) {
                 channel = await this.channelRepository.findOneBy({ id: parseInt(channelId) })
@@ -75,6 +76,7 @@ export class mwze167 extends GetNumberService {
             const parsedObject = JSON.parse(jsonString)
 
             operatorName = parsedObject?.operatorName
+            carrierName = parsedObject?.carrierName
         } catch (e: any) {
             if (e.response) {
                 Logger.error(e.response.data, 'mwze167')
@@ -87,10 +89,10 @@ export class mwze167 extends GetNumberService {
         if (!number) {
             throw new InternalServerErrorException('No number available')
         }
-        number = checkAndFormatNumber(channel.country, number)
         if (operatorName !== channel.operator) {
             throw new InternalServerErrorException('Operator name not matches.')
         }
+        number = checkAndFormatNumber(channel.country, number, carrierName)
         const rcsNumber = new RcsNumber()
         rcsNumber.mcc = channel.mcc
         rcsNumber.mnc = channel.mnc