Validates translation requests by supporting a callback endpoint that waits for HTTP requests to arrive at that endpoint, resuming the execution of the workflow at a later point in time.
Explore further
For detailed documentation that includes this code sample, see the following:
Code sample
YAML
main
:
params
:
[
translation_request
]
steps
:
-
log_request
:
call
:
sys.log
args
:
text
:
${translation_request}
-
vars
:
assign
:
-
exec_id
:
${sys.get_env("GOOGLE_CLOUD_WORKFLOW_EXECUTION_ID")}
-
text_to_translate
:
${translation_request.text}
-
database_root
:
${"projects/" + sys.get_env("GOOGLE_CLOUD_PROJECT_ID") + "/databases/(default)/documents/translations/"}
-
log_translation_request
:
call
:
sys.log
args
:
text
:
${text_to_translate}
-
store_translation_request
:
call
:
googleapis.firestore.v1.projects.databases.documents.patch
args
:
name
:
${database_root + exec_id}
updateMask
:
fieldPaths
:
[
'text'
]
body
:
fields
:
text
:
stringValue
:
${text_to_translate}
result
:
store_translation_request_result
-
translate
:
call
:
googleapis.translate.v2.translations.translate
args
:
query
:
q
:
${text_to_translate}
target
:
"FR"
format
:
"text"
source
:
"EN"
result
:
translation_result
-
assign_translation
:
assign
:
-
translation
:
${translation_result.data.translations[0].translatedText}
-
log_translation_result
:
call
:
sys.log
args
:
text
:
${translation}
-
store_translated_text
:
call
:
googleapis.firestore.v1.projects.databases.documents.patch
args
:
name
:
${database_root + exec_id}
updateMask
:
fieldPaths
:
[
'translation'
]
body
:
fields
:
translation
:
stringValue
:
${translation}
result
:
store_translation_request_result
-
create_callback
:
call
:
events.create_callback_endpoint
args
:
http_callback_method
:
"POST"
result
:
callback_details
-
log_callback_details
:
call
:
sys.log
args
:
text
:
${callback_details}
-
store_callback_details
:
call
:
googleapis.firestore.v1.projects.databases.documents.patch
args
:
name
:
${database_root + exec_id}
updateMask
:
fieldPaths
:
[
'callback'
]
body
:
fields
:
callback
:
stringValue
:
${callback_details.url}
result
:
store_callback_details_result
-
await_callback
:
call
:
events.await_callback
args
:
callback
:
${callback_details}
timeout
:
3600
result
:
callback_request
-
assign_approval
:
assign
:
-
approved
:
${callback_request.http_request.body.approved}
-
store_approval
:
call
:
googleapis.firestore.v1.projects.databases.documents.patch
args
:
name
:
${database_root + exec_id}
updateMask
:
fieldPaths
:
[
'approved'
]
body
:
fields
:
approved
:
booleanValue
:
${approved}
result
:
store_approval_result
-
return_outcome
:
return
:
text
:
${text_to_translate}
translation
:
${translation}
approved
:
${approved}
What's next
To search and filter code samples for other Google Cloud products, see the Google Cloud sample browser .

