async def delete_enum_by_id_by_super_admin(
    enum_id: Optional[EnumId] = None,
    principal_service: PrincipalService = Depends(get_super_admin_principal)
) -> Enum:
    if not ask_tuple_delete_enabled():
        raise_404('Not Found')

    if is_blank(enum_id):
        raise_400('Enumeration id is required.')

    enum_service = get_enum_service(principal_service)

    def action() -> Enum:
        # noinspection PyTypeChecker
        an_enum: Enum = enum_service.delete(enum_id)
        if an_enum is None:
            raise_404()
        enum_item_service = get_enum_item_service(enum_service)
        enum_items = enum_item_service.find_by_enum_id(an_enum.enumId)
        if enum_items is None:
            an_enum.items = []
        else:
            an_enum.items = enum_items
        enum_item_service.delete_by_enum_id(an_enum.enumId)
        return an_enum

    return trans(enum_service, action)
Пример #2
0
async def delete_user_by_id_by_super_admin(
    user_id: Optional[UserId] = None,
    principal_service: PrincipalService = Depends(get_super_admin_principal)
) -> User:
    if not ask_tuple_delete_enabled():
        raise_404('Not Found')

    if is_blank(user_id):
        raise_400('User id is required.')

    user_service = get_user_service(principal_service)

    def action() -> User:
        # noinspection PyTypeChecker
        user: User = user_service.delete(user_id)
        if user is None:
            raise_404()
        user_group_ids = user.groupIds
        if user_group_ids is not None and len(user_group_ids) != 0:
            user_group_ids = ArrayHelper(user_group_ids).filter(
                lambda x: is_not_blank(x)).to_list()
            remove_user_from_groups(user_service, user.userId, user_group_ids,
                                    user.tenantId)
        return user

    return trans(user_service, action)
Пример #3
0
async def delete_dashboard_by_id_by_super_admin(
		dashboard_id: Optional[DashboardId] = None,
		principal_service: PrincipalService = Depends(get_super_admin_principal)
) -> Dashboard:
	if not ask_tuple_delete_enabled():
		raise_404('Not Found')

	if is_blank(dashboard_id):
		raise_400('Report id is required.')

	dashboard_service = get_dashboard_service(principal_service)

	def action() -> Dashboard:
		# noinspection PyTypeChecker
		dashboard: Dashboard = dashboard_service.delete(dashboard_id)
		if dashboard is None:
			raise_404()
		return dashboard

	return trans(dashboard_service, action)
async def delete_report_by_id_by_super_admin(
		report_id: Optional[ReportId] = None,
		principal_service: PrincipalService = Depends(get_super_admin_principal)
) -> Report:
	if not ask_tuple_delete_enabled():
		raise_404('Not Found')

	if is_blank(report_id):
		raise_400('Report id is required.')

	report_service = get_report_service(principal_service)

	def action() -> Report:
		# noinspection PyTypeChecker
		report: Report = report_service.delete(report_id)
		if report is None:
			raise_404()
		return report

	return trans(report_service, action)
async def delete_topic_by_id_by_super_admin(
    topic_id: Optional[TopicId] = None,
    principal_service: PrincipalService = Depends(get_super_admin_principal)
) -> Topic:
    if not ask_tuple_delete_enabled():
        raise_404('Not Found')

    if is_blank(topic_id):
        raise_400('Topic id is required.')

    topic_service = get_topic_service(principal_service)

    def action() -> Topic:
        # noinspection PyTypeChecker
        topic: Topic = topic_service.delete(topic_id)
        if topic is None:
            raise_404()
        post_delete_topic(topic.topicId, topic_service)
        return topic

    return trans(topic_service, action)
Пример #6
0
async def delete_pipeline_by_id_by_super_admin(
    pipeline_id: Optional[PipelineId] = None,
    principal_service: PrincipalService = Depends(get_super_admin_principal)
) -> Pipeline:
    if not ask_tuple_delete_enabled():
        raise_404('Not Found')

    if is_blank(pipeline_id):
        raise_400('Topic id is required.')

    pipeline_service = get_pipeline_service(principal_service)

    def action() -> Pipeline:
        # noinspection PyTypeChecker
        pipeline: Pipeline = pipeline_service.delete(pipeline_id)
        if pipeline is None:
            raise_404()
        post_delete_pipeline(pipeline.pipelineId, pipeline_service)
        return pipeline

    return trans(pipeline_service, action)
Пример #7
0
async def delete_external_writer_by_id(
    writer_id: Optional[ExternalWriterId] = None,
    principal_service: PrincipalService = Depends(get_super_admin_principal)
) -> ExternalWriter:
    if not ask_tuple_delete_enabled():
        raise_404('Not Found')

    if is_blank(writer_id):
        raise_400('External writer id is required.')

    external_writer_service = get_external_writer_service(principal_service)

    def action() -> ExternalWriter:
        # noinspection PyTypeChecker
        external_writer: ExternalWriter = external_writer_service.delete(
            writer_id)
        if external_writer is None:
            raise_404()
        return external_writer

    return trans(external_writer_service, action)
async def delete_data_source_by_id_by_super_admin(
    data_source_id: Optional[DataSourceId] = None,
    principal_service: PrincipalService = Depends(get_super_admin_principal)
) -> DataSource:
    if not ask_tuple_delete_enabled():
        raise_404('Not Found')

    if is_blank(data_source_id):
        raise_400('Data source id is required.')

    data_source_service = get_data_source_service(principal_service)

    def action() -> DataSource:
        # noinspection PyTypeChecker
        data_source: DataSource = data_source_service.delete(data_source_id)
        if data_source is None:
            raise_404()
        CacheService.data_source().remove(data_source_id)
        return data_source

    return trans(data_source_service, action)
Пример #9
0
async def delete_tenant_by_id_by_super_admin(
    tenant_id: Optional[TenantId] = None,
    principal_service: PrincipalService = Depends(get_super_admin_principal)
) -> Tenant:
    if not ask_tuple_delete_enabled():
        raise_404('Not Found')

    if is_blank(tenant_id):
        raise_400('Tenant id is required.')

    tenant_service = get_tenant_service(principal_service)

    def action() -> Tenant:
        # noinspection PyTypeChecker
        tenant: Tenant = tenant_service.delete(tenant_id)
        if tenant is None:
            raise_404()
        CacheService.tenant().remove(tenant_id)
        return tenant

    return trans(tenant_service, action)
async def delete_last_snapshot_by_id(
    user_id: Optional[UserId],
    principal_service: PrincipalService = Depends(get_super_admin_principal)
) -> LastSnapshot:
    if not ask_tuple_delete_enabled():
        raise_404('Not Found')

    if is_blank(user_id):
        raise_400('User id is required.')

    last_snapshot_service = get_last_snapshot_service(principal_service)

    def action() -> LastSnapshot:
        # noinspection PyTypeChecker
        last_snapshot: LastSnapshot = last_snapshot_service.delete_by_id(
            user_id)
        if last_snapshot is None:
            raise_404()
        return last_snapshot

    return trans(last_snapshot_service, action)
Пример #11
0
async def delete_connected_space_graphic_by_id_by_super_admin(
    connect_id: Optional[ConnectedSpaceId] = None,
    principal_service: PrincipalService = Depends(get_super_admin_principal)
) -> ConnectedSpaceGraphic:
    if not ask_tuple_delete_enabled():
        raise_404('Not Found')

    if is_blank(connect_id):
        raise_400('Connected space id is required.')

    connected_space_graphic_service = get_connected_space_graphic_service(
        principal_service)

    def action() -> ConnectedSpaceGraphic:
        # noinspection PyTypeChecker
        connected_space_graphic: ConnectedSpaceGraphic = connected_space_graphic_service.delete(
            connect_id)
        if connected_space_graphic is None:
            raise_404()
        return connected_space_graphic

    return trans(connected_space_graphic_service, action)
Пример #12
0
async def delete_connected_space_by_id_by_super_admin(
    connect_id: Optional[ConnectedSpaceId] = None,
    principal_service: PrincipalService = Depends(get_super_admin_principal)
) -> ConnectedSpaceWithSubjects:
    if not ask_tuple_delete_enabled():
        raise_404('Not Found')

    if is_blank(connect_id):
        raise_400('Connected space id is required.')

    connected_space_service = get_connected_space_service(principal_service)

    # noinspection DuplicatedCode
    def action() -> ConnectedSpaceWithSubjects:
        # noinspection PyTypeChecker
        existing_connected_space: Optional[
            ConnectedSpace] = connected_space_service.find_by_id(connect_id)
        if existing_connected_space is None:
            raise_404()
        # noinspection PyTypeChecker
        connected_space: ConnectedSpace = connected_space_service.delete(
            connect_id)
        subject_service: SubjectService = get_subject_service(
            connected_space_service)
        subjects: List[Subject] = subject_service.delete_by_connect_id(
            connect_id)
        report_service: ReportService = get_report_service(
            connected_space_service)
        reports: List[Report] = report_service.delete_by_connect_id(connect_id)
        report_map: Dict[SubjectId, List[Report]] = ArrayHelper(
            reports).group_by(lambda x: x.subjectId)

        connected_space_with_subjects = ConnectedSpaceWithSubjects(
            **connected_space.dict())
        connected_space_with_subjects.subjects = ArrayHelper(subjects) \
         .map(lambda x: to_subject_with_reports(x, report_map.get(x.subjectId))).to_list()
        return connected_space_with_subjects

    return trans(connected_space_service, action)
Пример #13
0
async def delete_subject_by_id_by_super_admin(
    subject_id: Optional[SubjectId] = None,
    principal_service: PrincipalService = Depends(get_super_admin_principal)
) -> SubjectWithReports:
    if not ask_tuple_delete_enabled():
        raise_404('Not Found')

    if is_blank(subject_id):
        raise_400('Subject id is required.')

    subject_service = get_subject_service(principal_service)

    def action() -> SubjectWithReports:
        # noinspection PyTypeChecker
        subject: Subject = subject_service.delete(subject_id)
        if subject is None:
            raise_404()
        report_service: ReportService = get_report_service(subject_service)
        reports: List[Report] = report_service.delete_by_subject_id(subject_id)
        return SubjectWithReports(**subject.dict(), reports=reports)

    return trans(subject_service, action)
Пример #14
0
async def delete_scheduler(
    scheduler_id: Optional[TopicSnapshotSchedulerId],
    principal_service: PrincipalService = Depends(get_admin_principal)
) -> None:
    if not ask_tuple_delete_enabled():
        raise_404('Not Found')

    if is_blank(scheduler_id):
        raise_400('Scheduler id is required.')

    scheduler_service = get_topic_snapshot_scheduler_service(principal_service)

    # noinspection DuplicatedCode
    def action() -> None:
        # noinspection PyTypeChecker
        existing_scheduler: Optional[
            TopicSnapshotScheduler] = scheduler_service.find_by_id(
                scheduler_id)
        if existing_scheduler is None:
            raise_404()
        scheduler_service.delete(scheduler_id)

    trans(scheduler_service, action)
Пример #15
0
async def delete_space_by_id_by_super_admin(
		space_id: Optional[SpaceId] = None,
		principal_service: PrincipalService = Depends(get_super_admin_principal)
) -> Space:
	if not ask_tuple_delete_enabled():
		raise_404('Not Found')

	if is_blank(space_id):
		raise_400('Space id is required.')

	space_service = get_space_service(principal_service)

	def action() -> Space:
		# noinspection PyTypeChecker
		space: Space = space_service.delete(space_id)
		if space is None:
			raise_404()
		user_group_ids = space.groupIds
		if user_group_ids is not None and len(user_group_ids) != 0:
			user_group_ids = ArrayHelper(user_group_ids).filter(lambda x: is_not_blank(x)).to_list()
			remove_space_from_groups(space_service, space.spaceId, user_group_ids, space.tenantId)
		return space

	return trans(space_service, action)