Пример #1
0
    def post(self, request):
        name = request.data.get("name")
        description = request.data.get("description")
        phone = request.data.get("phone")
        address = request.data.get("address")
        available_now = request.data.get("availableNow")
        photo = request.data.get("image")
        limits = request.data.get("limits")
        category_description = request.data.get("category")
        limits = urllib.parse.unquote(limits.__str__())
        category_selected = CompanyCategory.objects.get(
            description=category_description)
        payment_array = []
        delivery_array = []

        if available_now.__str__() == "true" or available_now:
            available_now = True
        else:
            available_now = False
        try:
            payment_methods = request.data.get("paymentMethods").name
            payment_methods = payment_methods.replace('[', '')
            payment_methods = payment_methods.replace(']', '')
            payment_methods = payment_methods.split(',')
        except:
            payment_methods = request.data.get("paymentMethods")

        try:
            delivery_methods = request.data.get("deliveryMethods").name
            delivery_methods = delivery_methods.replace('[', '')
            delivery_methods = delivery_methods.replace(']', '')
            delivery_methods = delivery_methods.split(',')
        except:
            delivery_methods = request.data.get("deliveryMethods")

        try:
            comapny_from_user = request.user
            company = Company.objects.get(id_user=comapny_from_user)
        except:
            company = Company()
            company.account_debit = 0

        try:
            company.name = name
            company.description = description
            company.phone = phone
            company.address = address
            company.available_now = available_now
            if photo is not None:
                company.photo = photo
            company.limits = limits
            company.category = category_selected
            company.id_user = request.user
            company.save()
            for method in payment_methods:
                method = method.strip()
                method_selected = PaymentMethod.objects.get(description=method)
                payment_array.append(method_selected)
            company.payment_method.set(payment_array)

            for method in delivery_methods:
                method = method.strip()
                delivery_method_selected = DeliveryMethod.objects.get(
                    description=method)
                delivery_array.append(delivery_method_selected)
            company.delivery_method.set(delivery_array)

            company.save()
        except Exception():
            return Response({"Error Saving This"}, 400)

        return Response(company.pk)