· 5 years ago · Sep 05, 2020, 04:16 PM
1import resources.connection as Connection
2import json
3
4from flask import jsonify, Blueprint
5from flask_restful import Resource, Api
6
7def pretty(d, indent=0):
8 for key, value in d.items():
9 print(' ' * indent + str(key)+":")
10 if isinstance(value, dict):
11 pretty(value, indent+1)
12 else:
13 print(' ' * (indent+1) + str(value))
14
15class Maskineriet(Resource):
16 def __init__(self):
17 brukere = Connection.execute_read_query("SELECT * FROM brukere")
18 self.brukere = {}
19 for k in brukere:
20 bruker_id, navn, prosjekter = k
21 self.brukere[bruker_id] = {
22 "navn": navn,
23 "prosjekter": json.loads(prosjekter),
24 "timer": {}
25 }
26
27 prosjekter = Connection.execute_read_query("SELECT * FROM prosjekt")
28 self.prosjekter = {}
29 for k in prosjekter:
30 prosjekt_id, navn = k
31 self.prosjekter[prosjekt_id] = {
32 "navn": navn
33 }
34
35 timer = Connection.execute_read_query("SELECT * FROM timer")
36 self.timer = {}
37 for k in timer:
38 id, bruker_id, prosjekt_id, minutter, dato = k
39 self.timer[id] = {
40 "bruker_id": bruker_id,
41 "prosjekt_id": prosjekt_id,
42 "minutter": minutter,
43 "dato": dato
44 }
45 self.brukere[bruker_id]["timer"][id] = {
46 "bruker_id": bruker_id,
47 "prosjekt_id": prosjekt_id,
48 "minutter": minutter,
49 "dato": dato
50 }
51
52 def get(self):
53 return jsonify("error", "Ingenting mathcet dette filteret")
54
55 def leggTilTimer(self, bruker, prosjekt_id, min, dato):
56 if self.brukere.get(bruker) == None:
57 return "error", "Bruker id {} finnes ikke".format(bruker)
58 elif min > 1440:
59 return "error", "Forsøkt lagt til flere minutter en hva som er i en dag"
60 Connection.execute_query("INSERT INTO timer (bruker_id, prosjekt_id, minutter, dato) VALUES ({}, {}, {}, '{}')".format(bruker, prosjekt_id, min, dato))
61
62 def searchTimer(self, id, bruker_id, prosjekt_id, minutter, datoStart, datoSlutt):
63 temp = []
64 if id != None:
65 if self.timer.get(id) == None:
66 return "error", "Id {} finnes ikke".format(id)
67 else:
68 return self.timer[id]
69
70 if bruker_id != None:
71 for k in self.timer:
72 if self.timer[k]["bruker_id"] == bruker_id:
73 temp.append(k)
74 if prosjekt_id != None:
75 if not temp and bruker_id == None:
76 for k in self.timer:
77 if self.timer[k]["prosjekt_id"] == prosjekt_id:
78 temp.append(k)
79 else:
80 x = []
81 for k in range(len(temp)):
82 if self.timer[temp[k]]["prosjekt_id"] == prosjekt_id:
83 x.append(temp[k])
84 temp = x
85 if not temp:
86 return jsonify("error", "Ingenting mathcet dette filteret")
87 return temp
88
89maskineriet_api = Blueprint("resources.main", __name__)
90api = Api(maskineriet_api)
91api.add_resource(
92 Maskineriet,
93 "/maskineriet",
94 endpoint="maskineriet"
95)