-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathLogView.py
More file actions
81 lines (65 loc) · 2.22 KB
/
LogView.py
File metadata and controls
81 lines (65 loc) · 2.22 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
from flask import jsonify, request, Flask, Blueprint
from db_config import db, Log, District
from gen_token import token_required
logs = Blueprint('logs', __name__)
# Ma'lumotlarni olish uchun API yo'nalishi
@logs.route('/api/logs', methods=['GET'])
@token_required
def get_logs(current_user):
allowed_roles = ["S_admin", "D_admin"]
if not current_user.roles in allowed_roles:
return jsonify({'message': 'Sizning Huqularingiz cheklangan'}), 401
logs = Log.query.all() # Fetch all records
logs_list = []
for log in logs:
logs_list.append({
'id': log.id,
'username': log.username,
'last_name': log.last_name,
'district': log.district,
'roles': log.roles,
'actions': log.actions,
'times': log.times.strftime('%H:%M:%S'), # Format time to remove microseconds
'dates': log.dates.isoformat()
})
return jsonify(logs_list) # Return as JSON
@logs.route('/search_logs', methods=['POST'])
def search_logs():
data = request.get_json()
# Qidiruv uchun barcha filterlarni olish
username = data.get('username')
last_name = data.get('last_name')
district = data.get('district')
roles = data.get('roles')
actions = data.get('actions')
dates = data.get('dates')
# Filtrlarni qo'llash
query = Log.query
if username:
query = query.filter_by(username=username)
if last_name:
query = query.filter_by(last_name=last_name)
if district:
query = query.filter_by(district=district)
if roles:
query = query.filter_by(roles=roles)
if actions:
query = query.filter_by(actions=actions)
if dates:
query = query.filter(Log.dates == dates) # Sanalar tengligini solishtirish uchun
# Natijalarni olish
logs = query.all()
# Natijalarni JSON formatiga o'tkazish
results = [
{
"id": log.id,
"username": log.username,
"last_name": log.last_name,
"district": log.district,
"roles": log.roles,
"actions": log.actions,
"dates": log.dates.strftime('%Y-%m-%d')
}
for log in logs
]
return jsonify(results), 200