Skip to content
This repository has been archived by the owner on Aug 5, 2023. It is now read-only.

API Docs

Max Sepúlveda edited this page Jul 5, 2023 · 1 revision

Aqui se registrará la documentación de la API de la aplicación.

NOTA: La ruta principal de la API es localhost:4000. Es decir, todas las rutas que se describen a continuación deben ser precedidas por localhost:4000.

NOTA: Las entradas se envian en formato JSON a traves de body.

Sesion

  • GET /api/sessionTest

    Retorna un JSON con informacion del usuario con la sesion abierta actualmente.

    • Entrada: Ninguna

    • Salida:

      {
        "authenticated": true,
        "userId": "64965e168b7143785acf87fa",
        "username": "usuario3",
        "phone": "1234567890"
      }

      Retorna 401 (no autorizado) si no hay una sesion abierta.

Autenticacion

  • POST /api/auth/register

    Registra un usuario. Solo funciona si el usuario NO tiene una sesion abierta.

    • Entrada:

      • username: nombre de usuario. Debe ser unico.

      • phone: telefono del usuario. Debe tener 10 caracteres. Debe ser unico.

      • password: contraseña del usuario.

      {
        "username": "usuario3",
        "phone": "1234567890",
        "password": "pass"
      }
    • Salida:

      Retorna 200 (OK) si el usuario se registró correctamente.

      Retorna 400 (mala solicitud) si el usuario ya existe o no se cumplen las condiciones.


  • POST /api/auth/login

    Autentica un usuario. Solo funciona si el usuario NO tiene una sesion abierta.

    • Entrada:

      • username: nombre de usuario.

      • password: contraseña del usuario.

      {
        "username": "usuario3",
        "password": "pass"
      }
    • Salida:

      {
        "authenticated": true,
        "userId": "64965e168b7143785acf87fa",
        "username": "usuario3",
        "phone": "1234567890"
      }

      Retorna 400 (mala solicitud) si el usuario no existe o la contraseña es incorrecta.


  • POST /api/auth/logout

    Cierra la sesion del usuario. Solo funciona si el usuario SI tiene una sesion abierta.

    • Entrada: Ninguna

    • Salida:

      Retorna 200 (OK) si la sesion se cerró correctamente.

      Retorna 401 (no autorizado) si no hay una sesion abierta.

Usuario

  • GET /api/user/username/:username

    Retorna un JSON con informacion del usuario con el nombre de usuario especificado en :username.

    • Entrada: Ninguna

    • Salida:

      {
        "username": "usuario3",
        "phone": "1234567890"
      }

      Retorna 404 (no encontrado) si no existe el usuario.


  • GET /api/user/phone/:phone

    Retorna un JSON con informacion del usuario con el telefono especificado en :phone.

    • Entrada: Ninguna

    • Salida:

      {
        "username": "usuario3",
        "phone": "1234567890"
      }

      Retorna 404 (no encontrado) si no existe el usuario.


  • GET /api/user

    Retorna un JSON con informacion del usuario con la sesion abierta actualmente.

    • Entrada: Ninguna

    • Salida:

      {
        "username": "usuario3",
        "phone": "1234567890"
      }

      Retorna 401 (no autorizado) si no hay una sesion abierta.

Contactos

  • POST /api/contact/add

    Agrega un contacto al usuario con la sesion abierta actualmente.

    • Entrada:

      • phone: telefono del contacto a agregar. Debe tener 10 caracteres.

      {
        "phone": "1234567891"
      }
    • Salida:

      Retorna 200 (OK) si el contacto se agregó correctamente.

      Retorna 400 (mala solicitud) si el contacto ya existe o intenta agregarse a si mismo.

      Retorna 401 (no autorizado) si no hay una sesion abierta.


  • DELETE /api/contact/remove

    Elimina un contacto del usuario con la sesion abierta actualmente. El contacto debe tener 10 caracteres.

    • Entrada:

      • phone: telefono del contacto a eliminar. Debe tener 10 caracteres.

      {
        "phone": "1234567891"
      }
    • Salida:

      Retorna 200 (OK) si el contacto se eliminó correctamente.

      Retorna 400 (mala solicitud) si el contacto no existe o intenta eliminarse a si mismo.

      Retorna 401 (no autorizado) si no hay una sesion abierta.


  • GET /api/contact/list

    Retorna una lista de los contactos del usuario con la sesion abierta actualmente.

    • Entrada: Ninguna

    • Salida:

      ["2222222222", "3333333333", "3333333334", "1234567891", "1234567893"]

      Retorna una lista vacia [] si el usuario no tiene contactos.

      Retorna 401 (no autorizado) si no hay una sesion abierta.

Mensajes

  • POST /api/message/send

    Envía un mensaje a un telefono. EL usuario quien envia es aquel con la sesion abierta actualmente.

    • Entrada:

      • phone: telefono del destinatario. Debe tener 10 caracteres.

      • message: mensaje a enviar.

      {
        "phone": "1234567891",
        "message": "Hola"
      }
    • Salida:

      {
        "fromPhone": "1234567890",
        "toPhone": "2222222221",
        "message": "Hola",
        "date": "2023-06-24T05:11:57.361Z",
        "_id": "64967b1dbe06e0d44b851191",
        "__v": 0
      }

      Retorna 200 (OK) si el mensaje se envió correctamente.

      Retorna 400 (mala solicitud) si se intenta enviar un mensaje a si mismo.

      Retorna 401 (no autorizado) si no hay una sesion abierta.


  • GET /api/message/list/:phone

    Obtiene una lista de los mensajes entre el usuario con la sesion abierta actualmente y el usuario con el telefono especificado en :phone.

    • Entrada: Ninguna

    • Salida:

      [
        {
          "fromPhone": "1111111111",
          "toPhone": "2222222222",
          "message": "Bien y tu",
          "date": "2023-06-24T06:02:23.479Z"
        },
        {
          "fromPhone": "2222222222",
          "toPhone": "1111111111",
          "message": "Hola como estas",
          "date": "2023-06-24T05:59:27.210Z"
        },
        {
          "fromPhone": "1111111111",
          "toPhone": "2222222222",
          "message": "Hola",
          "date": "2023-06-24T05:58:28.394Z"
        }
      ]

      NOTA: La lista esta ordenada del mas reciente al mas antiguo.

      Retorna una lista vacia [] si no hay mensajes entre los usuarios.

      Retorna 401 (no autorizado) si no hay una sesion abierta.