def execute(self, input_dto: UpdateVolunteerProfileInputDto) -> None: # TODO: Move this logic to an Imagen repository. avatar_id = None if input_dto.avatar_url: new_avatar = Imagen.objects.filter(url=input_dto.avatar_url) if new_avatar.exists(): avatar_id = new_avatar[0].id else: new_image = Imagen(url=input_dto.avatar_url, isExternal=False) new_image.save() avatar_id = new_image.id # TODO: Move this logic to an User repository. input_user = User.objects.get(pk=input_dto.user_id) input_user.nombre = input_dto.first_name input_user.save() input_profile = VolunteerProfile( input_dto.user_id, avatar_id, input_dto.gender, input_dto.last_name, None if input_dto.birth_date == "" else input_dto.birth_date, input_dto.phone, input_dto.profession, input_dto.experience, input_dto.educational_level, input_dto.availability, None if input_dto.state_id == -1 else input_dto.state_id, input_dto.city, None if input_dto.modality_id == -1 else input_dto.modality_id, [self.interests_repo.get(i) for i in input_dto.interests], [self.skills_repo.get(s) for s in input_dto.skills]) self.profiles_repo.save(input_profile) output_dto = UpdateProfileOutputDto(input_profile) self.presenter.present(output_dto)
def execute(self, input_dto: UpdateOrganizationProfileInputDto) -> None: # TODO: Move this logic to an Imagen repository. avatar_id = None if input_dto.avatar_url: new_avatar = Imagen.objects.filter(url=input_dto.avatar_url) if new_avatar.exists(): avatar_id = new_avatar[0].id else: new_image = Imagen(url=input_dto.avatar_url, isExternal=False) new_image.save() avatar_id = new_image.id location = None if input_dto.ubicacion: location = Ubicacion(**input_dto.ubicacion) location.save() input_profile = OrganizationProfile( input_dto.user_id, avatar_id, input_dto.descripcion, input_dto.cuit, input_dto.telefono, location.id if location else None, [self.rubros_repo.get(i) for i in input_dto.rubros]) self.profiles_repo.save(input_profile) output_dto = UpdateProfileOutputDto(input_profile) self.presenter.present(output_dto)
def update(self, instance, validated_data): avatar_data = None try: avatar_data = validated_data.pop('avatar') except KeyError: avatar_data = None instance.telefono = validated_data.get('telefono', instance.telefono) instance.apellido = validated_data.get('apellido', instance.apellido) instance.dni = validated_data.get('dni', instance.dni) instance.sexo = validated_data.get('sexo', instance.sexo) instance.gustos = validated_data.get('gustos', instance.gustos) instance.habilidades = validated_data.get('habilidades', instance.habilidades) #TODO: Ver si hay que cambiar cuando se haga mejor manejo de imagenes if avatar_data != None: try: nuevaImagen = Imagen.objects.get(url=avatar_data["url"]) instance.avatar = nuevaImagen except Exception: # Imagen.DoesNotExist ## TODO: Sacar isExternal hardcodeado nuevaImagen = Imagen(**avatar_data, isExternal=False) nuevaImagen.save() instance.avatar = nuevaImagen instance.save() return instance
def update(self, instance, validated_data): rubro_data = None avatar_data = None ubicacion_data = None try: rubro_data = validated_data.pop('rubro') except KeyError: # Repito asginar None porque python me hace poner algo en la excepcion rubro_data = None try: avatar_data = validated_data.pop('avatar') except KeyError: avatar_data = None try: ubicacion_data = validated_data.pop('ubicacion') except KeyError: ubicacion_data = None instance.telefono = validated_data.get('telefono', instance.telefono) instance.cuit = validated_data.get('cuit', instance.cuit) instance.descripcion = validated_data.get('descripcion', instance.descripcion) if rubro_data != None: nuevoRubro = RubroOrganizacion.objects.get( nombre=rubro_data["nombre"]) instance.rubro = nuevoRubro if ubicacion_data != None: nuevaUbicacion = Ubicacion(**ubicacion_data) nuevaUbicacion.save() instance.ubicacion = nuevaUbicacion #TODO: Ver si hay que cambiar cuando se haga mejor manejo de imagenes if avatar_data != None: try: nuevaImagen = Imagen.objects.get(url=avatar_data["url"]) instance.avatar = nuevaImagen except Exception: # Imagen.DoesNotExist ## TODO: Sacar isExternal hardcodeado nuevaImagen = Imagen(**avatar_data, isExternal=False) nuevaImagen.save() instance.avatar = nuevaImagen instance.save() return instance