File size: 960 Bytes
02fbdc7
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
from engine.flow_router import route_message
from sessions import get_session, upsert_session


def process_message(bot_number: str, customer_phone: str, text: str):
    session = get_session(customer_phone, bot_number)

    if not session:
        session = {
            "current_state": "START",
            "flow_type": None,
            "flow_data": {
                "uid": f"{bot_number}__{customer_phone}"
            }
        }

    state = session.get("current_state", "START")
    result = route_message(state, text, session)

    next_state = result["next_state"]
    flow_data = result.get("flow_data", session.get("flow_data", {}))
    flow_type = flow_data.get("customer_type")

    upsert_session(
        customer_phone=customer_phone,
        bot_number=bot_number,
        current_state=next_state,
        flow_type=flow_type,
        flow_data=flow_data,
        last_message=text,
    )

    return result