-
Notifications
You must be signed in to change notification settings - Fork 2
/
db.py
executable file
·118 lines (81 loc) · 3.51 KB
/
db.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
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
import rethinkdb as r
import ast
import time
import json
from datetime import datetime
import random
db_name='finalv'
conn=r.connect('localhost', 28015).repl()
#r.db_create(db_name).run() #Enable this for the first run
def table_create(db_name,tbl_name):
r.db(db_name).table_create(tbl_name,primary_key='id').run()
return r.db(db_name).table(tbl_name)
def table_return(db_name,tbl_name):
return r.db(db_name).table(tbl_name)
# Enable this for the first run
# table_create(db_name,'inventory')
# table_create(db_name,'revenue')
# table_create(db_name,'price')
# table_create(db_name,'bids')
# table_create(db_name,'product')
# table_create(db_name,'customer')
# table_create(db_name,'plot')
def insert(db_name,tbl_name,obj):
if (r.db(db_name).table_list().contains(tbl_name).run()):
t=table_return(db_name,tbl_name)
else:
t=table_create(db_name,tbl_name)
return t.insert(ast.literal_eval(obj)).run()
def insert_profit_margin(db_name,tbl_name,id,profit_margin):
if (r.db(db_name).table_list().contains(tbl_name).run()):
t=table_return(db_name,tbl_name)
else:
t=table_create(db_name,tbl_name)
return t.insert({id: id, profit_margin: profit_margin}).run()
def replace(db_name,tbl_name,obj,key):
#print r.db(db_name).table_list().contains(tbl_name).run()
if (r.db(db_name).table_list().contains(tbl_name).run()):
t=table_return(db_name,tbl_name)
else:
t=table_create(db_name,tbl_name)
return t.get(key).replace(ast.literal_eval(obj)).run()
def replace1(db_name,tbl_name,obj,key):
#print r.db(db_name).table_list().contains(tbl_name).run()
if (r.db(db_name).table_list().contains(tbl_name).run(conn)):
t=table_return(db_name,tbl_name)
else:
t=table_create(db_name,tbl_name)
return t.get(key).replace(obj).run(conn)
#deleting an entry with primary key
def delete(db_name,tbl_name,obj,key):
#print r.db(db_name).table_list().contains(tbl_name).run()
if (r.db(db_name).table_list().contains(tbl_name).run(conn)):
t=table_return(db_name,tbl_name)
else:
t=table_create(db_name,tbl_name)
return t.get(key).replace(None).run(conn)
#Get single document
def get(db_name,tbl_name,key):
return r.db(db_name).table(tbl_name).get(key).coerce_to('string').run(conn)
def get1(db_name,tbl_name,key):
return r.db(db_name).table(tbl_name).get(key).run(conn)
def getProd(db_name,tbl_name,key):
return r.db(db_name).table(tbl_name).get(key).coerce_to('string').run(conn)
#Get all the documents
def getAll(db_name,tbl_name):
return r.db(db_name).table(tbl_name).orderBy('id').run()
def getTime(db_name,tbl_name,key):
#return r.db(db_name).table(tbl_name).get(key).run()
return r.db(db_name).table(tbl_name).get(key).run()
def update_with_date(db_name,tbl_name, user_object,id):
return r.db(db_name).table(tbl_name).get(id).replace(
lambda doc: r.branch(
(doc == None),
doc.merge(doc).merge({'updated_at': r.now()}),
doc.merge(doc).merge({'updated_at': r.now()}))).run()
def update_with_date_random(db_name,tbl_name, user_object,id):
return r.db(db_name).table(tbl_name).get(id).replace(
lambda doc: r.branch(
(doc == None),
doc.merge(doc).merge({'created_at': r.time(random.randrange(1995,2015,1), random.randrange(1,12,1), random.randrange(1,30,1), 'Z')}),
doc.merge(doc).merge({'created_at': r.time(random.randrange(1995,2015,1), random.randrange(1,12,1), random.randrange(1,30,1), 'Z')},{'updated_at': r.now()}))).run()