-
Notifications
You must be signed in to change notification settings - Fork 0
/
reservation_service.py
69 lines (54 loc) · 1.67 KB
/
reservation_service.py
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
import os
import json
import math
dir = os.path.split(os.path.realpath(__file__))[0]
path = os.path.join(dir, 'reservation.json')
def read_data():
if os.path.exists(path):
with open(path, 'r') as f:
content = f.read()
data = json.loads(content)
else:
data = {}
return data
def write_data(data):
content = json.dumps(data, indent=4)
with open(path, 'w') as f:
f.write(content)
def format_qnode(latest, prefix, num_of_0):
if latest < math.pow(10, int(num_of_0)):
temp = ("%0" + num_of_0 + "d") % latest
else:
temp = str(latest)
return prefix + temp
def delete_namespace(namespace):
data = read_data()
if not data or namespace not in data.keys():
return None
if namespace in data.keys():
del data[namespace]
write_data(data)
return True
def get_qnode(namespace) -> dict():
data = read_data()
if not data or namespace not in data.keys():
return None
if namespace in data.keys():
latest = data[namespace]['latest']
data[namespace]['latest'] += 1
prefix = data[namespace]['prefix']
num_of_0 = data[namespace]['num_of_0']
write_data(data)
return format_qnode(latest, prefix, num_of_0)
def register(namespace, uri, prefix, num_of_0):
data = read_data()
if not data or namespace not in data.keys():
data[namespace] = {'uri': uri, 'latest': 1, 'prefix': prefix, 'num_of_0': num_of_0}
write_data(data)
return True
if namespace in data.keys():
return False
# if __name__ == "__main__":
# namespace = 'dm'
# outputs = get_qnode(namespace)
# print(outputs)