prevent multiple entries
Browse files- App/Messages/MessagesRoute.py +14 -14
App/Messages/MessagesRoute.py
CHANGED
@@ -26,7 +26,21 @@ async def receive_message(request: Request):
|
|
26 |
# Extract data from the message content using regex
|
27 |
text = message_data.payload.message
|
28 |
parsed_data = parse_message_content(text)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
29 |
|
|
|
30 |
# Create a new message record with parsed_data
|
31 |
new_message = await Message.create(
|
32 |
device_id=message_data.deviceId,
|
@@ -40,22 +54,8 @@ async def receive_message(request: Request):
|
|
40 |
parsed_data=parsed_data,
|
41 |
)
|
42 |
|
43 |
-
# Process Mpesa Payments
|
44 |
-
if parsed_data:
|
45 |
-
user: User = User.get_or_none(phoneNumber=parsed_data.phone_number)
|
46 |
-
data_plan: Plan = Plan.get_or_none(
|
47 |
-
amount=Decimal(parsed_data.amount_received)
|
48 |
-
)
|
49 |
-
payment_details = CreatePaymentRequest(
|
50 |
-
user_id=user.id,
|
51 |
-
plan_id=data_plan.id,
|
52 |
-
amount=Decimal(parsed_data.amount_received),
|
53 |
-
payment_method=PaymentMethod.MPESA,
|
54 |
-
transaction_id=parsed_data.transaction_id,
|
55 |
-
)
|
56 |
data = MessageResponse.from_orm(new_message)
|
57 |
|
58 |
-
payment: Payment = await create_payment(payment_details)
|
59 |
await payment.create_subscription_or_balance()
|
60 |
return data
|
61 |
except Exception as e:
|
|
|
26 |
# Extract data from the message content using regex
|
27 |
text = message_data.payload.message
|
28 |
parsed_data = parse_message_content(text)
|
29 |
+
# Process Mpesa Payments
|
30 |
+
if parsed_data:
|
31 |
+
user: User = User.get_or_none(phoneNumber=parsed_data.phone_number)
|
32 |
+
data_plan: Plan = Plan.get_or_none(
|
33 |
+
amount=Decimal(parsed_data.amount_received)
|
34 |
+
)
|
35 |
+
payment_details = CreatePaymentRequest(
|
36 |
+
user_id=user.id,
|
37 |
+
plan_id=data_plan.id,
|
38 |
+
amount=Decimal(parsed_data.amount_received),
|
39 |
+
payment_method=PaymentMethod.MPESA,
|
40 |
+
transaction_id=parsed_data.transaction_id,
|
41 |
+
)
|
42 |
|
43 |
+
payment: Payment = await create_payment(payment_details)
|
44 |
# Create a new message record with parsed_data
|
45 |
new_message = await Message.create(
|
46 |
device_id=message_data.deviceId,
|
|
|
54 |
parsed_data=parsed_data,
|
55 |
)
|
56 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
57 |
data = MessageResponse.from_orm(new_message)
|
58 |
|
|
|
59 |
await payment.create_subscription_or_balance()
|
60 |
return data
|
61 |
except Exception as e:
|