def getbookings(): #returns list of bookings data = json.loads(request.data) account = AM.checktoken(data['token']) #does account exist if account[0] == False: return { 'code': 'failed', 'message': 'Not logged in.', 'bookings': None } return { 'code': 'success', 'message': '', 'bookings': json.loads( DB.genjson( 'bookings', DB.query( 'bookings', args='WHERE username = \'{u}\''.format(u=account[2])))) }
def getClients(): # returns code data = json.loads(request.data) account = AM.checktoken(data['token']) if account[1] != 'agent': return { 'code': 'failed', 'message': 'This is not an agent account.', 'clients': None } return { 'code': 'success', 'message': '', 'clients': json.loads( DB.genjson( 'agent_clients', DB.query( 'agent_clients', args='WHERE username = \'{u}\''.format(u=account[2])))) }
def getreciept(): # returns code, message, reciept data = json.loads(request.data) account = AM.checktoken(data['token']) #does account exist if account[0] == False: return {'code': 'failed', 'message': 'Not logged in.', 'reciept': None} booking = DB.query( 'bookings', args='WHERE bookingID = {bi}'.format(bi=data['bookingID'])) transaction = DB.query( 'transactions', args='WHERE bookingID = {bi}'.format(bi=data['bookingID'])) #does the booking exist if len(booking) != 1: return { 'code': 'failed', 'message': 'No such booking exists.', 'reciept': None } #is this the correct account if booking[0][3] != account[2]: return { 'code': 'failed', 'message': 'Incorrect account.', 'reciept': None } return { 'code': 'success', 'message': '', 'reciept': json.loads( str({ **json.loads(DB.genjson('bookings', booking))[0], **json.loads(DB.genjson('transactions', transaction))[0] }).replace('\'', '"')) }
def getroom(): data = json.loads(request.data) print(data) roomrow = DB.query( 'rooms', args='WHERE floornumber = {fn} AND roomnumber = {rn}'.format( fn=data['roomid'][:2], rn=data['roomid'][2:], )) if len(roomrow) < 1: return {'code': 'failed', 'message': 'No such room exists.'} roomfeatures = DB.query( 'room_info', args='WHERE floornumber = {fn} AND roomnumber = {rn}'.format( fn=data['roomid'][:2], rn=data['roomid'][2:], )) return str({ **json.loads(DB.genjson('rooms', roomrow))[0], **json.loads(DB.genjson('room_info', roomfeatures))[0] }).replace('\'', '"')
def serveroom(room): roomrow = DB.query( 'rooms', args='WHERE floornumber = {fn} AND roomnumber = {rn}'.format( fn=room[:2], rn=room[2:])) if len(roomrow) == 1: return render_template( 'room.html', r=DB.genjson( 'rooms', DB.query('rooms', args='WHERE floornumber = {fn} AND roomnumber = {rn}'. format(fn=room[:2], rn=room[2:])))) else: return "404"
def getlog(): if AM.checktoken(json.loads(request.data)['token'])[1] == 'admin': return json.dumps( DB.genjson('dblog', DB.query('dblog', args='ORDER BY time DESC')))
def getrooms(): if AM.checktoken(json.loads(request.data)['token'])[1] == 'admin': return json.dumps(DB.genjson('rooms', DB.query('rooms')))
def getusers(): if AM.checktoken(json.loads(request.data)['token'])[1] == 'admin': return json.dumps( DB.genjson('users', DB.query('users'), exceptfor=('hashpass', 'salt')))
def searchrooms(): #this can all be changed to a single test case print(json.loads(request.data)) data = json.loads(request.data) if data['all']: return DB.genjson('rooms', DB.query('rooms')) available = list() if data['bed-type'] != None or data['microwave'] != None or data[ 'balcony'] != None or data['ethernet'] != None or data[ 'TV'] != None or data['bed-amount'] != None: feature_args = 'WHERE 1 {be} {mi} {ba} {et} {tv} {be_a}'.format( be='AND bed = \'' + data['bed-type'] + '\'' if data['bed-type'] != 'null' else '', mi='AND microwave = \'' + str(data['microwave']).lower() + '\'' if data['microwave'] != False else '', ba='AND balcony = \'' + str(data['balcony']).lower() + '\'' if data['balcony'] != False else '', et='AND ethernet = \'' + str(data['ethernet']).lower() + '\'' if data['ethernet'] != False else '', tv='AND TV = \'' + str(data['TV']).lower() + '\'' if data['TV'] != False else '', be_a='AND bedamount =' + data['bed-amount'] if data['bed-amount'] != 'null' else '') print(feature_args) rooms_wf = DB.query('room_info', 'floornumber, roomnumber', feature_args) if data['date'] != '': for room in rooms_wf: if (len( DB.query( 'bookings', args= 'WHERE roomnumber={rn} AND floornumber={fn} AND date = \'{d}\'' .format(fn=room[0], rn=room[1], d=data['date']))) == 0): available.append( DB.query( 'rooms', args='WHERE floornumber = {fn} AND roomnumber = {rn}' .format(fn=room[0], rn=room[1]))[0]) return DB.genjson('rooms', available) else: for room in rooms_wf: available.append( DB.query( 'rooms', args='WHERE floornumber = {fn} AND roomnumber = {rn}'. format(fn=room[0], rn=room[1]))[0]) return DB.genjson('rooms', available) elif data['date'] != '': rooms = DB.query('rooms') for room in rooms: if (len( DB.query( 'bookings', args= 'WHERE roomnumber={rn} AND floornumber={fn} AND date = \'{d}\'' .format(fn=room[0], rn=room[1], d=data['date']))) == 0): available.append(room) return DB.genjson('rooms', available) else: return DB.genjson('rooms', DB.query('rooms'))