예제 #1
0
 def post(self, request, *args, **kwargs):
     dto = CrearClienteProyectoUsuarioDto(
         NombreCliente=request.data.get('NombreCliente'),
         NombreProyecto=request.data.get('NombreProyecto'),
         NombreUsuario=request.data.get('NombreUsuario'),
         Presupuesto=request.data.get('Presupuesto'))
     nombre_cliente_o_error = NombreCliente.create(dto.NombreCliente)
     nombre_proyecto_o_error = NombreProyecto.create(dto.NombreProyecto)
     nombre_usuario_o_error = NombreUsuario.create(dto.NombreUsuario)
     es_invalido, errores = Result.combine([
         nombre_cliente_o_error, nombre_proyecto_o_error,
         nombre_usuario_o_error
     ])
     if es_invalido:
         raise ValidationError(errores)
     cliente = Cliente(nombre=nombre_cliente_o_error.value)
     cliente = self._repositorio_cliente.create(cliente)
     proyecto = Proyecto(nombre=nombre_proyecto_o_error.value,
                         cliente=cliente,
                         presupuesto=dto.Presupuesto)
     self._repositorio_proyecto.create(proyecto)
     usuario = Usuario(username=nombre_usuario_o_error.value,
                       cliente=cliente,
                       rol=RolUsuario.Owner)
     self._repositorio_usario.create(usuario)
     return Response('OK', status=status.HTTP_201_CREATED)
예제 #2
0
    def post(self, request, *args, **kwargs):
        dto = CrearClienteDto(
            nombre_cliente=request.data.get('nombre_cliente'),
            telefono_tipo=request.data.get('telefono_tipo'),
            telefono_numero=request.data.get('telefono_numero'))
        nombre_cliente_o_error = NombreCliente.create(dto.nombre_cliente)
        numero_telefono_o_error = NumeroTelefono.create(dto.telefono_numero)
        tipo_telefono_o_error = TipoTelefono.create(dto.telefono_tipo)

        es_invalido, errores = Result.combine([
            nombre_cliente_o_error, numero_telefono_o_error,
            tipo_telefono_o_error
        ])
        if es_invalido:
            raise ValidationError(errores)
        cliente = Cliente(nombre=nombre_cliente_o_error.value)
        cliente = self._repositorio_cliente.create(cliente)
        telefono = ClienteTelefono(tipo=tipo_telefono_o_error.value,
                                   numero=numero_telefono_o_error.value,
                                   cliente=cliente)
        self._repositorio_telefono.create(telefono)
        send_rabit('Cliente creado')
        return Response('OK', status=status.HTTP_201_CREATED)
예제 #3
0
 def create(cls, customer_name):
     try:
         return Result.ok(cls(customer_name))
     except Exception as ex:
         return Result.fail({'name': [str(ex)]})
예제 #4
0
 def create(cls, tipo):
     try:
         return Result.ok(cls(tipo))
     except Exception as ex:
         return Result.fail({'telefono_tipo': [str(ex)]})
예제 #5
0
 def create(cls, amount):
     try:
         return Result.ok(cls(amount))
     except Exception as ex:
         return Result.fail({'money_spent':  [str(ex)]})
예제 #6
0
 def create(cls, nombre):
     try:
         return Result.ok(cls(nombre))
     except Exception as ex:
         return Result.fail({'nombre_cliente': [str(ex)]})
예제 #7
0
 def create(cls, nombre):
     try:
         return Result.ok(cls(nombre))
     except Exception as ex:
         return Result.fail({'NombreUsuario': [str(ex)]})
예제 #8
0
 def create(cls, numero):
     try:
         return Result.ok(cls(numero))
     except Exception as ex:
         return Result.fail({'telefono_numero': [str(ex)]})
 def create(cls, date):
     try:
         return Result.ok(cls(date))
     except Exception as ex:
         return Result.fail({'status_expiration_date': [str(ex)]})