예제 #1
0
def update_default_wall_texture(data):
    uuid = data.get('uuid')
    src = data.get('src')
    width = data.get('width')
    height = data.get('height')
    user_id = get_user_id(uuid=uuid)
    if user_id:
        user = db.session.query(User).filter_by(username=user_id).first()
        if user and user.status == UserStatus.ADMIN_USER.value:
            texture_id = db.session.query(Defaults).filter_by(
                item_type=DefaultItemsIds.DEFAULT_WALL_TEXTURE_ID.value).first()
            if texture_id:
                texture = db.session.query(Texture).get(texture_id.item_id)
                if texture:
                    texture.src = src
                    texture.width = width
                    texture.height = height
                    texture.update_texture()
                    return generate_texture_updated_successfully_response(texture)
                else:
                    texture = create_texture(DefaultItemsIds.DEFAULT_WALL_TEXTURE_ID.value, src, width, height)
                    return generate_texture_created_success_response(texture)
            else:
                texture = create_texture(DefaultItemsIds.DEFAULT_WALL_TEXTURE_ID.value, src, width, height)
                return generate_texture_created_success_response(texture)
        else:
            return generate_user_not_authorised_response()
    else:
        return generate_user_not_login_response()
예제 #2
0
def update_floor_by_id(data):
    name = data.get('name')
    uuid = data.get('uuid')
    id = data.get('id')
    user_id = get_user_id(uuid=uuid)
    if user_id:
        floor = db.session.query(Floor).get(id)
        if floor:
            floor.name = name
            floor.update_floor()
            floor_dict = floor.to_dict()
            return jsonify({
                'result_code': ErrorCodes.ERROR_CODE_SUCCESS.value,
                'error_message': '',
                'floorData': floor_dict
            })
            # try:
            #     floor.save()
            # except Exception as err:
            #     return generate_floor_name_already_exist_response(name=name)
            # return generate_floor_updated_successfully_response(floor)
        else:
            return generate_floor_not_found_response(id)
    else:
        return generate_user_not_login_response()
예제 #3
0
def delete_painting_by_id(data):
    uuid = data.get('uuid')
    painting_id = data.get('id')
    user_id = get_user_id(uuid=uuid)
    if user_id:
        painting = db.session.query(Painting).get(painting_id).first()
        if painting:
            bg_lights = db.session.query(BgLight).filter_by(painting_id=painting.id)
            fg_lights = db.session.query(FgLight).filter_by(painting_id=painting.id)
            real_sizes = db.session.query(RealSize).filter_by(painting_id=painting.id)
            pic_sizes = db.session.query(PicSize).filter_by(painting_id=painting.id)
            if bg_lights and len(bg_lights) > 0:
                return generate_painting_contains_bg_lights_response(painting_id)
            elif fg_lights and len(fg_lights) > 0:
                return generate_painting_contains_fg_lights_response(painting_id)
            elif real_sizes and len(real_sizes) > 0:
                return generate_painting_contains_real_sizes_response(painting_id)
            elif pic_sizes and len(pic_sizes) > 0:
                return generate_painting_contains_pic_sizes_response(painting_id)
            else:
                painting = painting.delete_painting()
                return generate_painting_deleted_successfully_response(painting)
        else:
            return generate_painting_not_found_response(painting_id)
    else:
        return generate_user_not_login_response()
예제 #4
0
def save_new_global_settings(data):
    user_uuid = data.get('uuid')
    floor_texture_index = data.get('floor_texture_index')
    wall_texture_index = data.get('wall_texture_index')
    startup_room_index = data.get('startup_room_index')
    floor_texture_name = data.get('floor_texture_name')
    wall_texture_name = data.get('wall_texture_name')
    user_id = get_user_id(uuid=user_uuid)
    if user_id:
        global_settings_list = db.session.query(GlobalSettings).all()
        if global_settings_list and len(global_settings_list) > 0:
            global_settings_item = global_settings_list[0]
            global_settings_item.floor_texture_index = floor_texture_index
            global_settings_item.wall_texture_index = wall_texture_index
            global_settings_item.startup_room_index = startup_room_index
            global_settings_item.floor_texture_name = floor_texture_name
            global_settings_item.wall_texture_name = wall_texture_name
            global_settings_item.update_global_settings()
            return generate_global_settings_created_success_response(global_settings_item)
        else:
            global_settings = GlobalSettings(floor_texture_index=floor_texture_index,
                                             wall_texture_index=wall_texture_index,
                                             startup_room_index=startup_room_index,
                                             floor_texture_name=floor_texture_name,
                                             wall_texture_name=wall_texture_name)
            global_settings.save()
            return generate_global_settings_created_success_response(global_settings)
    else:
        return generate_user_not_login_response()
예제 #5
0
def add_new_bg_light(data):
    uuid = data.get('uuid')
    painting_id = data.get('painting_id')
    width = data.get('width')
    color = data.get('color')
    user_id = get_user_id(uuid=uuid)
    if user_id:
        bg_light = BgLight(painting_id=painting_id, width=width, color=color)
        bg_light.save()
        return generate_bg_light_created_success_response(bg_light)
    else:
        return generate_user_not_login_response()
예제 #6
0
def add_new_pic_size(data):
    uuid = data.get('uuid')
    painting_id = data.get('painting_id')
    width = data.get('width')
    height = data.get('height')
    user_id = get_user_id(uuid=uuid)
    if user_id:
        pic_size = PicSize(painting_id=painting_id, width=width, height=height)
        pic_size.save()
        return generate_pic_size_created_success_response(pic_size)
    else:
        return generate_user_not_login_response()
예제 #7
0
def add_new_texture(data):
    uuid = data.get('uuid')
    src = data.get('src')
    width = data.get('width')
    height = data.get('height')
    user_id = get_user_id(uuid=uuid)
    if user_id:
        texture = Texture(src=src, width=width, height=height)
        texture.save()
        return generate_texture_created_success_response(texture)
    else:
        return generate_user_not_login_response()
예제 #8
0
def delete_pic_size_by_id(data):
    uuid = data.get('uuid')
    pic_size_id = data.get('id')
    user_id = get_user_id(uuid=uuid)
    if user_id:
        pic_size = db.session.query(PicSize).get(pic_size_id).first()
        if pic_size:
            pic_size = pic_size.delete_pic_size()
            return generate_pic_size_deleted_successfully_response(pic_size)
        else:
            return generate_pic_size_not_found_response(pic_size_id)
    else:
        return generate_user_not_login_response()
예제 #9
0
def delete_bg_light_by_id(data):
    uuid = data.get('uuid')
    bg_light_id = data.get('id')
    user_id = get_user_id(uuid=uuid)
    if user_id:
        bg_light = db.session.query(BgLight).get(bg_light_id).first()
        if bg_light:
            bg_light = bg_light.delete_bg_light()
            return generate_bg_light_deleted_successfully_response(bg_light)
        else:
            return generate_bg_light_not_found_response(bg_light_id)
    else:
        return generate_user_not_login_response()
예제 #10
0
def delete_floor_texture_by_id(data):
    uuid = data.get('uuid')
    id = data.get('id')
    user_id = get_user_id(uuid=uuid)
    if user_id:
        texture = db.session.query(FloorTexture).get(id)
        if texture:
            texture.delete_texture()
            return generate_texture_deleted_successfully_response(texture)
        else:
            return generate_texture_not_found_response(id)
    else:
        return generate_user_not_login_response()
예제 #11
0
def delete_real_size_by_id(data):
    real_size_id = data.get('id')
    uuid = data.get('uuid')
    user_id = get_user_id(uuid=uuid)
    if user_id:
        real_size = db.session.query(RealSize).get(real_size_id).first()
        if real_size:
            real_size = real_size.delete_real_size()
            return generate_real_size_deleted_successfully_response(real_size)
        else:
            return generate_real_size_not_found_response(real_size_id)
    else:
        return generate_user_not_login_response()
예제 #12
0
def add_new_floor(data):
    name = data.get('name')
    uuid = data.get('uuid')
    user_id = get_user_id(uuid=uuid)
    if user_id:
        floor = Floor(user_id=user_id, name=name)
        try:
            floor.save()
        except Exception as err:
            return generate_floor_name_already_exist_response(name)
        return generate_floor_created_success_response(floor)
    else:
        return generate_user_not_login_response()
예제 #13
0
def delete_floor_by_id(data):
    uuid = data.get('uuid')
    id = data.get('id')
    user_id = get_user_id(uuid=uuid)
    if user_id:
        floor = db.session.query(Floor).get(id)
        if floor:
            floor.delete_floor()
            return generate_floor_deleted_successfully_response(floor)
        else:
            return generate_floor_not_found_response(id)
    else:
        return generate_user_not_login_response()
예제 #14
0
def get_texture_by_id(data):
    uuid = data.get('uuid')
    texture_id = data.get('id')
    user_id = get_user_id(uuid=uuid)
    if user_id:
        texture = db.session.query(Texture).get(texture_id)
        if texture:
            texture_dict = texture.to_dict()
            return jsonify(
                {'result_code': ErrorCodes.ERROR_CODE_SUCCESS.value, 'error_message': '', 'textureData': texture_dict})
        else:
            return generate_texture_not_found_response(texture_id)
    else:
        return generate_user_not_login_response()
예제 #15
0
def get_wall_by_id(data):
    uuid = data.get('uuid')
    wall_id = data.get('id')
    user_id = get_user_id(uuid=uuid)
    if user_id:
        wall = db.session.query(Wall).get(wall_id)
        if wall:
            wall_dict = wall.to_dict()
            return jsonify(
                {'result_code': ErrorCodes.ERROR_CODE_SUCCESS.value, 'error_message': '', 'wallData': wall_dict})
        else:
            return generate_wall_not_found_response(wall_id)
    else:
        return generate_user_not_login_response()
예제 #16
0
def add_new_wall(data):
    uuid = data.get('uuid')
    name = data.get('name')
    texture_id = data.get('texture_id')
    room_id = data.get('room_id')
    x_pos = data.get('x_pos')
    y_pos = data.get('y_pos')
    z_pos = data.get('z_pos')
    user_id = get_user_id(uuid=uuid)
    if user_id:
        wall = Wall(room_id=room_id, texture_id=texture_id, name=name, x_pos=x_pos, y_pos=y_pos, z_pos=z_pos)
        wall.save()
        return generate_wall_created_success_response(wall)
    else:
        return generate_user_not_login_response()
예제 #17
0
def get_painting_by_id(data):
    uuid = data.get('uuid')
    painting_id = data.get('id')
    user_id = get_user_id(uuid=uuid)
    if user_id:
        painting = db.session.query(Painting).get(painting_id)
        if painting:
            painting_dict = painting.to_dict()
            return jsonify(
                {'result_code': ErrorCodes.ERROR_CODE_SUCCESS.value, 'error_message': '',
                 'paintingData': painting_dict})
        else:
            return generate_painting_not_found_response(painting_id)
    else:
        return generate_user_not_login_response()
예제 #18
0
def get_global_settings_data(data):
    user_uuid = data.get('uuid')
    user_id = get_user_id(uuid=user_uuid)
    if user_id:
        global_settings_list = db.session.query(GlobalSettings).all()
        if global_settings_list and len(global_settings_list) > 0:
            global_settings_item = global_settings_list[0]
            global_settings_json = json.dumps(global_settings_item, cls=AlchemyEncoder)
            return jsonify(
                {'result_code': ErrorCodes.ERROR_CODE_SUCCESS.value, 'error_message': '',
                 'globalSettingsData': global_settings_json})
        else:
            return generate_global_settings_not_found_response()
    else:
        return generate_user_not_login_response()
예제 #19
0
def add_new_painting(data):
    uuid = data.get('uuid')
    name = data.get('name')
    detail = data.get('detail')
    wall_id = data.get('wall_id')
    x_pos = data.get('x_pos')
    y_pos = data.get('y_pos')
    z_pos = data.get('z_pos')
    user_id = get_user_id(uuid=uuid)
    if user_id:
        painting = Painting(wall_id=wall_id, name=name, detail=detail, x_pos=x_pos, y_pos=y_pos, z_pos=z_pos)
        painting.save()
        return generate_painting_created_success_response(painting)
    else:
        return generate_user_not_login_response()
예제 #20
0
def get_global_settings_by_id(data):
    user_uuid = data.get('uuid')
    id = data.get('id')
    user_id = get_user_id(uuid=user_uuid)
    if user_id:
        global_settings = db.session.query(GlobalSettings).get(id)
        if global_settings:
            global_settings_dict = global_settings.to_dict()
            return jsonify(
                {'result_code': ErrorCodes.ERROR_CODE_SUCCESS.value, 'error_message': '',
                 'globalSettingsData': global_settings_dict})
        else:
            return generate_global_settings_not_found_response_id(id)
    else:
        return generate_user_not_login_response()
예제 #21
0
def add_new_room(data):
    uuid = data.get('uuid')
    name = data.get('name')
    texture_id = data.get('texture_id')
    floor_id = data.get('floor_id')
    user_id = get_user_id(uuid=uuid)
    if user_id:
        room = Room(user_id=user_id, texture_id=texture_id, name=name, floor_id=floor_id)
        try:
            room.save()
        except Exception as err:
            return generate_room_name_already_exist_response(name)
        return generate_room_created_success_response(room)
    else:
        return generate_user_not_login_response()
예제 #22
0
def get_room_by_id(data):
    uuid = data.get('uuid')
    id = data.get('id')
    user_id = get_user_id(uuid=uuid)
    if user_id:
        # Get Room
        room = db.session.query(Room).get(id)
        if room:
            room_dict = room.to_dict()
            return jsonify(
                {'result_code': ErrorCodes.ERROR_CODE_SUCCESS.value, 'error_message': '', 'roomData': room_dict})
        else:
            return generate_room_not_found_response(id)
    else:
        return generate_user_not_login_response()
예제 #23
0
def delete_wall_by_id(data):
    uuid = data.get('uuid')
    wall_id = data.get('id')
    user_id = get_user_id(uuid=uuid)
    if user_id:
        wall = db.session.query(Wall).get(wall_id)
        if wall:
            paintings = db.session.query(Painting).filter_by(wall_id=wall_id).all()
            if paintings and len(paintings) > 0:
                return generate_wall_contains_paintings_response(wall_id)
            else:
                wall = wall.delete_wall()
                return generate_wall_deleted_successfully_response(wall)
        else:
            return generate_wall_not_found_response(wall_id)
    else:
        return generate_user_not_login_response()
예제 #24
0
def update_real_size_by_id(data):
    real_size_id = data.get('id')
    uuid = data.get('uuid')
    width = data.get('width')
    height = data.get('height')
    user_id = get_user_id(uuid=uuid)
    if user_id:
        real_size = db.session.query(RealSize).get(real_size_id)
        if real_size:
            real_size.width = width
            real_size.height = height
            real_size.update_real_size()
            return generate_real_size_updated_successfully_response(real_size)
        else:
            return generate_real_size_not_found_response(real_size_id)
    else:
        return generate_user_not_login_response()
예제 #25
0
def get_real_size_by_id(data):
    real_size_id = data.get('id')
    uuid = data.get('uuid')
    user_id = get_user_id(uuid=uuid)
    if user_id:
        real_size = db.session.query(RealSize).get(real_size_id)
        if real_size:
            real_size_dict = real_size.to_dict()
            return jsonify({
                'result_code': ErrorCodes.ERROR_CODE_SUCCESS.value,
                'error_message': '',
                'realSizeData': real_size_dict
            })
        else:
            return generate_real_size_not_found_response(real_size_id)
    else:
        return generate_user_not_login_response()
예제 #26
0
def delete_room_by_id(data):
    uuid = data.get('uuid')
    room_id = data.get('id')
    user_id = get_user_id(uuid=uuid)
    if user_id:
        room = db.session.query(Room).get(room_id).first()
        if room:
            walls = db.session.query(Wall).filter_by(room_id=room_id)
            if walls and len(walls) > 0:
                return generate_room_contains_walls_response(room_id)
            else:
                room = room.delete_room()
                return generate_room_deleted_successfully_response(room)
        else:
            generate_room_not_found_response(room_id)
    else:
        return generate_user_not_login_response()
예제 #27
0
def update_pic_size_by_id(data):
    uuid = data.get('uuid')
    pic_size_id = data.get('id')
    width = data.get('width')
    height = data.get('height')
    user_id = get_user_id(uuid=uuid)
    if user_id:
        pic_size = db.session.query(PicSize).get(pic_size_id).first()
        if pic_size:
            pic_size.width = width
            pic_size.height = height
            pic_size = pic_size.update_pic_size()
            return generate_pic_size_updated_successfully_response(pic_size)
        else:
            return generate_pic_size_not_found_response(pic_size_id)
    else:
        return generate_user_not_login_response()
예제 #28
0
def get_pic_size_by_id(data):
    uuid = data.get('uuid')
    pic_size_id = data.get('id')
    user_id = get_user_id(uuid=uuid)
    if user_id:
        pic_size = db.session.query(PicSize).get(pic_size_id).first()
        if pic_size:
            pic_size_dict = pic_size.to_dict()
            return jsonify({
                'result_code': ErrorCodes.ERROR_CODE_SUCCESS.value,
                'error_message': '',
                'picSizeData': pic_size_dict
            })
        else:
            return generate_pic_size_not_found_response(pic_size_id)
    else:
        return generate_user_not_login_response()
예제 #29
0
def get_bg_light_by_id(data):
    uuid = data.get('uuid')
    bg_light_id = data.get('id')
    user_id = get_user_id(uuid=uuid)
    if user_id:
        bg_light = db.session.query(BgLight).get(bg_light_id)
        if bg_light:
            bg_light_dict = bg_light.to_dict()
            return jsonify({
                'result_code': ErrorCodes.ERROR_CODE_SUCCESS.value,
                'error_message': '',
                'bgLightData': bg_light_dict
            })
        else:
            return generate_bg_light_not_found_response(bg_light_id)
    else:
        return generate_user_not_login_response()
예제 #30
0
def update_bg_light_by_id(data):
    uuid = data.get('uuid')
    bg_light_id = data.get('id')
    width = data.get('width')
    color = data.get('color')
    user_id = get_user_id(uuid=uuid)
    if user_id:
        bg_light = db.session.query(BgLight).get(bg_light_id)
        if bg_light:
            bg_light.width = width
            bg_light.color = color
            bg_light.update_bg_light()
            return generate_bg_light_updated_successfully_response(bg_light)
        else:
            return generate_bg_light_not_found_response(bg_light_id)
    else:
        return generate_user_not_login_response()