Esempio n. 1
0
def list_items():
    'GET todo list'
    current_app.logger.info('todo controller called, func: list')
    db = database.Database(current_app.config['CONN_STRING'])
    items = db.get_items()
    return jsonify({
        'todoList': items
    })
Esempio n. 2
0
def delete():
    'POST delete item from list'
    current_app.logger.info('todo controller called, func: delete')

    data = json.loads(request.data.decode("utf-8"))
    item = data['itemToDelete']

    db = database.Database(current_app.config['CONN_STRING'])
    db.delete_item(item)
    items = db.get_items()

    return jsonify({
        'todoList': items
    })
Esempio n. 3
0
def item_update():
    'POST update item in list'
    current_app.logger.info('todo controller called, func: item_update')

    data = json.loads(request.data.decode('utf-8'))
    item = data['itemToUpdate']

    db = database.Database(current_app.config['CONN_STRING'])
    db.update_item(item)
    items = db.get_items()

    return jsonify({
        'todoList': items
    })
Esempio n. 4
0
def add():
    'POST add item into todo list'
    current_app.logger.info('todo controller called, func: add')

    data = json.loads(request.data.decode("utf-8"))
    item = data['newItem']

    db = database.Database(current_app.config['CONN_STRING'])
    db.insert_item(item)
    items = db.get_items()

    return jsonify({
        'todoList': items
    })
Esempio n. 5
0
def index(request):
    request = urllib.parse.unquote_plus(request)
    db = database.Database('banco')
    # A string de request sempre começa com o tipo da requisição (ex: GET, POST)
    if request.startswith('POST'):
        request = request.replace('\r', '')  # Remove caracteres indesejados
        # Cabeçalho e corpo estão sempre separados por duas quebras de linha
        partes = request.split('\n\n')
        corpo = partes[1]
        params = {}
        # Preencha o dicionário params com as informações do corpo da requisição
        # O dicionário conterá dois valores, o título e a descrição.
        # Posteriormente pode ser interessante criar uma função que recebe a
        # requisição e devolve os parâmetros para desacoplar esta lógica.
        # Dica: use o método split da string e a função unquote_plus
        for chave_valor in corpo.split('&'):

            k = chave_valor.split('=')
            params[k[0]] = k[1]
        db.add(
            database.Note(title=params['titulo'], content=params['detalhes']))
        return build_response(code=303,
                              reason='See Other',
                              headers='Location: /')

    # Cria uma lista de <li>'s para cada anotação
    # Se tiver curiosidade: https://docs.python.org/3/tutorial/datastructures.html#list-comprehensions
    note_template = load_template('components/note.html')
    notes_li = [
        note_template.format(title=dados.title, details=dados.content)
        for dados in db.get_all()
    ]
    notes = '\n'.join(notes_li)

    return build_response() + load_template('index.html').format(
        notes=notes).encode()