def put(self, request, pk): """DocumentDetailAPIView put Description: update document information """ req_inf = RequestInfo() document_cls = self.get_object(pk) if isinstance(document_cls, Document): serializer = DocumentInfoSerializer(document_cls, data=request.data) if serializer.is_valid(): try: serializer.save() log = Log.objects.create( action=Log.NOTIFICATION_TYPE.get_value( 'update_document'), user=request.user, description='Modificacion de documento {} - {}'.format( serializer.instance.id, serializer.instance.name)) log.save() return req_inf.status_200() except Exception as e: return req_inf.status_400(e.args[0]) return req_inf.status_400(serializer.errors) else: return req_inf.status_404(document_cls)
def delete(self, request, pk=None): """DocumentDetailAPIView delete Description: Delete Documents Args: :param name: (str) the name of the document """ req_inf = RequestInfo() name = request.query_params.get('name', None) if name is not None: try: document = Document.objects.get(slug=name) document.document.delete() last_id = document.id last_name = document.name document.delete() log = Log.objects.create( action=Log.NOTIFICATION_TYPE.get_value('delete_document'), user=request.user, description='Eliminacion de documento {}- {}'.format( las_id, last_name)) log.save() return req_inf.status_200() except Exception as e: return req_inf.status_400(e.args[0]) else: return req_inf.status_400('Nombre de documento requerido')
def post(self, request): """DocumentAPIView post Description: Create Documents Args: :param name: (str) the name of the document :param document: (file) document file :param folder: (id) folder id """ req_inf = RequestInfo() serializer = DocumentInfoSerializer(data=request.data) if serializer.is_valid(): try: serializer.save() log = Log.objects.create( action=Log.NOTIFICATION_TYPE.get_value('create_document'), user=request.user, description='Creacion de Documento {} - {}'.format( serializer.instance.id, serializer.instance.name)) log.save() return req_inf.status_200() except Exception as e: return req_inf.status_400(e.args[0]) else: return req_inf.status_400(serializer.errors)
def delete(self, request, pk=None): """FolderClientAPIView delete Description: delete folder Args: :param name: (str) folder name """ req_inf = RequestInfo() name = request.query_params.get('name', None) if name is not None: try: folder = FolderClient.objects.get(slug=name) documents = Document.objects.filter(folder=folder) last_id = folder.id last_name = folder.name for doc in documents: doc.document.delete() doc.delete() folder.delete() log = Log.objects.create( action=Log.NOTIFICATION_TYPE.get_value('update_client'), user=request.user, description='Modificacion de cliente {} - {}'.format( last_id, last_name)) log.save() return req_inf.status_200() except Exception as e: return req_inf.status_400(e.args[0]) else: return req_inf.status_400('Nombre de folder requerido')
def put(self, request, pk): """UserClientDetailAPIView put Description: update client information """ import pudb pudb.set_trace() req_inf = RequestInfo() user_client = self.get_object(pk) if isinstance(user_client, UserClient): serializer = ClientSerializer(user_client, data=request.data) if serializer.is_valid(): try: serializer.save() log = Log.objects.create( action=Log.NOTIFICATION_TYPE.get_value( 'update_client'), user=request.user, description='Modificacion de cliente {} - {}'.format( serializer.instance.id, serializer.instance.name)) log.save() return req_inf.status_200() except Exception as e: return req_inf.status_400(e.args[0]) return req_inf.status_400(serializer.errors) else: return req_inf.status_404(user_client)
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 put(self, request, pk=None): """FolderClientAPIView put Description: update client information """ req_inf = RequestInfo() folder_client = self.get_object(pk) if isinstance(folder_client, FolderClient): serializer = FolderSerializer(folder_client, data=request.data) if serializer.is_valid(): serializer.save() log = Log.objects.create( action=Log.NOTIFICATION_TYPE.get_value('update_folder'), user=request.user, description='Modificacion de folder {} - {}'.format( serializer.instance.id, serializer.instance.name)) log.save() return req_inf.status_200() return req_inf.status_400(serializer.errors) else: return req_inf.status_404(folder_client)
def post(self, request): """User API POST Args: username: (str) first_name: (str) last_name: (str) email: (str) password: (str) Description: create user view """ data = request.data username = data.get('username') first_name = data.get('first_name', None) last_name = data.get('last_name', None) email = data.get('email') password = data.get('password') req_inf = RequestInfo() user = None try: user = User.objects.get(email=email) except ObjectDoesNotExist as e: pass if user is not None: return req_inf.status_400('email already exists') try: user_cls = Client.create( username, first_name, last_name, email, None, password ) user_cls.save() return req_inf.status_200() 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])
def post(self, request): """UserClientAPIView post Description: Create clients Args: :param name: (str) the name of the client """ req_inf = RequestInfo() serializer = ClientSerializer(data=request.data) if serializer.is_valid(): try: serializer.save() log = Log.objects.create( action=Log.NOTIFICATION_TYPE.get_value('create_client'), user=request.user, description='Creacion de cliente {} - {}'.format( serializer.instance.id, serializer.instance.name)) log.save() return req_inf.status_200() except Exception as e: return req_inf.status(e.args[0]) else: return req_inf.status_400(serializer.errors)