import flask from flask import request, jsonify import psycopg2 import json app = flask.Flask(__name__) app.config["DEBUG"] = True import creds # Assign secrets to variables, should look into making this # a function. Plan to move this to Vault from creds file. dbhost = creds.dblogin['host'] database = creds.dblogin['db'] username = creds.dblogin['username'] password = creds.dblogin['password'] port = creds.dblogin['port'] @app.route('/', methods=['GET']) def home(): # TODO: Look into putting all this into a template or something. return """
This \ site is a collection of api's from various public sources collected \ by the team at SeattleMatrix.org.
Current Data: \ King County, WA Covid-19 By ZipCode - Current Dates: 20200810, 20200824, 20200831 """ # A route to return all of the available records for King County COVID-19 @app.route('/v1/kingcounty/covid-19/zipcode/all', methods=['GET']) def api_zipcode_all(): """ This route returns all the data in the king_county_covid19_zip table. This data is currently manually updated. """ conn = psycopg2.connect(f"host={dbhost} dbname={database} user={username} password={password} port={port} sslmode='require'") cur = conn.cursor() cur.execute("select row_to_json(king_county_covid19_zip) from king_county_covid19_zip;") rows = cur.fetchall() # FIXME: returning row throws an error and jsonify returns double nested # json result need to figure this out. return jsonify(rows) if __name__ == "__main__": app.run(host='0.0.0.0') # TODO: Create route for filtering on zipcode and date # TODO: Put all above into function for covid-19 data # TODO: Look into making a Class for db connection