Coder Social home page Coder Social logo

back-api-cars's Introduction

Nest Logo

A progressive Node.js framework for building efficient and scalable server-side applications.

NPM Version Package License NPM Downloads CircleCI Coverage Discord Backers on Open Collective Sponsors on Open Collective Support us

Cars Back Api

Estas son las instrucciones de la aplicación Online (Cars Back Api)


Contenidos

Puede hacer click sobre los contenidos para hacer una búsqueda más rápida


Descripción

Este es el back Cars api, es una aplicación en la cual se pueden cargar autos simulando la carga, la edición y la eliminación de autos como así también el registrarse en la misma aplicación, El loguearse le va a permitir cargar editar los productos, que en esta aplicación en particular son autos

Tecnologias Utilizadas

  • Node.js
  • Typescript
  • MongoDB

Volver al inicio


Como Usarla

Instalación

Abrir un terminal y ejecutar el comando docker-compose up de esa manera se va a correr el contenedor de docker, que tiene alojada la DB de Mongo. Además de toda la aplicación del back-end. De esa forma se instalarán todas la dependencia automáticamente gracias al Dockerfile. El puerto por defecto de la aplicación es el 4000

Base de datos

Como ya se dijo anteriormente, la base de datos es Mongo DB. La misma consta de varias colecciones, entre ellas Users y Cars.

Token

Todas las rutas a excepción de las de del tipo get o create user y login llevan el token en las cabeceras, para que estas puedan funcionar de manera correcta. Si lo hace desde postman tiene que ingresar los datos de la siguiente forma, donde la key es token y el valor tiene que ser su token KEY:token VALUE: su token

End points

Cars

FIND ALL CARS

http://localhost:4000/cars/findAll?offset=0&limit=2 GET: Esta ruta muestra todos los autos que se encuentran en la base de datos, además puede ordenar por precio, también puede ponerle un límite de la cantidad de autos que desea, como así también cuantos desea saltar

//Ejemplo
[
  {
    ' _id ': '62c61e494c3e1ced7a851c8a',
    ' name ': 'ferrari',
    ' price ': 2502448,
    ' description ':
      'Este es un auto deportivo de primera linea no dude en consultar con nuestros asesores',
    ' images ': [
      {
        '  name ': 'auto1.jpg',
        ' _id ': '62c61e494c3e1ced7a851c8b',
      },
    ],
    'createdAt ': '2022-07-06T23:44:09.993Z',
    ' __v': 0,
  },
  {
    ' _id ': '62c61e4a4c3e1ced7a851cbe',
    ' name ': 'ferrari',
    ' price ': 2636816,
    ' description ':
      'Este es un auto deportivo de primera linea no dude en consultar con nuestros asesores',
    ' images ': [
      {
        ' name': 'auto2.jpg',
        ' _id ': '62c61e4a4c3e1ced7a851cbf',
      },
    ],
    ' createdAt ': '2022-07-06T23:44:10.021Z',
    ' __v ': 0,
  },
];

FIND ALL CARS FOR NAME

http://localhost:4000/cars/findAll/name?offset=0&limit=2&sort=-1&name=Ferrari GET: Esta ruta muestra todos los autos que se encuentran en la base de datos segun la busqueda provista, además puede ordenar por precio, también puede ponerle un límite de la cantidad de autos que desea, como así también cuantos desea saltar

//Ejemplo
 [
  {
   " _id: '62c61e494c3e1ced7a851c8a',
    "name": 'ferrari',
    "price": 2502448,
    "description":
      'Este es un auto deportivo de primera linea no dude en consultar con nuestros asesores',
    "images": [
      {
        "name": 'auto1.jpg',
        "_id": '62c61e494c3e1ced7a851c8b',
      },
    ],
    "createdAt": '2022-07-06T23:44:09.993Z',
   " __v": 0,
  },
  {
    "_id": '62c61e4a4c3e1ced7a851cbe',
    "name": 'ferrari',
    "price": 2636816,
    "description":
      'Este es un auto deportivo de primera linea no dude en consultar con nuestros asesores',
    "images": [
      {
       " name": 'auto2.jpg',
        "_id": '62c61e4a4c3e1ced7a851cbf',
      },
    ],
    "createdAt": '2022-07-06T23:44:10.021Z',
    "__v": 0,
  },
];

FIND ONE FOR ID

http://localhost:4000/cars/findOneForId/Id GET: Esta ruta muestra un auto según su id

//Ejemplo
  {
    "_id": '62c61e494c3e1ced7a851c8a',
    "name": 'ferrari',
    "price": 2502448,
    "description":
      'Este es un auto deportivo de primera linea no dude en consultar con nuestros asesores',
    "images": [
      {
       " name": 'auto1.jpg',
        "_id": '62c61e494c3e1ced7a851c8b',
      },
    ],
   " createdAt": '2022-07-06T23:44:09.993Z',
    "__v": 0,
  }

IMAGE VIEW

http://localhost:4000/cars/uploads/auto.jpg GET: Esta ruta muestra una imagen en base al nombre con el que se guardó la misma, por defecto las imágenes las trae de la carpeta Uploads

DELETE ONE CAR FOR ID

http://localhost:4000/cars/deleteOneForId/Id DELETE:Esta ruta borra un auto por el, id luego como respuesta devuelve el auto que se borró

//Ejemplo de respuesta
{
    "_id": "62c61e494c3e1ced7a851c7a",
    "name": "pagany",
    "price": 9979913,
    "description": "Este es un auto deportivo de primera linea no dude en consultar con nuestros asesores",
    "images": [
        {
            "name": "auto1.jpg",
            "_id": "62c61e494c3e1ced7a851c7b"
        }
    ],
    "createdAt": "2022-07-06T23:44:09.978Z",
    "__v": 0
}

UPDATE ONE CAR FOR ID

http://localhost:4000/cars/updateOneForId/id PUT:Esta ruta actualiza un auto por el, id, luego como respuesta devuelve el auto que se actualizó, se debe enviar un body de lo que se quiere actualizar

//Ejemplo de body
  {
    "name": "Audi TT",
    "price": 123800,
    "description": "Consumo de combustible combinado¹: 7,0–6,0 l / 100 km\nEmisiones de CO₂ combinadas¹: 161-137 g / km\n\nDos décadas después de su debut, el Audi TT Coupé sigue cautivando por su característico vocabulario de diseño, su gran placer de conducción y su amplia gama de equipamiento de serie.",
    "images": [
        {
            "name": "e2d9fb9b-a1a4-4e09-9ffc-9d9c1baff3dd.jpg"
        },
        {
            "name": "e2d9fb9b-a1a4-4e09-9ffc-9d9c1baff3dd.jpg"
        },
        {
            "name": "e2d9fb9b-a1a4-4e09-9ffc-9d9c1baff3dd.jpg"
        }
    ]
}

CREATE CAR

http://localhost:4000/cars/createCar POST: Esta ruta crea uno o varios autos, según el usuario lo prefiera debe tener las imágenes previamente guardadas en la carpeta uploads, o usar el método para guardar las mismas

//Ejemplo body
[
  {
    ' price ': 2502448,
    ' name ': 'ferrari',
    ' description ':
      'Este es un auto deportivo de primera linea no dude en consultar con nuestros asesores',
    ' images ': [
      {
        '  name ': 'auto1.jpg',
      },
    ],
  },
  {
    ' name ': 'ferrari',
    ' price ': 2636816,
    '  description ':
      'Este es un auto deportivo de primera linea no dude en consultar con nuestros asesores',
    ' images ': [
      {
        ' name': 'auto2.jpg',
      },
    ],
  },
];

UPLOAD MULTIPLE PHOTO

http://localhost:4000/cars/files POST:Esta ruta sirve para subir muchas fotos en la carpeta Uploads, internamente utiliza la librería multer para facilitar esta tarea, si quiere probar esta ruta individualmente con postman, el body tiene que ser del tipo from data el key tiene que ser files y cargar la imagen que desea claro esta si quiere hacerlo únicamente desde el back

Users

Las funciones de borrado de usuarios y edición se les puede dar uso solamente desde el back-end, como así también la búsqueda de usuarios, a las claves de los usuarios se les aplicó un hash, para mayor seguridad .

FIND ALL USERS

http://localhost:4000/users/findAll?limit=0&offset=0 GET: Esta ruta busca todos los usuarios en la base de datos, tambien puede traer un solo usuario o saltar usuarios.

[
  {
    '_id ': '62c61e9e4c3e1ced7a851d09',
    'username ': 'Matuzay32',
    'email ': '[email protected]',
    'password ': '$2b$10$ZHTdRrGc6Lc/iHN9j6A/AuzxNBvNwB6uxMHI9cr24wQxycSMt5K0O',
    '__v ': 0,
  },
  {
    '_id ': '62c625284c3e1ced7a851d52',
    'username ': 'Matuzay323',
    'email ': '[email protected]',
    'password ': '$2b$10$85piqdW5SepqIbZoOLnfb.pRmx/lFP10rLHuy7jDEx4bdcT43ZCye',
    '__v ': 0,
  },
];

FIND ALL USERS FOR EMAIL OR USERNAME

http://localhost:4000/users/findAll/[email protected]&limit=0&offset=0 GET: Esta ruta busca todos los usuarios en la base de datos, tanto por nombre como por email, si quiere un usuario en especifico conviene hacer una búsqueda por mail

[
  {
    '_id ': '62c61e9e4c3e1ced7a851d09',
    'username ': 'Matuzay32',
    'email ': '[email protected]',
    'password ': '$2b$10$ZHTdRrGc6Lc/iHN9j6A/AuzxNBvNwB6uxMHI9cr24wQxycSMt5K0O',
    '__v ': 0,
  },
];

FIND ONE USER FOR ID

http://localhost:4000/users/findOneForId/ID GET: Esta ruta busca un usuario en especifico por ID

  {
    '_id ': '62c61e9e4c3e1ced7a851d09',
    'username ': 'Matuzay32',
    'email ': '[email protected]',
    'password ': '$2b$10$ZHTdRrGc6Lc/iHN9j6A/AuzxNBvNwB6uxMHI9cr24wQxycSMt5K0O',
    '__v ': 0,
  },

DELETE ONE USER FOR ID

http://localhost:4000/users/deleteOneForId/ID DELETE: Esta ruta borra un usuario en especifico por ID

devuelve el usuario borrado

  {
    '_id ': '62c61e9e4c3e1ced7a851d09',
    'username ': 'Matuzay32',
    'email ': '[email protected]',
    'password ': '$2b$10$ZHTdRrGc6Lc/iHN9j6A/AuzxNBvNwB6uxMHI9cr24wQxycSMt5K0O',
    '__v ': 0,
  },

UPDATE ONE USER FOR ID

http://localhost:4000/users/updateOneForId/ID PUT: Esta ruta actualiza un usuario en especifico por ID

body del usuario a actualizar

  {
    'username ': 'userActualizado',
    "password": "passActualizada",
    'email ': '[email protected]',
  },

CREATE USER

http://localhost:4000/users/createUser POST: Esta ruta crea un usuario en especifico

body del usuario a actualizar

     {
        "username": "eze12345",
        "password": "Matuzay32",
        "email": "[email protected]"

    }

LOGIN USER

http://localhost:4000/users/login POST: Esta ruta sirve para loguear un usuario en específico

Respuesta un token este token es el que se tiene que usar en la cabecera

     {
    "message": "You are now authenticated",
    "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VybmFtZSI6Ik1hdHV6YXkzMiIsImVtYWlsIjoiZXplQGdtYWlsLmNvbSIsIl9pZCI6IjYyYzYxZTllNGMzZTFjZWQ3YTg1MWQwOSIsImlhdCI6MTY1NzQ5MTEyNCwiZXhwIjoxNjU3NDk0NzI0fQ.GjJlM9bwKLjQVRhYJoWSQ4Bg4M6S8gcIjcOvfR6QBLc"
}

Desarrollador

Volver al inicio

back-api-cars's People

Contributors

matuzay32 avatar

Watchers

James Cloos avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.