private CreativeMaterialListResponse typedCreativeMaterialList(
            final String roomEventIdStr, final String creativeMaterialTypeName
    ) {
        Boolean success = true;
        String errorMessage = null;
        List<CreativeMaterial> creativeMaterialList = null;

        Long roomEventId = null;
        try {
            roomEventId = controllerUtils.convertStringToLong(roomEventIdStr, true);
        } catch (UrlParameterException e) {
            success = false;
            errorMessage = "Room event ID is wrong or empty";
        }

        if (success) {
            try {
                creativeMaterialList = creativeMaterialPresenter.findCreativeMaterialsByRoomEventIdAndTypeName(
                        roomEventId, creativeMaterialTypeName
                );
            } catch (WrongTypeNameException e) {
                success = false;
                errorMessage = creativeMaterialTypeName + " type name is wrong";
            }
        }

        return new CreativeMaterialListResponse(success, errorMessage, creativeMaterialList);
    }