Skip to content

deyvisnvg/projectunidad_7

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

63 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

PROYECTO UNIDAD 7

Express.js NodeJS Prisma TypeScript SQLite

Integrantes 🚀

  • Deyvis Neyser Valdez Gavilan
  • Hermez Jaramillo
  • Bill Toño Gutierrez Vega

Empezando

  1. Instalar paquetes

    npm i
  2. Es necesario crear tu archivo .env:

    # Tomar como referencia el archivo .env.example
  3. Realizar migración:

    npx prisma migrate dev
  4. Ejecute el servidor de desarrollo:

    npm run dev
    # or
    npx ts-node ./src/index.ts

Funcionalidades de la Aplicación

Componente User

  • Crear usuarios

    Method: POST

    http://localhost:3001/api/v1/users/add

    Condiciones:

    • Para crear un usuario, enviar el siguiente json en el body del Postman. Ej.

      {
          "name": "daniela",
          "email": "[email protected]",
          "password": "1234",
          "date_born": "1994-10-22"
      }
  • Login usuario

    Method: POST

    http://localhost:3002/api/v1/users/login

    Condiciones:

    • Para el login, enviar el siguiente json en el body del Postman. Ej.

      {
          "email": "[email protected]",
          "password": "1234"
      }
    • Response

      {
          "message": "successfully logged in",
          "user": {
              "name": "daniela",
              "email": "[email protected]",
              "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6MSwibmFtZSI6ImRhbmllbGEiLCJlbWFpbCI6ImRhbmllbGFAZ21haWwuY29tIiwiaWF0IjoxNjc0NTE5ODUyLCJleHAiOjE2NzQ1MTk5MzJ9.Hk50X3GCZ-hfk6CiNDgKJGSzRDXsxFSdXNIvTD8fODU"
          }
      }
  • Obtener lista de usuarios

    Method: GET

    http://localhost:3001/api/v1/users/

    Condiciones:

    • El usuario debe iniciar sesión para generar la authentification.

    • Para listar usuarios, enviar la siguiente authentification en el header del Postman. Ej.

      Authorization: Bearer $token_generado
  • Buscar usuario por id

    Method: GET

    http://localhost:3001/api/v1/users/id

    Condiciones:

    • Para buscar un usuario, enviar la siguiente authentification en el header del Postman. Ej.

      Authorization: Bearer $token_generado

Componente song

  • Crear song

    Method: POST

    http://localhost:3001/api/v1/songs/add

    Condiciones:

    • Para crear un song, enviar la siguiente authentification en el header del Postman(el token se obtine cuando haces el login). Ej.

      Authorization: Bearer $token_generado
    • Para crear un song, enviar el siguiente json en el body del Postman. Ej.

      {
          "name": "A puro dolor",
          "artist": "Sin bandera",
          "album": "Album 1",
          "year": 2015,
          "genero": "Baladas",
          "duration": 120,
          "estado": "privado"
      }
  • Obtener lista de songs sin estar autenticados(públicas)

    Method: GET

    http://localhost:3001/api/v1/songs/public

    Condiciones:

    • El usuario no debe estar autenticado necesariamente.
  • Obtener lista de songs estando autenticados(privadas y públicas)

    Method: GET

    http://localhost:3001/api/v1/songs

    Condiciones:

    • Para obtener songs privadas y públicas lo primero es enviar la siguiente authentification en el header del Postman(el token se obtine cuando haces el login). Ej.

      Authorization: Bearer $token_generado
    • Despues hacer una peticion get a la ruta proporcionada.

  • Buscar song por id

    Method: GET

    http://localhost:3001/api/v1/songs/id

    Condiciones:

    • Para buscar un song por id, enviar la siguiente authentification en el header del Postman(el token se obtine cuando haces el login). Ej.

      Authorization: Bearer $token_generado
    • En la ruta se reemplaza id por la id de la song que se quiere mostrar y se realiza una peticion GET.

Componente Playlist

  • Crear playlist

    Method: POST

    http://localhost:3001/api/v1/playlist

    Condiciones:

    • Recuerda para crear la playlist debes estar logueado.

    • El usuario no puede crear 2 playlist con el mismo nombre ya que estaria duplicando una que ya esta creada.

    • Enviar el siguiente json en el body del Postman. Ej.

      {
          "name": "Playlist 1",  # nombre de la playlist
          "user_id": 2,    # ID del user
      }
    • Enviar la autenticación en el Postman:

      Authorization:  Bearer $token_generado
    • Response

      {
        "message": "Playlist creada exitosamente",
        "data": {
                  "id": 1,
                  "name": "playlist 1",
                  "user_id": 2
                }
      }
  • Agregar una canción a la playlist

    Method: POST

    http://localhost:3001/api/v1/playlist/addSong

    Condiciones:

    • Recuerda para agregar la canción debes estar logueado.

    • El usuario no puede adicionar las misma canción en la playlist ya que estaria duplicando.

    • Enviar lo siguiente en el body del Postman. Ej.

      Authorization:  Bearer $token_generado
      {
        "id_song": 2,  # id canción agregar
        "id_playlist": 1,  # id de la playlist que desea agregar esa canción
      }
    • Response

      {
        "ok": true,
        "message": "Canción creada correctamente"
      }
  • Buscar Playlist por id

    Method: GET

    http://localhost:3001/api/v1/playlist/1

    Condiciones:

    • Para buscar la canción por el id tienes que estar logueado.

      ID POR PARAMETRO sigue el ejm de la URL, siguiente authentification en el header del Postman. Ej.

      Authorization:  Bearer $token_generado
    • Response

          "data": {
              "id": 1,
              "name": "playlist 1",
              "user_id": 2,
              "songs": [
                  {
                      "id": 1,
                      "name": "You're So High",
                      "artist": "Eli & Fur",
                      "album": "Album 1",
                      "year": 2020,
                      "genero": "DeepHouse",
                      "duration": 120,
                      "estado": "publico",
                      "updated_at": "2023-01-24T02:35:11.416Z"
                  },
                  {
                      "id": 2,
                      "name": "Devil Eyes",
                      "artist": "Hippie Sabotage ",
                      "album": "Album 1",
                      "year": 2020,
                      "genero": "DeepHouse",
                      "duration": 120,
                      "estado": "publico",
                      "updated_at": "2023-01-24T03:05:23.308Z"
                  }
              ]
          }
      
      

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 3

  •  
  •  
  •