Example #1
0
#! /usr/bin/env python2

from collections import OrderedDict
from flask import Flask, request, jsonify, json
import re
import argparse

app = Flask(__name__, static_url_path='/static')

# the database :)
app.store = dict()

#
# TODOS API: get / upsert / delete
#

# load all elements
@app.route("/api/todos", methods=["GET"])
def get_todos():
    ordered = sorted(app.store.values(), key=lambda v: v["order"])
    return json.dumps(ordered)

# updates an element or insert it if it doesn't exists
@app.route("/api/todos/<string:id>", methods=['PUT'])
def upsert_todo(id):
    # leaved here for readability, for performance compile outside this function
    regex_uuid = re.compile('[0-9a-f]{12}4[0-9a-f]{3}[89ab][0-9a-f]{15}\Z', re.I)
    if len(id) < 1 and not regex_uuid.match(id):
        return jsonify(result="fail", reason="invalid request: id")
    
    if id != request.json.get("id"):
Example #2
0
from flask import Flask, jsonify 

import os
import time
from xml.dom.minidom import parse

import datastore 

app = Flask(__name__)
app.debug = True
app.store = datastore.DataStore()
app.store.load("sdge.xml")

@app.route('/api/1.0/year/<int:year>')
def year_data(year): 
    data = app.store.get_year(year) 
    return jsonify(data)

@app.route('/api/1.0/year/<int:year>/month/<int:month>')
def year_month_data(year, month): 
    data = app.store.get_month(year, month) 
    return jsonify(data)

@app.route('/api/1.0/year/<int:year>/week/<int:week>')
def year_week_data(year, week): 
    data = app.store.get_week(year, week) 
    return jsonify(data)

@app.route('/api/1.0/year/<int:year>/day/<int:day>')
def year_day_data(year, day): 
    data = app.store.get_day(year, day)