File tree 2 files changed +13
-48
lines changed
2 files changed +13
-48
lines changed Original file line number Diff line number Diff line change 14
14
15
15
""" DialogFlow CX: webhook to validate or invalidate form parameters snippet."""
16
16
17
- # [START dialogflow_v3beta1_webhook_validate_form_parameter]
18
-
19
- # TODO (developer): change entry point to validate_parameter in Cloud Function
20
17
18
+ # [START dialogflow_cx_v3_webhook_validate_form_parameter]
21
19
22
20
def validate_parameter (request ):
23
- """Webhook to validate or invalidate parameter based on conditions configured by the user."""
24
-
25
- request_dict = request .get_json ()
26
- param_to_validate = request_dict ["pageInfo" ]["formInfo" ]["parameterInfo" ][0 ][
27
- "value"
28
- ]
29
-
30
- if param_to_validate > 15 :
31
- text = "That is too many! Please pick another number."
32
- param_state = "INVALID"
33
- else :
34
- text = "That is a number I can work with!"
35
- param_state = "VALID"
36
-
37
- json_response = {
38
- "fulfillment_response" : {
39
- "messages" : [
40
- {
41
- "text" : {
42
- "text" : [
43
- text
44
- ], # fulfillment text response to be sent to the agent
45
- },
46
- },
47
- ],
48
- },
21
+ """Webhook will validate or invalidate parameter based on logic configured by the user."""
22
+ return {
49
23
"page_info" : {
50
24
"form_info" : {
51
25
"parameter_info" : [
52
26
{
53
- "displayName" : "paramToValidate" ,
27
+ "displayName" : 'orderNumber' ,
54
28
"required" : True ,
55
- "state" : param_state ,
29
+ "state" : 'INVALID' ,
30
+ "value" : 123 ,
56
31
},
57
32
],
58
33
},
59
34
},
60
35
"sessionInfo" : {
61
36
"parameters" : {
62
- # Set session parameter to null if your agent needs to reprompt the user
63
- "paramToValidate " : None
37
+ # Set session parameter to None if the form parameter is 'INVALID' and your agent needs to reprompt the user
38
+ "orderNumber " : None ,
64
39
},
65
40
},
66
41
}
67
42
68
- return json_response
69
-
70
-
71
- # [END dialogflow_v3beta1_webhook_validate_form_parameter]
43
+ # [END dialogflow_cx_v3_webhook_validate_form_parameter]
Original file line number Diff line number Diff line change @@ -25,21 +25,14 @@ def fixture_app():
25
25
return flask .Flask (__name__ )
26
26
27
27
28
- @pytest .mark .parametrize (
29
- "value,expected_response" ,
30
- [
31
- (15 , "That is a number I can work with!" ),
32
- (16 , "That is too many! Please pick another number." ),
33
- ],
34
- )
35
- def test_validate_parameter (value , expected_response , app ):
28
+ def test_validate_parameter (app ):
36
29
"""Parameterized test for validate form parameter webhook snippet."""
37
30
38
- request = {"pageInfo" : {"formInfo" : {"parameterInfo" : [{"value" : value }]}}}
31
+ request = {"pageInfo" : {"formInfo" : {"parameterInfo" : [{"value" : 123 }]}}}
39
32
40
33
with app .test_request_context (json = request ):
41
34
res = validate_parameter (flask .request )
42
35
assert (
43
- res ["fulfillment_response " ]["messages " ][0 ][ "text " ]["text" ][ 0 ]
44
- == expected_response
36
+ res ["page_info " ]["form_info " ]["parameter_info " ][0 ][ "state" ]
37
+ == 'INVALID'
45
38
)
You can’t perform that action at this time.
0 commit comments