예제 #1
0
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]))))
    }
예제 #2
0
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]))))
    }
예제 #3
0
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('\'', '"'))
    }
예제 #4
0
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('\'', '"')
예제 #5
0
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"
예제 #6
0
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')))
예제 #7
0
def getrooms():
    if AM.checktoken(json.loads(request.data)['token'])[1] == 'admin':
        return json.dumps(DB.genjson('rooms', DB.query('rooms')))
예제 #8
0
def getusers():
    if AM.checktoken(json.loads(request.data)['token'])[1] == 'admin':
        return json.dumps(
            DB.genjson('users',
                       DB.query('users'),
                       exceptfor=('hashpass', 'salt')))
예제 #9
0
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'))