Exemplo n.º 1
0
    def post(self, request, need, team):
        """同意加入申请并将创始人加入自己团队(对方需发送过合作申请)"""

        if request.user != need.team.owner:
            abort(403, '只有队长能操作')

        if need.cooperation_requests.filter(sender=team).exists():
            # 在事务中建立关系,并删除对应的申请合作
            with transaction.atomic():
                need.cooperation_requests.filter(sender=team).delete()
                if need.team.members.filter(user=team.owner).exists():
                    abort(200)
                # 保存需求的加入团队Id
                if len(need.members) > 0:
                    need.members = need.members + "|" + str(team.id)
                else:
                    need.members = str(team.id)
                need.save()

                need.team.members.create(user=team.owner)
                action.join_team(team.owner, need.team)
                request.user.score += get_score_stage(1)
                request.user.score_records.create(score=get_score_stage(1),
                                                  type="能力",
                                                  description="与其他团队合作")
                team.score += get_score_stage(1)
                team.score_records.create(score=get_score_stage(1),
                                          type="能力",
                                          description="与其他团队合作")
                request.user.save()
                team.save()
            abort(200)
        abort(403, '对方未发送过申请合作')
Exemplo n.º 2
0
 def post(self, request, user):
     # 积分
     user.score += get_score_stage(1)
     user.score_records.create(score=get_score_stage(1),
                               type="受欢迎度",
                               description="他人点赞")
     user.save()
     return super().post(request, user)
Exemplo n.º 3
0
 def delete(self, request, user):
     # 积分
     user.score -= get_score_stage(1)
     user.score_records.create(score=-get_score_stage(1),
                               type="受欢迎度",
                               description="他人取消点赞")
     user.save()
     return super().delete(request, user)
Exemplo n.º 4
0
    def delete(self, request, entity):
        """对某个对象取消点赞"""

        # 积分
        request.user.score -= get_score_stage(1)
        request.user.score_records.create(score=-get_score_stage(1),
                                          type="活跃度",
                                          description="取消给他人点赞")
        request.user.save()
        entity.likers.filter(liker=request.user).delete()
        abort(200)
Exemplo n.º 5
0
    def post(self, request, activity):
        """令当前用户关注activity"""

        if request.user.followed_activities.filter(followed=activity).exists():
            abort(403, '已经关注过该活动')
        request.user.followed_activities.create(followed=activity)
        request.user.score += get_score_stage(1)
        request.user.score_records.create(score=get_score_stage(1),
                                          type="活跃度",
                                          description="增加一个关注")
        request.user.save()
        abort(200)
Exemplo n.º 6
0
    def post(self, request, need):
        """令当前用户关注need"""

        if request.user.followed_needs.filter(followed=need).exists():
            abort(403, '已经关注过该需求')
        request.user.followed_needs.create(followed=need)
        request.user.score += get_score_stage(1)
        request.user.score_records.create(score=get_score_stage(1),
                                          type="活跃度",
                                          description="增加一个关注")
        request.user.save()
        abort(200)
Exemplo n.º 7
0
    def delete(self, request, need):
        """令当前用户取消关注need"""

        qs = request.user.followed_needs.filter(followed=need)
        if qs.exists():
            # 积分
            request.user.score -= get_score_stage(1)
            request.user.score_records.create(score=-get_score_stage(1),
                                              type="活跃度",
                                              description="取消关注")
            qs.delete()
            abort(200)
        abort(403, '未关注过该需求')
Exemplo n.º 8
0
    def delete(self, request, activity):
        """令当前用户取消关注activity"""

        qs = request.user.followed_activities.filter(followed=activity)
        if qs.exists():
            # 积分
            request.user.score -= get_score_stage(1)
            request.user.score_records.create(score=-get_score_stage(1),
                                              type="活跃度",
                                              description="取消关注")
            qs.delete()
            abort(200)
        abort(403, '未关注过该活动')
Exemplo n.º 9
0
    def delete(self, request, competition):
        """令当前用户取消关注competition"""

        qs = request.user.followed_competitions.filter(followed=competition)
        if qs.exists():
            # 积分
            request.user.score -= get_score_stage(1)
            request.user.score_records.create(score=-get_score_stage(1),
                                              type="活跃度",
                                              description="取消关注")
            qs.delete()
            abort(200)
        abort(403, '未关注过该竞赛')
Exemplo n.º 10
0
    def post(self, request, competition):
        """令当前用户关注competition"""

        if request.user.followed_competitions.filter(
                followed=competition).exists():
            abort(403, '已经关注过该竞赛')
        request.user.followed_competitions.create(followed=competition)
        request.user.score += get_score_stage(1)
        request.user.score_records.create(score=get_score_stage(1),
                                          type="活跃度",
                                          description="增加一个关注")
        request.user.save()
        abort(200)
Exemplo n.º 11
0
    def post(self, request, **kwargs):
        """新建团队,同时调用融云接口为该团队创建一个对应的群聊

        :param kwargs:
            name: 团队名称
            description: 团队描述
            url: 团队链接
            province:
            city:
            county:
            fields: 团队领域,格式:'field1|field2'
            tags: 标签,格式:'tag1|tag2|tag3|...'
        :return: team_id: 团队id
        """
        name = kwargs.pop('name')
        fields = kwargs.pop('fields', None)
        tags = kwargs.pop('tags', None)

        # 昵称唯一性验证
        if Team.enabled.filter(name=name).count() != 0:
            abort(403, '团队名已被注册')
        # 昵称非法词验证
        if check_bad_words(name):
            abort(403, '团队名含非法词汇')

        team = Team(owner=request.user, name=name)
        team.save()

        for k in kwargs:
            setattr(team, k, kwargs[k])
        fields = fields.split('|')[:2] if fields is not None else ('', '')
        team.field1, team.field2 = fields[0].strip(), fields[1].strip()

        if tags:
            tags = tags.split('|')[:5]
            with transaction.atomic():
                team.tags.all().delete()
                order = 0
                for tag in tags:
                    tag = tag.strip()
                    if tag:
                        team.tags.create(name=tag, order=order)
                        order += 1
        team.save()

        action.create_team(request.user, team)
        request.user.score += get_score_stage(2)
        request.user.score_records.create(
            score=get_score_stage(2), type="能力", description="成功创建一个团队")
        request.user.save()
        return JsonResponse({'team_id': team.id})
Exemplo n.º 12
0
    def post(self, request, content):
        """用户意见反馈

        :param content: 反馈内容
        :return: 200
        """
        if request.user.feedback.count() == 0:
            request.user.score += get_score_stage(2)
            request.user.score_records.create(
                score=get_score_stage(2), type="活跃度",
                description="增加一条反馈")
            request.user.save()
        request.user.feedback.create(content=content)
        abort(200)
Exemplo n.º 13
0
    def post(self, request, **kwargs):
        """eid实名认证

        :param kwargs:
            real_name: 真实姓名
            id_number: 身份证号码
            eid_issuer: eid相关信息
            eid_issuer_sn: eid相关信息
            eid_sn: eid: eid相关信息
            data_to_sign: 待签原文的base64字符串
            eid_sign: eid卡对签名原文的签名结果
            eid_sign_algorithm: eid卡进行签名的类型
        """

        id_keys = ('real_name', 'id_number', 'eid_issuer', 'eid_issuer_sn',
                   'eid_sn')

        # 调用eid接口验证用户信息
        data = {
            'eidIssuer': kwargs['eid_issuer'],
            'eidIssuerSn': kwargs['eid_issuer_sn'],
            'eidSn': kwargs['eid_sn'],
            'idNum': kwargs['id_number'],
            'name': kwargs['real_name'],
            'dataToSign': kwargs['data_to_sign'],
            'eidSign': kwargs['eid_sign'],
            'eidSignAlgorithm': kwargs['eid_sign_algorithm'],
        }
        res = eid_verify(data)
        if res != 1:
            abort(res, 'eid信息与身份证信息不符')

        # 验证成功后,若用户当前的状态时待审核或者审核未通过,则将用户相关信息保存到数据库
        if request.user.is_verified in [0, 3]:
            for k in id_keys:
                if k in kwargs:
                    setattr(request.user, k, kwargs[k])

        # 积分相关
        if not request.user.id_card:
            request.user.score += get_score_stage(5)
            request.user.score_records.create(score=get_score_stage(5),
                                              type="初始数据",
                                              description="首次Eid认证")
        # 将实名认证状态码改为4表示EID认证通过
        request.user.is_verified = 4
        request.user.save()
        abort(200)
Exemplo n.º 14
0
    def post(self, request, team):
        """令当前用户关注team"""

        if request.user.followed_teams.filter(followed=team).exists():
            abort(403, '已经关注过该团队')
        request.user.followed_teams.create(followed=team)
        request.user.score += get_score_stage(1)
        request.user.score_records.create(score=get_score_stage(1),
                                          type="活跃度",
                                          description="增加一个关注")
        team.score += get_score_stage(1)
        team.score_records.create(score=get_score_stage(1),
                                  type="受欢迎度",
                                  description="增加一个关注")
        request.user.save()
        team.save()
        abort(200)
Exemplo n.º 15
0
    def post(self, request, user):
        """令当前用户关注user"""

        if request.user.followed_users.filter(followed=user).exists():
            abort(403, '已经关注过')
        request.user.followed_users.create(followed=user)
        # 积分
        request.user.score += get_score_stage(1)
        request.user.score_records.create(score=get_score_stage(1),
                                          type="活跃度",
                                          description="增加关注")
        user.score += get_score_stage(1)
        user.score_records.create(score=get_score_stage(1),
                                  type="受欢迎度",
                                  description="被关注")
        request.user.save()
        user.save()
        abort(200)
Exemplo n.º 16
0
    def post(self, request, type, **kwargs):
        """增加一条经历"""

        if check_bad_words(kwargs['description']):
            abort(400, '含有非法词汇')
        request.user.experiences.create(type=type,
                                        description=kwargs['description'],
                                        unit=kwargs['unit'],
                                        profession=kwargs['profession'],
                                        degree=kwargs['degree'],
                                        time_in=kwargs['time_in'],
                                        time_out=kwargs['time_out'])
        request.user.score += get_score_stage(3)
        request.user.score_records.create(score=get_score_stage(3),
                                          type="活跃度",
                                          description="增加一条经历")
        request.user.save()
        abort(200)
Exemplo n.º 17
0
 def __add_invited_users(self, user, codes):
     for c in codes:
         u = User.enabled.filter(invitation_code=c)
         if not u:
             abort(404, '推荐码错误')
         user.invited.add(u)
         u.score_records.create(score=get_score_stage(4),
                                type="活跃度",
                                description="邀请码被使用")
Exemplo n.º 18
0
    def post(self, request, need):
        """将需求标记成已满足"""

        if request.user != need.team.owner:
            abort(403, '只有队长可以操作')
        need.status = 1
        need.save()
        request.user.score += get_score_stage(1)
        request.user.score_records.create(score=get_score_stage(1),
                                          type="能力",
                                          description="将团队需求标记为已满足")
        need.team.score += get_score_stage(1)
        need.team.score_records.create(score=get_score_stage(1),
                                       type="能力",
                                       description="将团队需求标记为已满足")
        request.user.save()
        need.team.save()
        abort(200)
Exemplo n.º 19
0
    def post(self, request):
        """上传用户头像"""

        icon = request.FILES.get('image')
        if not icon:
            abort(400, '头像上传失败')

        filename = save_uploaded_image(icon)
        if filename:
            if not request.user.icon:
                request.user.score += get_score_stage(3)
                request.user.score_records.create(score=get_score_stage(3),
                                                  type="初始数据",
                                                  description="首次上传头像")
            request.user.icon = filename
            request.user.save()
            return JsonResponse({'icon_url': request.user.icon})
        abort(500, '头像保存失败')
Exemplo n.º 20
0
    def delete(self, request, team):
        """令当前用户取消关注team"""

        qs = request.user.followed_teams.filter(followed=team)
        if qs.exists():
            # 积分
            request.user.score -= get_score_stage(1)
            request.user.score_records.create(score=-get_score_stage(1),
                                              type="活跃度",
                                              description="取消关注")
            team.score -= get_score_stage(1)
            team.score_records.create(score=-get_score_stage(1),
                                      type="受欢迎度",
                                      description="取消关注")
            request.user.save()
            team.save()
            qs.delete()
            abort(200)
        abort(403, '未关注过该团队')
Exemplo n.º 21
0
    def delete(self, request, user):
        """令当前用户取消关注user"""

        qs = request.user.followed_users.filter(followed=user)
        if qs.exists():
            # 积分
            request.user.score -= get_score_stage(1)
            request.user.score_records.create(score=-get_score_stage(1),
                                              type="活跃度",
                                              description="取消关注")
            user.score -= get_score_stage(1)
            user.score_records.create(score=-get_score_stage(1),
                                      type="受欢迎度",
                                      description="被关注取消")
            request.user.save()
            user.save()
            qs.delete()
            abort(200)
        abort(403, '未关注过该用户')
Exemplo n.º 22
0
    def create_undertake_need(self, request, team, **kwargs):
        if check_bad_words(kwargs["title"]) or check_bad_words(
                kwargs["description"]):
            abort(400, '含有非法词汇')

        team_needs = TeamNeed.objects.filter(team=team, type=2)
        if team_needs.count() == 0:
            team.score += get_score_stage(2)
            team.score_records.create(score=get_score_stage(2),
                                      type="初始数据",
                                      description="首次发布团队需求")
            team.save()

        n = team.needs.create(type=2)
        for k in kwargs:
            setattr(n, k, kwargs[k])
        n.save()
        # 发布动态
        action.send_member_need(team, n)
        # 增加积分
        request.user.score += get_score_stage(1)
        request.user.score_records.create(score=get_score_stage(1),
                                          type="能力",
                                          description="发布一个团队需求")
        team.score += get_score_stage(1)
        team.score_records.create(score=get_score_stage(1),
                                  type="活跃度",
                                  description="发布一个团队需求")
        request.user.save()
        team.save()
        abort(200)
Exemplo n.º 23
0
    def post(self, request, team, **kwargs):
        """发布外包任务

        :param: executor_id: 执行者ID
        :param: title: 标题
        :param: content: 内容
        :param: expend: 预计费用
        :param;deadline: 截止时间
        """
        if check_bad_words(kwargs["title"]) or check_bad_words(
                kwargs["content"]):
            abort(400, '含有非法词汇')
        if request.user != team.owner:
            abort(403, '只有队长可以操作')
        executor_id = kwargs.pop('executor_id')
        executor = None
        try:
            executor = Team.enabled.get(id=executor_id)
        except ObjectDoesNotExist:
            abort(401, '执行者不存在')

        if not team.members.filter(user=executor.owner).exists():
            abort(403, '执行者非团队成员')
        t = team.outsource_external_tasks.create(status=0,
                                                 executor=executor,
                                                 deadline=kwargs['deadline'])
        for k in kwargs:
            setattr(t, k, kwargs[k])
        t.save()
        request.user.score += get_score_stage(1)
        request.user.score_records.create(score=get_score_stage(1),
                                          type="能力",
                                          description="发布一个外部任务")
        team.score += get_score_stage(1)
        team.score_records.create(score=get_score_stage(1),
                                  type="能力",
                                  description="发布一个外部任务")
        request.user.save()
        team.save()
        abort(200)
Exemplo n.º 24
0
    def post(self, request):
        """上传其他证件照片"""
        checkIdVerified(request.user)

        if request.user.is_role_verified:
            abort(403, '已经通过认证')

        other_card = request.FILES.get('image')
        if not other_card:
            abort(400, '图片上传失败')

        filename = save_uploaded_image(other_card, is_private=True)
        if filename:
            if not request.user.other_card:
                request.user.score += get_score_stage(5)
                request.user.score_records.create(score=get_score_stage(5),
                                                  type="初始数据",
                                                  description="首次身份认证")
            request.user.other_card = filename
            request.user.save()
            abort(200)
        abort(500, '图片保存失败')
Exemplo n.º 25
0
    def post(self, request, entity):
        """对某个对象点赞"""

        if not entity.likers.filter(liker=request.user).exists():
            entity.likers.create(liker=request.user)
            # 积分
            request.user.score += get_score_stage(1)
            request.user.score_records.create(score=get_score_stage(1),
                                              type="活跃度",
                                              description="给他人点赞")
            # 特征模型
            if isinstance(entity, User):
                record_like_user(request.user, entity)
            elif isinstance(entity, UserAction):
                record_like_user(request.user, entity.entity)
            elif isinstance(entity, Team):
                record_like_team(request.user, entity)
            elif isinstance(entity, TeamAction):
                record_like_user(request.user, entity.entity)
            else:
                pass

            request.user.save()
        abort(200)
Exemplo n.º 26
0
    def post(self, request, need, user):
        """将目标用户添加为自己的团队成员(对方需发送过人员需求下的加入团队申请)"""

        if request.user != need.team.owner:
            abort(403, '只有队长可以操作')

        if not need.member_requests.filter(sender=user):
            abort(403, '对方未发送申请')

        # 若对方已是团队成员则不做处理
        if need.team.members.filter(user=user).exists():
            abort(200)

        # 在事务中建立关系,并删除对应的加团队申请
        with transaction.atomic():
            need.member_requests.filter(sender=user).delete()
            # 保存需求的加入成员Id
            if len(need.members) > 0:
                need.members = need.members + "|" + str(user.id)
            else:
                need.members = str(user.id)
            need.save()
            need.team.members.create(user=user)
            action.join_team(user, need.team)
            # 积分
            request.user.score += get_score_stage(1)
            request.user.score_records.create(score=get_score_stage(1),
                                              type="能力",
                                              description="加入团队成功")
            need.team.score += get_score_stage(1)
            need.team.score_records.create(score=get_score_stage(1),
                                           type="能力",
                                           description="成功招募一个成员")
            request.user.save()
            need.team.save()
        abort(200)
Exemplo n.º 27
0
    def post(self, request):
        """上传身份证照片"""

        # 等待审核或者已通过审核不能上传照片
        if request.user.is_verified in [1, 2]:
            abort(403, '等待审核或已实名认证')
        if request.user.is_verified == 4:
            abort(403, '已通过eid认证')

        id_card = request.FILES.get('image')
        if not id_card:
            abort(400, '图片上传失败')

        filename = save_uploaded_image(id_card, is_private=True)
        if filename:
            if not request.user.id_card:
                request.user.score += get_score_stage(5)
                request.user.score_records.create(score=get_score_stage(5),
                                                  type="初始数据",
                                                  description="首次实名认证")
            request.user.id_card = filename
            request.user.save()
            abort(200)
        abort(500, '图片保存失败')
Exemplo n.º 28
0
    def post(self, request, team, name, description, tags):
        """发布成果

        :param description: 成果描述
        :return: achievement_id: 成果id
        """
        if request.user != team.owner:
            abort(403, '只有队长可以操作')

        if check_bad_words(description):
            abort(400, '含有非法词汇')

        achievement_num = team.achievements.count()
        if achievement_num == 0:
            team.score += get_score_stage(2)
            team.score_records.create(score=get_score_stage(2),
                                      type="初始数据",
                                      description="首次发布团队成果")

        achievement = Achievement(team=team,
                                  name=name,
                                  description=description,
                                  user=request.user,
                                  tags=tags)
        picture = request.FILES.get('image')
        if picture:
            filename = save_uploaded_image(picture)
            if filename:
                achievement.picture = filename
        else:
            abort(400, '图片上传失败')
        achievement.save()

        request.user.score += get_score_stage(1)
        request.user.score_records.create(score=get_score_stage(1),
                                          type="能力",
                                          description="发布一个团队成果")
        request.user.save()
        team.score += get_score_stage(1)
        team.score_records.create(score=get_score_stage(1),
                                  type="活跃度",
                                  description="发布一个团队成果")
        team.save()
        return JsonResponse({'achievement_id': achievement.id, 'code': 0})
Exemplo n.º 29
0
    def post(self,
             request,
             task,
             expend_actual=None,
             pay_time=None,
             status=None):
        """
        修改外部任务的状态(默认为None, 后台确认任务是按时还是超时完成)
        :param expend_actual: 实际支付金额(确认支付时传)
        :param pay_time: 支付时间(确认支付时传)
        :param status:
            任务状态 - ('等待接受', 0), ('再派任务', 1),
                      ('等待完成', 2), ('等待验收', 3),
                      ('再次提交', 4), ('等待支付', 6),
                      ('再次支付', 7), ('等待确认', 8),
                      ('按时结束', 9),('超时结束', 10)
        """
        if request.user != task.team.owner \
                and request.user != task.executor.owner:
            abort(403, '非法操作')

        if status is None:
            if request.user != task.executor.owner or task.status != 8:
                abort(403, '非法操作')
            task.finish_time = timezone.now()
            if task.finish_time.date() > task.deadline:
                task.status = 10
            else:
                task.status = 9
            # 积分
            task.executor.score += get_score_stage(1)
            task.executor.score_records.create(score=get_score_stage(1),
                                               type="能力",
                                               description="完成一个外部任务")
            task.team.score += get_score_stage(1)
            task.team.score_records.create(score=get_score_stage(1),
                                           type="能力",
                                           description="队友完成一个外部任务")
            task.executor.save()
            task.team.save()
            task.save()
            # 发动态
            action.finish_external_task(task.executor, task)
            abort(200)
        elif status == 0:
            if request.user != task.team.owner or task.status != 1:
                abort(403, '非法操作')
            else:
                # 如果任务状态为再派任务-->等待接受,则分派次数+1
                task.assign_num += 1
        elif status == 1:
            if request.user != task.executor.owner or task.status != 0:
                abort(403, '非法操作')
        elif status == 2:
            if request.user != task.executor.owner or task.status != 0:
                abort(403, '非法操作')
        elif status == 3:
            if request.user != task.executor.owner \
                    or (task.status not in [2, 4]):
                abort(403, '非法操作')
            elif task.status == 4:
                # 如果任务状态为再次提交-->等待验收,则提交次数+1
                task.submit_num += 1
        elif status == 4:
            if request.user != task.team.owner or task.status != 3:
                abort(403, '非法操作')
        elif status == 6:
            if request.user != task.team.owner or task.status != 3:
                abort(403, '非法操作')
        elif status == 7:
            if request.user != task.executor.owner or task.status != 8:
                abort(403, '非法操作')
        elif status == 8:
            if request.user != task.team.owner or (task.status not in [6, 7]):
                abort(403, '非法操作')
            elif task.status == 7:
                # 如果任务状态为再次支付-->等待确认,则支付次数+1
                task.pay_num += 1
            # 获取任务的支付信息
            if expend_actual is None or pay_time is None:
                abort(404, '参数不全')
            else:
                task.expend_actual = expend_actual
                task.pay_time = pay_time
        else:
            abort(400, '状态参数错误')

        task.status = status
        task.save()
        abort(200)
Exemplo n.º 30
0
    def post(self, request, task, status=None):
        """
        修改内部任务的状态(默认为None, 后台确认任务是按时还是超时完成)
        :param status:
        要修改的任务状态 - ('等待接受', 0), ('再派任务', 1),
                          ('等待完成', 2), ('等待验收', 3),
                          ('再次提交', 4), ('按时结束', 5),
                          ('超时结束', 6), ('终止', 7)
        """
        if request.user != task.team.owner and request.user != task.executor:
            abort(403, '非法操作')

        # 任务已经终止,不允许操作
        if task.status == 7:
            abort(403, '任务已结束')

        if status is None:
            if request.user != task.team.owner or task.status != 3:
                abort(403, '非法操作')
            task.finish_time = timezone.now()
            if task.finish_time.date() > task.deadline:
                task.status = 6
            else:
                task.status = 5
            # 积分
            task.executor.score += get_score_stage(1)
            task.executor.score_records.create(score=get_score_stage(1),
                                               type="能力",
                                               description="完成一个内部任务")
            task.team.score += get_score_stage(1)
            task.team.score_records.create(score=get_score_stage(1),
                                           type="能力",
                                           description="队友完成一个内部任务")
            task.executor.save()
            task.team.save()
            task.save()
            abort(200)
        elif status == 0:
            if request.user != task.team.owner or task.status != 1:
                abort(403, '非法操作')
            else:
                # 如果任务状态为再派任务-->等待接受,则分派次数+1
                task.assign_num += 1
        elif status == 1:
            if request.user != task.executor or task.status != 0:
                abort(403, '非法操作')
        elif status == 2:
            if request.user != task.executor or task.status != 0:
                abort(403, '非法操作')
        elif status == 3:
            if request.user != task.executor or (task.status not in [2, 4]):
                abort(403, '非法操作')
            elif task.status == 4:
                # 如果任务状态为再次提交-->等待验收,则提交次数+1
                task.submit_num += 1
        elif status == 4:
            if request.user != task.team.owner or task.status != 3:
                abort(403, '非法操作')
        elif status == 7:
            if request.user != task.team.owner or task.status != 1:
                abort(403, '非法操作')
        else:
            abort(400, '状态参数错误')

        task.status = status
        task.save()
        abort(200)