#!/usr/bin/python3
import datetime
import json
import os
UPDATED_FILENAME = '/var/www/html/flaskapp/data/updated.txt'
TOKEN_FILENAME = '/var/www/html/flaskapp/data/sns_token.txt'
from flask import Flask, request
app = Flask(__name__)
@app.route('/')
def index():
html = '
Hello from Flask!'
html = '%sHello from Flask!
' % html
if os.path.exists(UPDATED_FILENAME):
with open(UPDATED_FILENAME, 'r') as f:
timestamp = f.read()
else:
timestamp = 'Never updated'
html = '%s%s
' % (html, timestamp)
return html
@app.route('/update', methods=['POST'])
def update():
header_value = request.headers.get('x-amz-sns-message-type')
if header_value is not None and header_value == 'SubscriptionConfirmation':
with open(TOKEN_FILENAME, 'wt') as f:
f.write('Token = %s' % json.loads(request.data)['Token'])
else:
with open(UPDATED_FILENAME, 'wt') as f:
f.write('Updated on %s UTC' % str(datetime.datetime.utcnow()))
return '', 204
@app.route('/get_token', methods=['GET'])
def get_token():
if os.path.exists(TOKEN_FILENAME):
with open(TOKEN_FILENAME, 'r') as f:
token = f.read()
else:
token = 'Not on this server.'
html = 'TokenSNS token: %s' % token
return html
if __name__ == '__main__':
app.run()