Ejemplo n.º 1
0
    def post(self, request):
        try:
            token = jwt.decode(request.headers['x-auth-token'],
                               'secret',
                               algorithms=['HS256'])
        except Exception as e:
            return returnResponse(request, str(e), False, 500)

        customer = Customer.objects.filter(phone=token['phone']).first()
        if customer:
            if customer.idmercadopago != None:
                token = request.POST.get('token', '')

                url = "https://api.mercadopago.com/v1/customers/" + customer.idmercadopago + "/cards?access_token=" + settings.MP_ACCESS_TOKEN

                payload = {'token': token}
                headers = {'Content-Type': 'application/json'}

                response = requests.request("GET",
                                            url,
                                            headers=headers,
                                            data=json.dumps(payload))

                if response.status_code == 200:
                    return returnResponse(request, json.loads(response.text),
                                          True, 200)
                else:
                    return returnResponse(request, json.loads(response.text),
                                          False, response.status_code)
            else:
                return returnResponse(request,
                                      'Customer idmercadopago is none', False,
                                      200)
        else:
            return returnResponse(request, 'Customer not found', False, 200)
Ejemplo n.º 2
0
	def post(self,request):
		try:
			phone = request.data['phone']
			customer = Customer.objects.filter(phone=phone).first()
			if customer:

				code = str(random.randrange(9)) + str(random.randrange(9)) + str(random.randrange(9)) + str(random.randrange(9)) + str(random.randrange(9)) + str(random.randrange(9))
				data = {"customer": customer.id, "code": code}
				serializer = CustomerCodeSerializer(data=data)

				if (serializer.is_valid()):
					serializer.save()
					client = Client(settings.TWILIO_SID, settings.TWILIO_TOKEN)

					message = client.messages.create(
						body = "Tu codigo es " + str(code),
						from_ = '+12029722825',
						to = "+549" + str(phone)
					)

					return returnResponse( request, 'True' , True , 200 )
				else:
					return returnResponse( request, serializer.errors , False , 404 )
			else:
				return returnResponse( request, 'Customer not found' , False , 404 )
		except Exception as e:
			return returnResponse( request, str(e) , False , 500)
Ejemplo n.º 3
0
    def get(self, request, slug):
        if jwt_token(request):
            queryset = Organization.objects.filter(slug=slug, status_id=1)
            serializer = OrganizationSerializer(queryset, many=True)
            return returnResponse(request, serializer.data, True, 200)
        else:
            return returnResponse(request, 'Customer not found', False, 200)

        return returnResponse(request, 'Server error', False, 500)
Ejemplo n.º 4
0
    def post(self, request):
        try:
            token = jwt.decode(request.headers['x-auth-token'],
                               'secret',
                               algorithms=['HS256'])
        except Exception as e:
            return returnResponse(request, str(e), False, 500)

        customer = Customer.objects.filter(phone=token['phone']).first()
        if customer:
            if customer.idmercadopago == None:
                url = "https://api.mercadopago.com/v1/customers?access_token=" + settings.MP_ACCESS_TOKEN
                documentType = DocumentType.objects.filter(
                    id=customer.documentType_id).first()

                payload = {
                    "email": customer.email,
                    "first_name": customer.name,
                    "last_name": customer.lastname,
                    "identification": {
                        "type":
                        documentType.key if documentType != None else None,
                        "number": customer.documentNumber
                    }
                }
                headers = {'Content-Type': 'application/json'}

                response = requests.request("POST",
                                            url,
                                            headers=headers,
                                            data=json.dumps(payload))
                if response.status_code == 200:

                    mp_id = json.loads(response.text).get("id")

                    customer.idmercadopago = mp_id
                    customer.save()

                    return returnResponse(request, json.loads(response.text),
                                          True, 200)
                else:
                    return returnResponse(
                        request,
                        json.loads(
                            response.text).get('cause')[0].get('description'),
                        False, response.status_code)
            else:
                return returnResponse(
                    request, 'Customer is already register in mercadopago',
                    False, 200)
        else:
            return returnResponse(request, 'Customer not found', False, 200)
Ejemplo n.º 5
0
    def post(self, request):
        try:
            token = jwt.decode(request.headers['x-auth-token'],
                               'secret',
                               algorithms=['HS256'])
        except Exception as e:
            return returnResponse(request, str(e), False, 500)

        customer = Customer.objects.filter(phone=token['phone']).first()
        if customer:
            if customer.email != None:
                url = "https://api.mercadopago.com/v1/customers/search?access_token=" + settings.MP_ACCESS_TOKEN

                payload = {'email': customer.email}
                headers = {
                    'accept': 'application/json',
                    'Content-Type': 'application/x-www-form-urlencoded'
                }

                response = requests.request("GET",
                                            url,
                                            headers=headers,
                                            data=payload)

                if response.status_code == 200:

                    result = json.loads(response.text).get('results')[0]
                    dataResponse = {
                        'email': result.get('email'),
                        'first_name': result.get('first_name'),
                        'last_name': result.get('last_name'),
                        'id': result.get('id'),
                        'identification': result.get('identification')
                    }

                    return returnResponse(request, dataResponse, True, 200)

                else:
                    return returnResponse(
                        request,
                        json.loads(
                            response.text).get('cause')[0].get('description'),
                        False, response.status_code)

            else:
                return returnResponse(request, 'Customer email is none', False,
                                      200)
        else:
            return returnResponse(request, 'Customer not found', False, 200)
Ejemplo n.º 6
0
    def get(self, request):
        if jwt_token(request):

            storeid = request.data['store']
            store = Store.objects.filter(guid=storeid).first()
            if store == None:
                return returnResponse(request, 'Store not found', False, 200)

            queryset = Item.objects.filter(store=store.id, status_id=1)
            serializer = ItemSerializer(queryset, many=True)
            return returnResponse(request, serializer.data, True, 200)
        else:
            return returnResponse(request, 'Customer not found', False, 200)

        return returnResponse(request, 'Server error', False, 500)
Ejemplo n.º 7
0
	def list(self, request):
		try:
			token = jwt.decode(request.headers['x-auth-token'], 'secret', algorithms=['HS256'])
		except Exception as e:
			return returnResponse( request, str(e) , False , 500)

		customer = Customer.objects.filter(phone=token['phone']).first()

		if customer:
			queryset = Task.objects.filter(customer_id = customer.id)
			serializer = TaskSerializer(queryset, many=True)
			return returnResponse( request, serializer.data , True , 200 )
		else:
			return returnResponse( request, 'Customer not found' , False , 404 )

		return returnResponse( request, 'Server error' , False , 500 )
Ejemplo n.º 8
0
    def get(self, request):

        if jwt_token(request):

            orgid = request.data['org']
            org = Organization.objects.filter(guid=orgid).first()
            if org == None:
                return returnResponse(request, 'Organization not found', False,
                                      200)
            else:
                queryset = Store.objects.filter(organization=org.id,
                                                status_id=1)
                serializer = StoreSerializer(queryset, many=True)

            return returnResponse(request, serializer.data, True, 200)
        else:
            return returnResponse(request, 'Customer not found', False, 200)

        return returnResponse(request, 'Server error', False, 500)
Ejemplo n.º 9
0
	def post(self,request):
		try:
			phone = request.data['phone']
			code = request.data['code']
			customer = Customer.objects.filter(phone=phone).first()
			if customer:
				if code == 999999:
					encoded_jwt = jwt.encode({'phone': phone,}, 'secret', algorithm='HS256')
					return returnResponse( request, {'token':encoded_jwt,'phone':phone} , True , 200 )
				else:
					customercode = CustomerCodeModel.objects.filter(code=code,customer=customer.id).last()
					if customercode:
						encoded_jwt = jwt.encode({'phone': phone,}, 'secret', algorithm='HS256')
						return returnResponse( request, {'token':encoded_jwt,'phone':phone} , True , 200 )
					else:
						return returnResponse( request, 'Code does not match' , False , 201 )
			else:
				return returnResponse( request, 'Customer not found' , False , 404 )
		except Exception as e:
			return returnResponse( request, str(e) , False , 500)
Ejemplo n.º 10
0
	def post(self,request):
		try:
			token = jwt.decode(request.headers['x-auth-token'], 'secret', algorithms=['HS256'])
		except Exception as e:
			return returnResponse( request, str(e) , False , 500)

		customer = Customer.objects.filter(phone=token['phone']).first()

		if customer:
			request_data = request.data
			if 'guid' in request_data:
				task = Task.objects.filter(customer_id = customer.id, guid = request_data['guid']).first()
				try:
					task.delete()

					response = {
						'success': True
					}

					return returnResponse( request, response , True , 200 )
				except Exception as e:
					return returnResponse( request, str(e) , False , 500)
			else:
				return returnResponse( request, 'Invalid request' , False , 404 )
		else:
			return returnResponse( request, 'Customer not found' , False , 404 )

		return returnResponse( request, 'Server error' , False , 500 )
Ejemplo n.º 11
0
	def create(self, request):
		#raise Exception('create')
		try:
			token = jwt.decode(request.headers['x-auth-token'], 'secret', algorithms=['HS256'])
		except Exception as e:
			return returnResponse( request, str(e) , False , 500 )

		customer = Customer.objects.filter(phone=token['phone']).first()
		if customer:
			if request.data:
				data = {
					"customer": customer.id,
					"status": 1,
					"title": request.data['title'],
					"body": request.data['body'],
					"color": request.data['color'],
					"pinned": request.data['pinned'],
					"created": timezone.now(),
					"updated": timezone.now()
				}
				serializer = TaskSerializer(data=data)

				if (serializer.is_valid()):
					serializer.save()
					return returnResponse( request, 'True' , True , 200 )
				else:
					return returnResponse( request, serializer.errors , False , 404 )
			else:
				return returnResponse( request, 'Post data null' , False , 400 )
		else:
			return returnResponse( request, 'Customer not found' , False , 200 )

		return returnResponse( request, 'Server error' , False , 500 )
Ejemplo n.º 12
0
    def post(self, request):
        try:
            token = jwt.decode(request.headers['x-auth-token'],
                               'secret',
                               algorithms=['HS256'])
        except Exception as e:
            return returnResponse(request, str(e), False, 500)

        customer = Customer.objects.filter(phone=token['phone']).first()
        if customer:
            if customer.email != None:
                url = "https://api.mercadopago.com/v1/payments?access_token=" + settings.MP_ACCESS_TOKEN

                token = request.POST.get('token', '')
                idorder = request.POST.get('idorder', '')

                order = Order.objects.filter(id=idorder).first()
                if order == None:
                    return returnResponse(request, 'Order not found', False,
                                          404)

                documentType = DocumentType.objects.filter(
                    id=customer.documentType_id).first()

                payload = {
                    "token": token,
                    "installments": 1,
                    "transaction_amount": order.amount,
                    "description": "Django api",
                    "payer": {
                        "email": customer.email,
                        "identification": {
                            "number":
                            customer.documentNumber,
                            "type":
                            documentType.key if documentType != None else None,
                        }
                    },
                    "binary_mode": True,
                    "external_reference": "DJANGO",
                    "statement_descriptor": "Django"
                }
                headers = {'Content-Type': 'application/json'}

                response = requests.request("POST",
                                            url,
                                            headers=headers,
                                            data=json.dumps(payload))

                if response.status_code == 200:
                    return returnResponse(request, json.loads(response.text),
                                          True, 200)
                else:
                    return returnResponse(request, json.loads(response.text),
                                          False, response.status_code)
            else:
                return returnResponse(request, 'Customer email is none', False,
                                      200)
        else:
            return returnResponse(request, 'Customer not found', False, 200)
Ejemplo n.º 13
0
    def post(self, request):
        try:
            token = jwt.decode(request.headers['x-auth-token'],
                               'secret',
                               algorithms=['HS256'])
        except Exception as e:
            return returnResponse(request, str(e), False, 500)

        customer = Customer.objects.filter(phone=token['phone']).first()

        if customer:
            try:
                request_data = request.data
                if 'name' in request_data:
                    customer.name = request_data['name']
                if 'lastname' in request_data:
                    customer.lastname = request_data['lastname']
                if 'email' in request_data:
                    customer.email = request_data['email']
                if 'birthday' in request_data:
                    customer.birthday = request_data['birthday']

                customer.save()

                response = {
                    'name': customer.name,
                    'lastname': customer.lastname,
                    'email': customer.email,
                    'birthday': customer.birthday,
                }

                return returnResponse(request, response, True, 200)
            except Exception as e:
                return returnResponse(request, str(e), False, 500)

        else:
            return returnResponse(request, 'Customer not found', False, 404)

        return returnResponse(request, 'Server error', False, 500)
Ejemplo n.º 14
0
	def post(self,request):
		try:
			token = jwt.decode(request.headers['x-auth-token'], 'secret', algorithms=['HS256'])
		except Exception as e:
			return returnResponse( request, str(e) , False , 500)

		customer = Customer.objects.filter(phone=token['phone']).first()

		if customer:
			request_data = request.data
			if 'guid' in request_data:
				task = Task.objects.filter(customer_id = customer.id, guid = request_data['guid']).first()
				try:
					if 'title' in request_data:
						task.title = request_data['title']
					if 'body' in request_data:
						task.body = request_data['body']
					if 'color' in request_data:
						task.color = request_data['color']
					if 'pinned' in request_data:
						task.pinned = request_data['pinned']
					if 'status' in request_data:
						task.status = request_data['status']

					task.updated = timezone.now()

					task.save()

					response = {
						'title': task.title,
						'body': task.body,
						'color': task.color,
						'pinned': task.pinned,
						'guid': task.guid,
						'updated': task.updated,
					}

					return returnResponse( request, response , True , 200 )
				except Exception as e:
					return returnResponse( request, str(e) , False , 500)
			else:
				return returnResponse( request, 'Invalid request' , False , 404 )
		else:
			return returnResponse( request, 'Customer not found' , False , 404 )

		return returnResponse( request, 'Server error' , False , 500 )
Ejemplo n.º 15
0
	def create(self, request, *args, **kwargs):
		try:
			response = super().create(request, *args, **kwargs)
			return returnResponse( request, response.data , True , 200 )
		except Exception as e:
			return returnResponse( request, str(e) , False , 500)
Ejemplo n.º 16
0
    def post(self, request):
        try:
            token = jwt.decode(request.headers['x-auth-token'],
                               'secret',
                               algorithms=['HS256'])
        except Exception as e:
            return returnResponse(request, str(e), False, 500)

        customer = Customer.objects.filter(phone=token['phone']).first()

        if customer:
            if request.data:
                code = str(random.randrange(9)) + str(
                    random.randrange(9)) + str(random.randrange(9)) + str(
                        random.randrange(9)) + str(random.randrange(9))
                code_final = 'R' + code
                order = Order.objects.create(customer_id=customer.id,
                                             code=code)
                if order:
                    price_item_total = 0
                    data = request.data['Items']
                    for items in data:

                        store = Store.objects.filter(
                            guid=items['StoreId']).first()
                        if store == None:
                            return returnResponse(request, 'Store not found',
                                                  False, 200)

                        single_item = Item.objects.filter(
                            guid=items['ItemId'], store=store.id).first()

                        if not single_item:
                            return returnResponse(request, 'Item not found',
                                                  False, 200)
                        else:
                            quantity = items['Quantity']
                            price_item_total += int(
                                single_item.price) * int(quantity)

                            order_item = OrderItem.objects.create(
                                customer_id=customer.id,
                                price=single_item.price,
                                quantity=quantity,
                                item_id=single_item.id,
                                status_id=1,
                                order_id=order.id)

                            if (order_item):
                                order_item_log = OrderItemLog.objects.create(
                                    orderitem_id=order_item.id,
                                    status_id=order_item.status.id)

                    order.amount = price_item_total
                    order.save()
                    return returnResponse(request, order.code, True, 200)
            else:
                return returnResponse(request, 'Post data null', False, 400)
        else:
            return returnResponse(request, 'Customer not found', False, 200)

        return returnResponse(request, 'Server error', False, 500)