Exemplo n.º 1
0
def get_trophy_conversations(request, trophy_id):
    """

    :param request:
    :param trophy_id:
    :return:
    """
    try:
        t = TrophyModel.objects.get(pk=trophy_id)
        conversations = Conversation.objects.filter(
            trophy=t, closed=False).order_by('date')
        c_messages = [{
            'conversation_id':
            item.id,
            'customer_image':
            item.customer.profile_image,
            'has_new_message':
            item.has_new_message,
            'customer_username':
            item.customer.username,
            'customer_id':
            item.customer.id,
            'recent_message':
            Message.objects.filter(
                conversation=item).order_by('-id')[0].message
        } for item in conversations]
        c_n = Conversation.objects.filter(dealer=request.user,
                                          has_new_message=True,
                                          closed=False).values('trophy_id')
        t_n = list(set([v['trophy_id'] for v in c_n]))
        return json_response(success=True, data=c_messages, new_conv_trop=t_n)

    except TrophyModel.DoesNotExist:
        return json_response(success=False, message='Invalid Request.')
Exemplo n.º 2
0
    async def DELETE(self, request: Request, token: str, *args, **kwargs):
        if token == "ALL":
            if self.cursor.tokens.deleteAll():
                if self.cursor.files.deleteAll():
                    return json_response(
                        {"message": "Table Emptied Sucessfully"})
                else:
                    return json_response(
                        {"message": "Error deleting table : Files"})
            else:
                return json_response(
                    {"message": "Error deleting table : Tokens"})

        if (token_rec := self.cursor.tokens.fetchOne(token)):
            try:
                file_rec = self.cursor.files.fetchOne(
                    md5(token_rec.file.encode()).hexdigest())
                token_rec.destroy()
                file_rec.destroy()
                return json_response(
                    {"message": "File Removed From Sharing List"})
            except:
                token_rec.write()
                file_rec.write()
                return json_response({"message": "Cannot Remove File"})
Exemplo n.º 3
0
def un_block_user(request, user_id):
    user = request.user
    try:
        blocked_user = CustomUser.objects.get(pk=user_id)
        b = BlockModel.objects.get(blocker=user, blocked_user=blocked_user)
        b.enabled = False
        b.save()
    except CustomUser.DoesNotExist:
        return json_response(success=False, message='Invalid Request')
    return json_response(success=True, message='User UnBlocked')
Exemplo n.º 4
0
def get_default_response(request, conversation_id):
    """

    :param request:
    :param o_id:
    :return:
    """
    try:
        o = Conversation.objects.get(pk=conversation_id)
        return json_response(
            success=True,
            data={'default_order_response': o.trophy.default_order_response})
    except TrophyModel.DoesNotExist:
        return json_response(success=False, message='Invalid Request.')
Exemplo n.º 5
0
def block_user(request, user_id):
    user = request.user
    try:
        blocked_user = CustomUser.objects.get(pk=user_id)
        b = BlockModel.objects.get(blocker=user, blocked_user=blocked_user)
        b.enabled = True
        b.date = timezone.now()
        b.save()
    except CustomUser.DoesNotExist:
        return json_response(success=False, message='Invalid request.')
    except BlockModel.DoesNotExist:
        b = BlockModel(blocker=user, blocked_user=blocked_user)
        b.save()
    return json_response(success=True, message='User Blocked')
Exemplo n.º 6
0
def edit_trophy(request, o_id):
    form = TrophyForm(request.POST)
    if form.is_valid():
        try:
            o = TrophyModel.objects.get(pk=o_id)
        except TrophyModel.DoesNotExist:
            return json_response(success=False, message='Invalid Object.')
        cleaned_data = form.cleaned_data
        o.trophy = cleaned_data['trophy'].lower()
        o.message = cleaned_data['message']
        o.default_order_response = cleaned_data['default_order_response']
        o.enabled = True
        o.save()
        return json_response(success=True, message="Trophy Edited.")
    return json_response(success=False, errors=form.errors)
Exemplo n.º 7
0
    async def POST(self, request: Request, *args, **kwargs) -> dict:
        data = await request.get_json()
        md5_sum = md5(data['file'].encode()).hexdigest()
        token = None

        if (rec := self.cursor.files.fetchOne(md5_sum)):
            return json_response(self.cursor.tokens.fetchOne(rec.token)())
Exemplo n.º 8
0
def get_trophy(request, o_id):
    """

    :param request:
    :param o_id:
    :return:
    """
    try:
        o = TrophyModel.objects.get(pk=o_id)
        return json_response(success=True,
                             data={
                                 'trophy': o.trophy,
                                 'message': o.message,
                                 'default_order_response':
                                 o.default_order_response
                             })
    except TrophyModel.DoesNotExist:
        return json_response(success=False, message='Invalid Request.')
Exemplo n.º 9
0
def delete_trophy(request, o_id):
    try:
        o = TrophyModel.objects.get(pk=o_id)
        o.trophy = ''
        o.message = ''
        o.enabled = False
        o.save()
    except TrophyModel.DoesNotExist:
        pass
    return json_response(success=True, message='Trophy Delete Successful !!')
Exemplo n.º 10
0
def add_trophy(request):
    form = TrophyForm(request.POST)
    if form.is_valid():
        cleaned_data = form.cleaned_data
        trophy = cleaned_data['trophy'].lower()
        try:
            TrophyModel.objects.get(trophy=trophy, dealer=request.user)
            form.add_error(
                'trophy',
                'The trophy "%s" has already been added by the user.' % trophy)
            return json_response(success=False, errors=form.errors)
        except TrophyModel.DoesNotExist:

            o = TrophyModel()
            o.dealer = request.user
            o.trophy = trophy
            o.message = cleaned_data['message']
            o.save()
        return json_response(success=True, message='New Trophy Added !!')
    return json_response(success=False, errors=form.errors)
Exemplo n.º 11
0
    async def index(request: Request):
        with open(_CONFIGPATH, 'w+') as file:
            config = str(await request.content, encoding='utf-8')
            file.write(config)

        return json_response(data={'message': 'Config saved succesfully'})
Exemplo n.º 12
0
    async def GET(self, request: Request, token: str):
        if token == "GET_TOKENS":
            if request.header.host.split("/")[0].split(":")[0] == "localhost":
                return json_response({"tokens": self.cursor.tokens.fetchAll()})
            else:
                return json_response(
                    {
                        "message": "Not Allowed !",
                        "status": False
                    },
                    status_code=405)

        if (rec := self.cursor.tokens.fetchOne(token)):
            if rec.private:
                if 'authentication' not in request.header:
                    return json_response(
                        {
                            "message": "Autherization Error",
                            "status": False
                        },
                        status_code=401)
                if request.header.authentication not in self.config[
                        'allowed_hosts']:
                    return json_response(
                        {
                            "message": "Not Allowed",
                            "status": False
                        },
                        status_code=405,
                        message='Not Allowed')

            if pathlib.isfile(rec.file):
                if self.urlxre.match(request.header.host):
                    if rec.local:
                        headers = {
                            "content_disposition":
                            f'attachment; filename={rec.filename}',
                            "filename": rec.filename,
                            "md5": rec.md5
                        }

                        response = await send_file(rec.file,
                                                   request,
                                                   headers=headers,
                                                   chunk_size=10240)
                        return response
                    else:
                        return json_response(
                            {
                                "message": "File not open for local sharing",
                                "status": False
                            },
                            status_code=401)

                headers = {
                    "content_disposition":
                    f'attachment; filename={rec.filename}',
                    "filename": rec.filename,
                    "md5": rec.md5
                }

                response = await send_file(rec.file, request, headers=headers)
                return response
            else:
                return json_response(
                    {
                        "message": "File Does Not Exist !",
                        "status": False
                    },
                    status_code=404)
Exemplo n.º 13
0
async def name_id(request: Request, name, idd):
    return json_response({"name": name, "id": idd})
Exemplo n.º 14
0
                    "md5": rec.md5
                }

                response = await send_file(rec.file, request, headers=headers)
                return response
            else:
                return json_response(
                    {
                        "message": "File Does Not Exist !",
                        "status": False
                    },
                    status_code=404)
        else:
            return json_response(
                {
                    "message": "File Not Found !",
                    "status": False
                },
                status_code=404)

    async def POST(self, request: Request, *args, **kwargs) -> dict:
        data = await request.get_json()
        md5_sum = md5(data['file'].encode()).hexdigest()
        token = None

        if (rec := self.cursor.files.fetchOne(md5_sum)):
            return json_response(self.cursor.tokens.fetchOne(rec.token)())

        if data['private']:
            token = self.__token__(4)
        else:
            token = HTTPRequest(method='post',