Skip to content

InmobilApp/inmobilapp-api

Repository files navigation

Pages

GitHub: https://github.com/InmobilApp

Deploy: https://inmobil-app.herokuapp.com/

Indice

Routes

Cuando pasa una ruta desconocida para el "Servidor"

response.status(404).send({ error: "unknown endpoint" });

Cuando pasas un "id" no valido va a retornar

response.status(400).send({ error: "malformatted id" });

Cuando ocurre un error al hacer un PUT o POST con el Schema va a retornar un message relacionado con el error.

response.status(400).json({ error: error.message });
const adminSchema = new moongose.Schema({
  name: String,
  dni: {
    type: String,
    unique: true,
  },
  password: {
    type: String,
    required: true,
  },
  address: String,
  phone: String,
  age: {
    type: Number,
    min: 0,
    max: 120,
  },
  permissions: {
    crudAgent: {
      type: Boolean,
      default: true,
    },
    crudAdmin: {
      type: Boolean,
      default: true,
    },
  },
  agentsID: [
    {
      type: moongose.Schema.Types.ObjectId,
      ref: "Agent",
    },
  ],
  role: {
    type: String,
    default: "ADMIN",
  },
});

Ruta: "/api/admins"

Retorna un arreglo con todos los admins guardados en la base de datos.

[
  {
    "permissions": {
      "crudAgent": true,
      "crudAdmin": true
    },
    "name": "David",
    "DNI": "1117598847",
    "address": "...",
    "phone": "322 548 7898",
    "age": 50,
    "agentsID": [],
    "id": "620fb78e52948f937ec1c313"
  }
]

Cuando se hace un POST de un Admin no, se nesecita especificar el Agent que tiene a cargo, este se relaciona cuando se crea un Agent y se le pasa como adminID, el id de este.

{
  "name": "Dairo",
  "dni": "1117531879",
  "address": "Calle 22B",
  "phone": "322 548 7898",
  "password": "password",
  "age": 50
}

Retorna

{
  "name": "Dairo",
  "dni": "1117531879",
  "address": "Calle 22B",
  "phone": "322 548 7898",
  "age": 50,
  "permissions": {
    "crudAgent": true,
    "crudAdmin": true
  },
  "agentsID": [],
  "role": "ADMIN",
  "id": "62185cdd53f1f620d9812fc8"
}

Al hacer un get con "id" a "/api/admins/:id" retorna el admin que coincida con ese ID y adicionalmente trae los detalles de los agentes que tiene a cargo.

{
  "permissions": {
    "crudAgent": true,
    "crudAdmin": true
  },
  "name": "David",
  "DNI": "1117598847",
  "address": "...",
  "phone": "322 548 7898",
  "age": 50,
  "agentsID": [],
  "id": "620fb78e52948f937ec1c313"
}

Borra el admin con el id pasado por parametro de la base de datos.


Ruta: "/api/properties"

const propertySchema = new moongose.Schema({
  typeProperty: {
    type: String,
    enum: {
      values: ["casa", "apartamento", "local", "finca"],
      message: "{VALUE} is not supported",
    },
  },
  date: {
    type: Date,
    default: Date.now,
  },
  location: {
    city: { type: String, required: true },
    neighborhood: { type: String, required: true },
    address: { type: String, required: true },
  },
  images: [String],
  state: {
    type: String,
    enum: {
      values: ["available", "unavailable", "reserved"],
      message: "{VALUE} is not supported",
    },
    default: "available",
  },
  rentalPrice: {
    type: Number,
    min: 100,
    max: 2000,
  },
  reviews: [
    {
      type: Schema.Types.ObjectId,
      ref: "Review",
    },
  ],
  description: {
    type: String,
    minlength: 10,
  },
  details: {
    area: {
      type: Number,
      min: 25,
      max: 300,
    },
    rooms: {
      type: Number,
      min: 1,
      max: 20,
    },
    baths: {
      type: Number,
      min: 1,
      max: 10,
    },
    garage: Boolean,
  },
  agentID: {
    type: Schema.Types.ObjectId,
    ref: "Agent",
  },
});

Retorna un arreglo con todas las propiedades guardadas en la base de datos.

[
  {
    "location": {
      "city": "Bogota",
      "neighborhood": "bosa",
      "address": "Cra 2B"
    },
    "details": {
      "area": 10,
      "rooms": 1,
      "baths": 1,
      "garage": true
    },
    "typeProperty": "casa",
    "images": [
      "https://assets-global.website-files.com/5f4f67c5950db17954dd4f52/5f5b7ee442f1e5b9fee1c117_hacerse-una-casa.jpeg"
    ],
    "state": "available",
    "rentalPrice": 500,
    "reviews": [],
    "description": "Esta es una casa ubicada en Bogota",
    "agentID": "62140409a933fe675f1d0db5",
    "date": "2022-02-24T01:19:07.461Z",
    "id": "6216dd0b1ad5cc90813e26d5"
  },
  {
    "location": {
      "city": "Florencia",
      "neighborhood": "La paz",
      "address": "Calle 22B"
    },
    "details": {
      "area": 500,
      "rooms": 15,
      "baths": 12,
      "garage": true
    },
    "typeProperty": "finca",
    "images": [
      "https://assets-global.website-files.com/5f4f67c5950db17954dd4f52/5f5b7ee442f1e5b9fee1c117_hacerse-una-casa.jpeg"
    ],
    "state": "available",
    "rentalPrice": 2000,
    "reviews": [],
    "description": "Esta es una casa ubicada en Bogota",
    "agentID": "62140409a933fe675f1d0db5",
    "date": "2022-02-24T01:24:31.824Z",
    "id": "6216de4f1ad5cc90813e26d9"
  },
  {
    "location": {
      "city": "Buenos aires",
      "neighborhood": "no se",
      "address": "Calle 22B"
    },
    "details": {
      "area": 100,
      "rooms": 5,
      "baths": 3,
      "garage": false
    },
    "typeProperty": "local",
    "images": [
      "https://assets-global.website-files.com/5f4f67c5950db17954dd4f52/5f5b7ee442f1e5b9fee1c117_hacerse-una-casa.jpeg"
    ],
    "state": "available",
    "rentalPrice": 5000,
    "reviews": [],
    "description": "Esta es una casa ubicada en Bogota",
    "agentID": "62140409a933fe675f1d0db5",
    "date": "2022-02-24T01:25:19.697Z",
    "id": "6216de7f1ad5cc90813e26dd"
  }
]

GET a "/api/properties/?detailsReviews=true" retorna un arreglo con todas las propiedades guardadas en la base de datos y ademas con los detalles de las reviews hechas a esta.

[
  {
    "location": {
      "city": "Florencia",
      "neighborhood": "La paz",
      "address": "Cll 22B etc..."
    },
    "details": {
      "area": "30",
      "rooms": "2",
      "baths": "2",
      "garage": true
    },
    "typeProperty": "local",
    "images": ["url", "url1"],
    "state": "available",
    "rentalPrice": "500",
    "reviews": [
      {
        "user": "Pedro",
        "score": 3,
        "content": "Regular",
        "porpertyID": "62129899cde25ed20f597717",
        "date": "2022-02-20T19:39:01.315Z",
        "id": "621298d5cde25ed20f59771b"
      },
      {
        "user": "Maria",
        "score": 5,
        "content": "Regular",
        "porpertyID": "62129899cde25ed20f597717",
        "date": "2022-02-20T19:39:09.989Z",
        "id": "621298ddcde25ed20f59771f"
      }
    ],
    "description": "Decripcion del inmueble",
    "agentID": "62129850cde25ed20f597711",
    "date": "2022-02-20T19:38:01.097Z",
    "id": "62129899cde25ed20f597717"
  },
  {
    "location": {
      "city": "Bogota",
      "neighborhood": "Suba",
      "address": "Cll 22B etc..."
    },
    "details": {
      "area": "30",
      "rooms": "2",
      "baths": "2",
      "garage": true
    },
    "typeProperty": "casa",
    "images": ["url", "url1"],
    "state": "available",
    "rentalPrice": "500",
    "reviews": [
      {
        "user": "Dairo",
        "score": 5,
        "content": "Buena",
        "porpertyID": "621298fbcde25ed20f597723",
        "date": "2022-02-20T19:40:02.756Z",
        "id": "62129912cde25ed20f597727"
      }
    ],
    "description": "Decripcion del inmueble",
    "agentID": "62129850cde25ed20f597711",
    "date": "2022-02-20T19:39:39.178Z",
    "id": "621298fbcde25ed20f597723"
  }
]

Por medio de "body" recibe un objeto con las propiedades requeridas para crear una propiedad, algunas propiedades se inicializan por defecto, como lo son la fecha, y el estado de la propiedad, entre otras. Para crear la propiedad se nesecita un Agente el cual es el encargado de esta, para ello solo nesecitan pasar el id del agente.

{
  "typeProperty": "casa", //--> 'casa', 'apartamento', 'local', 'finca'
  "location": {
    "city": "Bogota",
    "neighborhood": "bosa",
    "address": "Cra 2B"
  },
  "images": [
    "https://assets-global.website-files.com/5f4f67c5950db17954dd4f52/5f5b7ee442f1e5b9fee1c117_hacerse-una-casa.jpeg"
  ],
  "rentalPrice": 500, //-> min: 100, max: 2000
  "description": "Esta es una casa ubicada en Bogota", //--> min 10 characters
  "details": {
    "area": 10, //--> min: 25, max: 300
    "rooms": 1, //--> min: 1, max: 20
    "baths": 1, //--> min: 1, max: 10
    "garage": true
  },
  "agentID": "62140409a933fe675f1d0db5"
}

Retorna

{
  "typeProperty": "casa",
  "location": {
    "city": "Bogota",
    "neighborhood": "bosa",
    "address": "Cra 2B"
  },
  "images": [
    "https://assets-global.website-files.com/5f4f67c5950db17954dd4f52/5f5b7ee442f1e5b9fee1c117_hacerse-una-casa.jpeg"
  ],
  "state": "available",
  "rentalPrice": 500,
  "reviews": [],
  "description": "Esta es una casa ubicada en Bogota",
  "details": {
    "area": 10,
    "rooms": 1,
    "baths": 1,
    "garage": true
  },
  "agentID": "62140409a933fe675f1d0db5",
  "date": "2022-02-24T01:19:07.461Z",
  "id": "6216dd0b1ad5cc90813e26d5"
}

Al hacer un get con "id" a "/api/properties/:id" retorna la propiedad que coincida con ese ID.

{
  "location": {
    "city": "Florencia",
    "neighborhood": "La paz",
    "address": "Cll 22B etc..."
  },
  "details": {
    "area": "30",
    "rooms": "2",
    "baths": "2",
    "garage": true
  },
  "typeProperty": "local",
  "images": ["url", "url1"],
  "state": "available",
  "rentalPrice": "500",
  "reviews": [],
  "description": "Decripcion del inmueble",
  "agentID": "621271c06ec04903d5c20e0f",
  "date": "2022-02-20T16:53:32.667Z",
  "id": "6212720c6ec04903d5c20e13"
}

Al hacer un get con "id" a "/api/properties/:id/?detailsAgent=true" retorna la propiedad que coincida con ese ID y con los detalles del agente que la creo.

{
  "location": {
    "city": "Florencia",
    "neighborhood": "La paz",
    "address": "Cll 22B etc..."
  },
  "details": {
    "area": "30",
    "rooms": "2",
    "baths": "2",
    "garage": true
  },
  "typeProperty": "local",
  "images": ["url", "url1"],
  "state": "available",
  "rentalPrice": "500",
  "reviews": [],
  "description": "Decripcion del inmueble",
  "agentID": {
    "permissions": {
      "crudProperty": true
    },
    "name": "Dairo",
    "dni": "1117531587",
    "adress": "Springfield",
    "phone": "322 225 4787",
    "age": "30",
    "properties": ["6212720c6ec04903d5c20e13"],
    "id": "621271c06ec04903d5c20e0f"
  },
  "date": "2022-02-20T16:53:32.667Z",
  "id": "6212720c6ec04903d5c20e13"
}

Al hacer un get con "id" a "/api/properties/:id/?detailsReviews=true" retorna la propiedad que coincida con ese ID y con los detalles de las reviews hechas a esta propiedad.

{
  "location": {
    "city": "Florencia",
    "neighborhood": "La paz",
    "address": "Cll 22B etc..."
  },
  "details": {
    "area": "30",
    "rooms": "2",
    "baths": "2",
    "garage": true
  },
  "typeProperty": "local",
  "images": ["url", "url1"],
  "state": "available",
  "rentalPrice": "500",
  "reviews": [
    {
      "user": "Dairo",
      "score": 4,
      "content": "No esta Mal",
      "porpertyID": "6212720c6ec04903d5c20e13",
      "date": "2022-02-20T17:00:28.778Z",
      "id": "621273ac6ec04903d5c20e1c"
    },
    {
      "user": "Pedro",
      "score": 3,
      "content": "Regular",
      "porpertyID": "6212720c6ec04903d5c20e13",
      "date": "2022-02-20T17:01:54.328Z",
      "id": "621274026ec04903d5c20e20"
    }
  ],
  "description": "Decripcion del inmueble",
  "agentID": "621271c06ec04903d5c20e0f",
  "date": "2022-02-20T16:53:32.667Z",
  "id": "6212720c6ec04903d5c20e13"
}

Al hacer un get con "id" a "/api/properties/:id/?detailsReviews=true&detailsAgent=true" retorna la propiedad que coincida con ese ID y con los detalles de las reviews hechas a esta propiedad y ademas los detalles del agente.

{
  "location": {
    "city": "Florencia",
    "neighborhood": "La paz",
    "address": "Cll 22B etc..."
  },
  "details": {
    "area": "30",
    "rooms": "2",
    "baths": "2",
    "garage": true
  },
  "typeProperty": "local",
  "images": ["url", "url1"],
  "state": "available",
  "rentalPrice": "500",
  "reviews": [
    {
      "user": "Dairo",
      "score": 4,
      "content": "No esta Mal",
      "porpertyID": "6212720c6ec04903d5c20e13",
      "date": "2022-02-20T17:00:28.778Z",
      "id": "621273ac6ec04903d5c20e1c"
    },
    {
      "user": "Pedro",
      "score": 3,
      "content": "Regular",
      "porpertyID": "6212720c6ec04903d5c20e13",
      "date": "2022-02-20T17:01:54.328Z",
      "id": "621274026ec04903d5c20e20"
    }
  ],
  "description": "Decripcion del inmueble",
  "agentID": {
    "permissions": {
      "crudProperty": true
    },
    "name": "Dairo",
    "dni": "1117531587",
    "adress": "Springfield",
    "phone": "322 225 4787",
    "age": "30",
    "properties": ["6212720c6ec04903d5c20e13"],
    "id": "621271c06ec04903d5c20e0f"
  },
  "date": "2022-02-20T16:53:32.667Z",
  "id": "6212720c6ec04903d5c20e13"
}

Para hacer un put deverian hacer primero un get al la propiedad que desean modificar con "/api/properties/:id" sin ninguna "query", enviar el objeto completo con las propiedades que cambiaron.

{
  "location": {
    "city": "Florencia",
    "neighborhood": "La paz",
    "address": "Cll 22B etc..."
  },
  "details": {
    "area": "30",
    "rooms": "2",
    "baths": "2",
    "garage": true
  },
  "typeProperty": "local",
  "images": ["url", "url1"],
  "state": "available",
  "rentalPrice": "500",
  "reviews": ["621273ac6ec04903d5c20e1c", "621274026ec04903d5c20e20"],
  "description": "Decripcion del inmueble",
  "agentID": "621271c06ec04903d5c20e0f",
  "date": "2022-02-20T16:53:32.667Z",
  "id": "6212720c6ec04903d5c20e13"
}

Por ejemplo desean cambiar el "rentalPrice", el axios le devolveria ya un objeto de "javascript".

const propertyReturned = {
  ...property,
  rentalPrice: "700",
};

Esto retornaria el siguiente Objeto.

{
  "location": {
    "city": "Florencia",
    "neighborhood": "La paz",
    "address": "Cll 22B etc..."
  },
  "details": {
    "area": "30",
    "rooms": "2",
    "baths": "2",
    "garage": true
  },
  "typeProperty": "local",
  "images": ["url", "url1"],
  "state": "available",
  "rentalPrice": "700",
  "reviews": ["621273ac6ec04903d5c20e1c", "621274026ec04903d5c20e20"],
  "description": "Decripcion del inmueble",
  "agentID": "621271c06ec04903d5c20e0f",
  "date": "2022-02-20T16:53:32.667Z",
  "id": "6212720c6ec04903d5c20e13"
}

Borra la propiedad con el id pasado por parametro de la base de datos y quita la referencia a esta en el agent.


const reviewSchema = new moongose.Schema({
  user: {
    type: String,
  },
  score: {
    type: Number,
    min: 0,
    max: 5,
  },
  content: {
    type: String,
    required: true,
  },
  porpertyID: {
    type: moongose.Schema.Types.ObjectId,
    ref: "Property",
  },
  date: {
    type: Date,
    default: Date.now,
  },
});

Retorna un arreglo con todas las reviews de todas las propiedades.

[
  {
    "user": "Pedro",
    "score": 3,
    "content": "Regular",
    "porpertyID": "62129899cde25ed20f597717",
    "date": "2022-02-20T19:39:01.315Z",
    "id": "621298d5cde25ed20f59771b"
  },
  {
    "user": "Maria",
    "score": 5,
    "content": "Regular",
    "porpertyID": "62129899cde25ed20f597717",
    "date": "2022-02-20T19:39:09.989Z",
    "id": "621298ddcde25ed20f59771f"
  },
  {
    "user": "Dairo",
    "score": 5,
    "content": "Buena",
    "porpertyID": "621298fbcde25ed20f597723",
    "date": "2022-02-20T19:40:02.756Z",
    "id": "62129912cde25ed20f597727"
  }
]

Retorna la review especifica de una propiedad.

{
  "user": "Pedro",
  "score": 3,
  "content": "Regular",
  "porpertyID": "62129899cde25ed20f597717",
  "date": "2022-02-20T19:39:01.315Z",
  "id": "621298d5cde25ed20f59771b"
}

Si le agrega a la ruta la "query", "/api/reviews/:id/?detailsProperty=true" esta devulve la review y la propiedad a la que se le hizo.

{
  "user": "Pedro",
  "score": 3,
  "content": "Regular",
  "porpertyID": {
    "location": {
      "city": "Florencia",
      "neighborhood": "La paz",
      "address": "Cll 22B etc..."
    },
    "details": {
      "area": "30",
      "rooms": "2",
      "baths": "2",
      "garage": true
    },
    "typeProperty": "local",
    "images": ["url", "url1"],
    "state": "available",
    "rentalPrice": "500",
    "reviews": ["621298d5cde25ed20f59771b", "621298ddcde25ed20f59771f"],
    "description": "Decripcion del inmueble",
    "agentID": "62129850cde25ed20f597711",
    "date": "2022-02-20T19:38:01.097Z",
    "id": "62129899cde25ed20f597717"
  },
  "date": "2022-02-20T19:39:01.315Z",
  "id": "621298d5cde25ed20f59771b"
}
{
  "user": "Dairo",
  "content": "Buena",
  "score": 5,
  "porpertyID": "621298fbcde25ed20f597723"
}

"retorna el siguiente Object"

{
  "user": "Dairo",
  "score": 5,
  "content": "Buena",
  "porpertyID": "621298fbcde25ed20f597723",
  "date": "2022-02-20T19:40:02.756Z",
  "id": "62129912cde25ed20f597727"
}

Borra la review a la que hace referencia el id.


const agentSchema = new Schema({
  name: {
    type: String,
    required: true,
  },
  dni: {
    type: String,
    required: true,
    unique: true,
  },
  address: {
    type: String,
    required: true,
  },
  phone: String,
  age: String,
  properties: [
    {
      type: Schema.Types.ObjectID,
      ref: "Property",
    },
  ],
  permissions: {
    crudProperty: Boolean,
  },
  admindID: {
    type: Schema.Types.ObjectID,
    ref: "Admin",
  },
});

Errores

Cuando pasa una ruta desconocida para el "Servidor"

response.status(404).send({ error: "unknown endpoint" });

Cuando pasas un "id" no valido va a retornar

response.status(400).send({ error: "malformatted id" });

Cuando ocurre un error al hacer un PUT o POST con el Schema va a retornar un message relacionado con el error.

response.status(400).json({ error: error.message });

Rutas "api/agents"

GET "api/agents"

Retorna un arreglo con todas los agentes guardados en la base de datos y su relacion con una propiedad

{
  "permissions": {
    "crudProperty": true
  },
  "name": "David",
  "dni": "1012437698",
  "address": "Direccion random en bucaramanga",
  "phone": "98565621",
  "age": "22",
  "properties": [
    "620e82d3a72c0b07f4a80ae3" // --> Relacion
  ],
  "id": "620e808a8034ceb08eb309a8"
}

GET "api/agents/:id"

Retorna un JSON con la informacion completa de un agente guardado en la base de datos y su relacion con una propiedad (Muestra la info completa de esa propiedad)

{
  "permissions": {
    "crudProperty": true
  },
  "name": "David",
  "dni": "1012437698",
  "address": "Direccion random en bucaramanga",
  "phone": "98565621",
  "age": "22",
  "properties": [
    // -----> Info completa de esa propiedad
    {
      "ubication": {
        "city": "Bogota",
        "neighbourhooh": "usme",
        "adress": "Cll 22B etc..."
      },
      "details": {
        "area": "30",
        "rooms": "2",
        "baths": "2",
        "garage": true
      },
      "typeProperty": "casa",
      "images": ["url", "url1"],
      "state": "available",
      "rentalPrice": "500",
      "description": "Decripcion del inmueble",
      "agentID": "620e808a8034ceb08eb309a8",
      "date": "2022-02-17T17:16:03.063Z",
      "reviews": [],
      "id": "620e82d3a72c0b07f4a80ae3"
    }
  ],
  "id": "620e808a8034ceb08eb309a8"
}

POST "api/agents"

Por medio de "body" recibe un objeto con las propiedades requeridas para crear un agente

{
  adminID: "620e806162c266edbeaca6f7",  // ----> Se debe pasar el id del admin (RELACION)
  dni: "1075982698",
  name: "Gabriel",
  address: "Springfield",
  phone: "7591546",
  age: "30",
  permissions: {
    crudProperty: true
  }
}
...
...
"JSON retornado al hacer este post"
{
    "name": "Gabriel",
    "dni": "1075982698",
    "address": "Springfield",
    "phone": "7591546",
    "age": "30",
    "properties": [],
    "permissions": {
        "crudProperty": true
    },
    "id": "620ed23cd2696158e8b89619"
}

PUT "api/agents/620ed23cd2696158e8b89619"

Por medio de "body" recibe un objeto con los datos que se quieren actualizar agente
{
  "name": "David" // Aca solo quiero actualizar el nombre del agente
}

DELETE "api/agents/620e808a8034ceb08eb309a8"

Borra el agente con el id pasado por parametros.


const clientSchema = new Schema({
  name: {
    type: String,
    required: true,
  },
  dni: {
    type: String,
    required: true,
    unique: true,
  },
  password: {
    type: String,
    required: true,
  },
  address: {
    type: String,
    required: true,
  },
  phone: String,
  age: String,
  permissions: {
    crudClient: Boolean,
  },
  payDay: String,
  paymentIssued: [
    {
      date: {
        type: Date,
        default: Date.now,
      },
    },
  ],
  propertyID: {
    type: Schema.Types.ObjectId,
    ref: "Property",
  },
});

Errores

Cuando pasa una ruta desconocida para el "Servidor"

response.status(404).send({ error: "unknown endpoint" });

Cuando pasas un "id" no valido va a retornar

response.status(400).send({ error: "malformatted id" });

Cuando ocurre un error al hacer un PUT o POST con el Schema va a retornar un message relacionado con el error.

response.status(400).json({ error: error.message });

Cuando no se envia el token, para hacer un update o delete de un cliente.

{
    "name": "JsonWebTokenError",
    "message": "jwt must be provided"    <-------------
}

Rutas "api/clients"

GET "api/clients"

Retorna un arreglo con todas los clientes guardados en la base de datos y su relacion con una propiedad (propertyID)

{
        "permissions": {
            "crudClient": true
        },
        "name": "Alexander",
        "dni": "1012312432",
        "adress": "Direccion random en Medellin",
        "phone": "3194785677",
        "age": "29",
        "payDay": "16/02/2022",
        "paymentIssued": [
            {
                "_id": "620ea3ef1e94bd784df9d473",
                "date": "2022-02-17T19:37:19.985Z"
            }
        ],
        "propertyID": "620e82348c77394d2ef5f506", ----> Relacion
        "id": "620ea3ef1e94bd784df9d472"
    }

GET "api/clients/:id"

Retorna un JSON con la informacion completa del cliente en la base de datos y su relacion con una propiedad (Muestra la info completa de esa propiedad)

{
    "permissions": {
        "crudClient": true
    },
    "name": "Alexander",
    "dni": "1012312432",
    "adress": "Direccion random en Medellin",
    "phone": "3194785677",
    "age": "29",
    "payDay": "16/02/2022",
    "paymentIssued": [
        {
            "_id": "620ea3ef1e94bd784df9d473",
            "date": "2022-02-17T19:37:19.985Z"
        }
    ],
    "propertyID": {      ------> Info completa de la relacion
        "ubication": {
            "city": "Bogota",
            "neighbourhooh": "usme",
            "adress": "Cll 22B etc..."
        },
        "details": {
            "area": "30",
            "rooms": "2",
            "baths": "2",
            "garage": true
        },
        "typeProperty": "casa",
        "images": [
            "url",
            "url1"
        ],
        "state": "available",
        "rentalPrice": "500",
        "description": "Decripcion del inmueble",
        "agentID": "620e808a8034ceb08eb309a8",
        "date": "2022-02-17T17:13:24.958Z",
        "reviews": [],
        "id": "620e82348c77394d2ef5f506"
    },
    "id": "620ea3ef1e94bd784df9d472"
}

POST "api/clients"

Por medio de "body" recibe un objeto con las propiedades requeridas para crear un cliente

{
  "name": "Mauricio",
  "dni": "39641178",
  "password": "miClaveSegurita",
  "address": "Direccion random en Colombia",
  "phone": "3194785623",
  "age": "28"
}
...
...
"JSON retornado al hacer este post"
{
    "name": "Mauricio",
    "dni": "39641178",
    "address": "Direccion random en Colombia",
    "phone": "3194785623",
    "age": "28",
    "paymentIssued": [],
    "id": "621028e3a791a20727b27883"
}

PUT "api/clients/621028e3a791a20727b27883"

Por medio de "body" recibe un objeto con los datos que se quieren actualizar del cliente. Sin el token, no se puede actualizar la info del cliente.

{
   "propertyID": "620e811562c266edbeaca6fd",  --------> Si quiero hacer una relacion (Si quiero asignarle una propiedad al cliente). No es obligatorio enviarla
  "address": "Direccion random en Bogota",
  "phone": "3194785677",
  "age": "30",
  "payDay": "17"
}
...
...
"JSON retornado al hacer el PUT"
{
    "name": "Mauricio",
    "dni": "39641178",
    "address": "Direccion random en Bogota",
    "phone": "3194785677",
    "age": "30",
    "paymentIssued": [],
    "payDay": "17",
    "propertyID": "620e811562c266edbeaca6fd",                 ---------> Relacion hecha
    "id": "621028e3a791a20727b27883"
}

DELETE "api/clients/620fbfb5110661bb445f1a0b"

Borra el cliente con el id pasado por parametros. Sin el token, no se puede eliminar un cliente.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors