|
19 | 19 | import typing |
20 | 20 |
|
21 | 21 | from ask_sdk_model import Response |
| 22 | +from ask_sdk_model.interfaces.alexa.experimentation.experiment_trigger_response import \ |
| 23 | + ExperimentTriggerResponse |
22 | 24 | from ask_sdk_model.interfaces.display import PlainText, RichText, TextContent |
23 | 25 | from ask_sdk_model.ui import Reprompt, SsmlOutputSpeech |
24 | 26 |
|
@@ -51,7 +53,8 @@ def __init__(self): |
51 | 53 | self.response = Response( |
52 | 54 | output_speech=None, card=None, reprompt=None, |
53 | 55 | directives=None, should_end_session=None, |
54 | | - can_fulfill_intent=None, api_response=None) |
| 56 | + can_fulfill_intent=None, api_response=None, |
| 57 | + experimentation=None) |
55 | 58 |
|
56 | 59 | def speak(self, speech, play_behavior=None): |
57 | 60 | # type: (str, PlayBehavior) -> 'ResponseFactory' |
@@ -152,6 +155,22 @@ def add_directive_to_reprompt(self, directive): |
152 | 155 | self.set_should_end_session(False) |
153 | 156 | return self |
154 | 157 |
|
| 158 | + def add_experiment_trigger(self, experiment_id): |
| 159 | + # type: (str) -> 'ResponseFactory' |
| 160 | + """Adds experiment id to response. |
| 161 | + :param experiment_id: the identifier of the experiment. |
| 162 | + :type experiment_id: str |
| 163 | + :return: response factory with partial response being built and |
| 164 | + access from self.response. |
| 165 | + :rtype: ResponseFactory |
| 166 | + """ |
| 167 | + if self.response.experimentation is None: |
| 168 | + triggered_experiments = [] # type: ignore |
| 169 | + self.response.experimentation = ExperimentTriggerResponse(triggered_experiments=triggered_experiments) |
| 170 | + |
| 171 | + self.response.experimentation.triggered_experiments.append(experiment_id) |
| 172 | + return self |
| 173 | + |
155 | 174 | def set_should_end_session(self, should_end_session): |
156 | 175 | # type: (bool) -> 'ResponseFactory' |
157 | 176 | """Sets shouldEndSession value to null/false/true. |
|
0 commit comments