@@ -48,21 +48,32 @@ export async function POST(request: Request) {
48
48
49
49
// 1. Validate user input
50
50
const lookupService = await getLookupService ( ) ;
51
- const lookupResult = await lookupService . phoneNumbers ( data . phone ) . fetch ( ) ;
51
+ const lookupResult = await lookupService
52
+ . phoneNumbers ( data . phone )
53
+ . fetch ( { fields : "sms_pumping_risk" } ) ;
52
54
if ( ! data . phone || ! data ?. item ?. title || ! data . event ) {
53
55
return new Response ( "Missing required fields" , {
54
56
status : 400 ,
55
57
statusText : "Missing required fields" ,
56
58
} ) ;
57
59
}
58
60
59
- // TODO potentially check sms_pumping_risk here
60
61
if ( ! lookupResult . valid ) {
61
62
return new Response ( "Phone number is invalid" , {
62
63
status : 400 ,
63
64
statusText : "Phone number is invalid" ,
64
65
} ) ;
65
66
}
67
+ if ( lookupResult ?. smsPumpingRisk ?. sms_pumping_risk_score >= 60 ) {
68
+ return new Response (
69
+ "Phone number is at high risk of SMS pumping. Please try again later." ,
70
+ {
71
+ status : 400 ,
72
+ statusText :
73
+ "Phone number is at high risk of SMS pumping. Please try again later." ,
74
+ } ,
75
+ ) ;
76
+ }
66
77
67
78
// 2. Fetch event data
68
79
const syncService = await getSyncService ( ) ;
@@ -80,7 +91,9 @@ export async function POST(request: Request) {
80
91
}
81
92
82
93
// 3. Create new conversation
83
- const sender = data . whatsapp ? `whatsapp:${ lookupResult . phoneNumber } ` : lookupResult . phoneNumber ;
94
+ const sender = data . whatsapp
95
+ ? `whatsapp:${ lookupResult . phoneNumber } `
96
+ : lookupResult . phoneNumber ;
84
97
const participantConversations = await getConversationsOfSender ( sender ) ;
85
98
const activeConversations = participantConversations . filter (
86
99
( conv ) => conv . conversationState === "active" ,
0 commit comments