def get(self, request): """Address API GET Description: return all directions associated to user """ user = get_jwt_user(request) req_inf = RequestInfo() try: if user is not None: try: serializer = AddressSerializer( client.addresses.all(), many=True ) return Response(serializer.data) except ObjectDoesNotExist as e: return req_inf.status_404(e.args[0]) except Exception as e: return req_inf.status_400(e.args[0]) else: return req_inf.status_401('token invalido') except ObjectDoesNotExist as e: return req_inf.status_404(e.args[0]) except Exception as e: return req_inf.status_400(e.args[0])
def get(self, request): """User API GET Description: returns user info """ user = get_jwt_user(request) req_inf = RequestInfo() if user is not None: try: serializer = ClientSerializer(user.client) return Response(serializer.data) except ObjectDoesNotExist as e: return req_inf.status_404(e.args[0]) except Exception as e: return req_inf.status_400(e.args[0]) else: return req_inf.status_401('token invalido')
def patch(self, request): """Address API PATCH Args: country: (str) region: (str) town: (str) neighborhood: (str) zip_code: (str) street: (str) street_number: (str) suite_number: (str) address_id: (int) Description: update directions """ user = get_jwt_user(request) data = request.data req_inf = RequestInfo() try: if user is not None: client = Client.objects.get(user=user) address = Address.objects.get(id=data.get('address_id')) if 'country' in data: address.country = data.get('country') if 'region' in data: address.region = data.get('region') if 'town' in data: address.town = data.get('town') if 'neighborhood' in data: address.neighborhood = data.get('neighborhood') if 'zip_code' in data: address.zip_code = data.get('zip_code') if 'street' in data: address.street = data.get('street') if 'street_number' in data: address.street_number = data.get('street_number') if 'suite_number' in data: address.suite_number = data.get('suite_number') address.save() return req_inf.status_200('address updated') else: return req_inf.status_401('token invalido') except ObjectDoesNotExist as e: return req_inf.status_404(e.args[0]) except Exception as e: return req_inf.status_400(e.args[0])
def patch(self, request): """User API PATCH Args: username: (str) first_name: (str) last_name: (str) email: (str) password: (str) phone: (str) Description: update user info view """ user = get_jwt_user(request) data = request.data req_inf = RequestInfo() try: if user is not None: user_cls = Client.objects.get(user=user) if 'username' in data: if self.validate_data(data.get('username'), user.username): user.username = data.get('username') if 'email' in data: if self.validate_data(data.get('email'), user_cls.user.email): user.email = data.get('email') if 'password' in data: user.set_password(data.get('password')) if 'phone' in data: user_cls.phone = data.get('phone') if 'first_name' in data: user.first_name = data.get('first_name') if 'last_name' in data: user.last_name = data.get('last_name') user.save() user_cls.save() data_err = { 'status': status.HTTP_200_OK, 'token': generate_jwt(user, request), 'detail': 'user updated' } return req_inf.return_status(data_err) else: return req_inf.status_401('token invalido') except ObjectDoesNotExist as e: return req_inf.status_404(e.args[0]) except Exception as e: return req_inf.status_400(e.args[0])
def delete(self, request): """Address API PATCH Args: address_id: (int) Description: delete directions """ user = get_jwt_user(request) data = request.data req_inf = RequestInfo() try: if user is not None: client = Client.objects.get(user=user) address = Address.objects.get(id=data.get('address_id')) address.delete() return req_inf.status_200('address deleted') else: return req_inf.status_401('token invalido') except ObjectDoesNotExist as e: return req_inf.status_404(e.args[0]) except Exception as e: return req_inf.status_400(e.args[0])
def post(self, request): """Address API GET Args: country: (str) region: (str) town: (str) neighborhood: (str) zip_code: (str) street: (str) street_number: (str) suite_number: (str) Description: create directions """ user = get_jwt_user(request) data = request.data req_inf = RequestInfo() try: if user is not None: client = Client.objects.get(user=user) address = Address.create( data.get('country'), data.get('region'), data.get('town'), data.get('neighborhood'), data.get('zip_code'), data.get('street'), data.get('street_number'), data.get('suite_number') ) client.addresses.add(address) client.save() return req_inf.status_200('address created') else: return req_inf.status_401('token invalido') except ObjectDoesNotExist as e: return req_inf.status_404(e.args[0]) except Exception as e: return req_inf.status_400(e.args[0])