from __future__ import unicode_literals, print_function
from libraries.lambda_handlers.handler import Handler
from libraries.client.client_webhook import ClientWebhook
[docs]class ClientWebhookHandler(Handler):
def _handle(self, event, context):
"""
:param dict event:
:param context:
:return dict:
"""
data = {}
if 'data' in event and isinstance(event['data'], dict):
data = event['data']
if 'body-json' in event and isinstance(event['body-json'], dict):
data.update(event['body-json'])
# Set required env_vars
env_vars = {
'api_url': self.retrieve(event['vars'], 'api_url', 'Environment Vars'),
'pre_convert_bucket': self.retrieve(event['vars'], 'pre_convert_bucket', 'Environment Vars'),
'cdn_bucket': self.retrieve(event['vars'], 'cdn_bucket', 'Environment Vars'),
'gogs_url': self.retrieve(event['vars'], 'gogs_url', 'Environment Vars'),
'gogs_user_token': self.retrieve(event['vars'], 'gogs_user_token', 'Environment Vars'),
'commit_data': self.retrieve(event, 'data', 'payload'),
'manifest_table_name': self.retrieve(event['vars'], 'manifest_table_name', 'Environment Vars'),
'job_table_name': self.retrieve(event['vars'], 'job_table_name', 'Environment Vars'),
'prefix': self.retrieve(event['vars'], 'prefix', 'Environment Vars', required=False, default=''),
}
return ClientWebhook(**env_vars).process_webhook()