-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathinsert_tracker.py
More file actions
92 lines (82 loc) · 2.85 KB
/
insert_tracker.py
File metadata and controls
92 lines (82 loc) · 2.85 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
from flask import Blueprint, jsonify, redirect, render_template, request, url_for
from auth import auth
from rate_limiter import limiter
from database.model.tracker import Tracker
from database.mysql import db, format_database_error
from form.form_insert import InsertTrackerForm
bp = Blueprint("mysql", __name__, url_prefix="/tracker")
@bp.route("/insert/", methods=["POST", "GET"])
def insert_data():
form = InsertTrackerForm()
if form.validate_on_submit():
name = form.name.data
desc = form.description.data
asset_img_url = form.asset_img_url.data
tracker_img_url = form.tracker_img_url.data
tracker = Tracker(
name=name,
description=desc,
asset_img_url=asset_img_url,
tracker_img_url=tracker_img_url,
)
db.session.add(tracker)
db.session.commit()
return redirect(url_for("location_live_tracking.location_live_tracking"))
return render_template(
"pages/location_live_tracking/insert_tracker.html", form=form
)
@bp.route("/api/insert/", methods=["POST", "GET"])
# @limiter.limit("5 per minute")
@auth.login_required()
def insert_data_api():
if request.method == "POST":
name = request.form.get("name")
desc = request.form.get("description")
asset_img_url = request.form.get("asset_img_url")
tracker_img_url = request.form.get("tracker_img_url")
if not any([name, asset_img_url, tracker_img_url]):
return jsonify({"error": "Missing required fields"}), 400
try:
tracker = Tracker(
name=name,
description=desc,
asset_img_url=asset_img_url,
tracker_img_url=tracker_img_url,
)
db.session.add(tracker)
db.session.commit()
return (
jsonify(
{
"status": {
"code": 201,
"message": "tracker created successfully",
},
"tracker": {
"id": tracker.id,
"name": name,
"description": desc,
},
}
),
201,
)
except Exception as e:
db.session.rollback()
error_msg = format_database_error(e)
return (
jsonify(
{
"status": {"code": 500, "message": error_msg},
"data": None,
}
),
500,
)
else:
return (
jsonify(
{"status": {"code": 405, "message": "Method not allowed"}, "data": None}
),
405,
)