api.v1_0.todos.delete_todo()   A
last analyzed

Complexity

Conditions 1

Size

Total Lines 8
Code Lines 8

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 1
eloc 8
nop 1
dl 0
loc 8
rs 10
c 0
b 0
f 0
1
from flask import request
2
from ..models import db, Todo
3
from ..decorators import json, paginate, etag, rate_limit, hit_count
4
from ..auth import auth
5
from . import api
6
7
8
@api.route('/todos/', methods=['GET'])
9
@rate_limit(limit=45, per=15)
10
@auth.login_required
11
@etag
12
@paginate()
13
def get_todos():
14
  return Todo.query
15
16
17
@api.route('/todos/<int:id>', methods=['GET'])
18
@rate_limit(limit=5, per=15)
19
@hit_count
20
@etag
21
@json
22
def get_todo(id):
23
  return Todo.query.get_or_404(id)
24
25
26
@api.route('/todos/', methods=['POST'])
27
@auth.login_required
28
@json
29
def new_todo():
30
  todo = Todo().from_json(request.json)
31
  db.session.add(todo)
32
  db.session.commit()
33
  return {}, 201, {'Location': todo.get_url()}
34
35
36
@api.route('/todos/<int:id>', methods=['PUT'])
37
@auth.login_required
38
@json
39
def edit_todo(id):
40
  todo = Todo.query.get_or_404(id)
41
  todo.from_json(request.json)
42
  db.session.add(todo)
43
  db.session.commit()
44
  return {}
45
46
47
@api.route('/todos/<int:id>', methods=['DELETE'])
48
@auth.login_required
49
@json
50
def delete_todo(id):
51
  todo = Todo.query.get_or_404(id)
52
  db.session.delete(todo)
53
  db.session.commit()
54
  return {}
55