Beispiel #1
0
    def create_user_request(cls, title, user_ID, **kwargs):
        # create a new user_request object
        user = UserBusiness.get_by_user_ID(user_ID)
        created_user_request = UserRequestBusiness.add_user_request(
            title=title,
            user=user,
            status=0,
            **kwargs)

        # 记录历史记录
        statistics = StatisticsBusiness.action(
            user_obj=user,
            entity_obj=created_user_request,
            entity_type="userRequest",
            action="create"
        )

        # 记录世界频道消息  # 推送消息
        world = WorldService.system_send(
            channel=CHANNEL.request,
            message=f"用户{created_user_request.user.user_ID}" +
                    f"发布了需求{created_user_request.title}")

        # return created_user_request

        # 不再记录到favor list里面
        # todo
        if created_user_request:
            user_entity = UserService. \
                action_entity(user_ID=user_ID,
                              entity_id=created_user_request.id,
                              action='star', entity='request')
            return user_entity.entity
        else:
            raise RuntimeError('Cannot create the new user_request')
Beispiel #2
0
    def create_project(cls,
                       name,
                       description,
                       user_ID,
                       tags=None,
                       user_token='',
                       type='project',
                       **kwargs):
        """
        Create a new project

        :param name: str
        :param description: str
        :param user_ID: ObjectId
        :param type: string (app/module/dataset)
        :param tags: list of string
        :param user_token: string
        :return: a new created project object
        """
        if tags is None:
            tags = []
        project_type = type
        user = UserBusiness.get_by_user_ID(user_ID)
        # message = "{}创建了app{}".format(user.name, name)
        # world_business.system_send(channel=cls.channel, message=message)

        project = cls.business.create_project(name=name,
                                              description=description,
                                              type=type,
                                              tags=tags,
                                              user=user,
                                              user_token=user_token,
                                              **kwargs)

        from server3.service.user_service import UserService
        user, project = UserService.action_entity(user_ID=project.user.user_ID,
                                                  entity_id=project.id,
                                                  action='favor',
                                                  entity=project.type)
        from server3.service.world_service import WorldService
        from server3.business.statistics_business import StatisticsBusiness
        # 记录历史记录
        # statistics = StatisticsBusiness.action(
        #     user_obj=user,
        #     entity_obj=project,
        #     entity_type=type,
        #     action="create"
        # )
        # 记录世界频道消息  # 推送消息
        world = WorldService.system_send(
            channel=CHANNEL.request,
            message=f"用户{project.user.user_ID}创建了{project_type}: {project.name}"
        )

        return project
Beispiel #3
0
def send():
    """
    用户发送 世界频道消息
    :return:
    :rtype:
    """
    data = request.get_json()
    user_ID = get_jwt_identity()
    channel = data.pop("channel")
    message = data.pop("message")
    result = WorldService.user_send(user_ID, channel, message)
    if result:
        result = json_utility.convert_to_json(result.to_mongo())
        return jsonify({
            "response": result
        }), 200
def create_request_answer(**data):
    # create a new request_answer object
    created_request_answer = request_answer_business. \
        add_request_answer(**data)
    if created_request_answer:
        # get user object
        user = data['answer_user']
        user_request = user_request_business. \
            get_by_user_request_id(data['user_request'])

        from server3.service.world_service import WorldService
        from server3.business.statistics_business import StatisticsBusiness
        from server3.entity.world import CHANNEL

        # 记录历史记录
        statistics = StatisticsBusiness.action(
            user_obj=user,
            entity_obj=created_request_answer,
            entity_type="requestAnswer",
            action="create")

        # 记录世界频道消息  # 推送消息
        world = WorldService.system_send(
            channel=CHANNEL.request,
            message=f"用户{created_request_answer.answer_user.user_ID}为需求"
            f"{user_request.title}创建了回答")

        # create ownership relations
        #  新建通知消息
        admin_user = user_business.get_by_user_ID('admin')

        receivers = [el for el in user_request.star_user]
        if message_service.create_message(
                sender=admin_user,
                message_type='answer',
                receivers=receivers,
                user=user,
                title='Notification',
                user_request=user_request,
        ):
            return created_request_answer
        else:
            raise RuntimeError(
                'Cannot create message of the new request_answer')

    else:
        raise RuntimeError('Cannot create the new request_answer')
def create_user_request(title, user_ID, **kwargs):
    # create a new user_request object
    user = user_business.get_by_user_ID(user_ID)
    created_user_request = user_request_business.add_user_request(title=title,
                                                                  user=user,
                                                                  status=0,
                                                                  **kwargs)

    # 记录历史记录
    statistics = StatisticsBusiness.action(user_obj=user,
                                           entity_obj=created_user_request,
                                           entity_type="userRequest",
                                           action="create")

    # 记录世界频道消息  # 推送消息
    world = WorldService.system_send(
        channel=CHANNEL.request,
        message=
        f"用户{created_user_request.user.user_ID}发布了需求{created_user_request.title}"
    )

    if created_user_request:
        # 默认发布者star
        created_user_request = user_service.update_request_star(
            created_user_request.id, user_ID)

        # get user object
        user = user_business.get_by_user_ID(user_ID=user_ID)
        # create ownership relation
        if ownership_business.add(user, user_request=created_user_request):
            return created_user_request
        else:
            raise RuntimeError(
                'Cannot create ownership of the new user_request')
    else:
        raise RuntimeError('Cannot create the new user_request')