This repository has been archived by the owner on Jun 11, 2020. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 3
/
index.py
53 lines (42 loc) · 1.75 KB
/
index.py
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
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
"""
Licensed under the Apache License, Version 2.0 (the "License").
You may not use this file except in compliance with the License.
A copy of the License is located at
http://www.apache.org/licenses/LICENSE-2.0
or in the "license" file accompanying this file. This file is distributed
on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
express or implied. See the License for the specific language governing
permissions and limitations under the License.
"""
import os
import logging
import broker
import webhook
_logger = logging.getLogger()
_logger.setLevel(logging.DEBUG if os.getenv('APP_DEBUG', '') == 'true' else logging.INFO)
def handler(event, context):
_logger.debug(event)
to_return = None
# Processing the API Gateway forwarded requests.
if 'httpMethod' in event:
if event['httpMethod'] == 'GET':
to_return = broker.handler(event, context)
elif event['httpMethod'] == 'POST':
to_return = webhook.handler(event, context)
if to_return is None:
to_return = {
'headers': {'Content-Type': 'application/json'},
'statusCode': 503,
'body': {'data': {'output': 'Invalid invocation'}}
}
# Processing DynamoDB record removals
elif 'Records' in event:
for record in event['Records']:
if record['eventName'] == 'REMOVE':
webhook.remove_secret(
record['dynamodb']['OldImage']['namespace']['S'],
record['dynamodb']['OldImage']['secret_name']['S']
)
return to_return
if __name__ == "__main__":
print(handler({'httpMethod': 'GET', 'headers': {'Authorization': os.getenv('AUTH_TOKEN')}}, None))