Skip to content
This repository has been archived by the owner on Jul 19, 2024. It is now read-only.

suitetecsa/suitetecsa-sdk-kotlin

Repository files navigation

SuitEtecsa SDK Kotlin

SuitEtecsa SDK es una herramienta diseñada para interactuar con los servicios de ETECSA. La librería utiliza técnicas de scrapping para acceder a los portales de acceso a internet y de usuario de Nauta. Implementa funciones para todas las operaciones disponibles en ambos portales, y ofrece soporte para Nauta Hogar.

Todas las funcionalidades están disponibles desde una única clase, UserAPI, lo que permite interactuar con ambos portales a la vez, permitiendo obtener datos de manera rápida y eficiente, ahorrando tiempo y esfuerzos a la hora de desarrollar aplicaciones que busquen gestionar los servicios de ETECSA. Además, incluye funcionalidades útiles como la generación de contraseñas y la compartición de sesión.

Se han seguido los principios SOLID en su desarrollo, lo que garantiza que es fácil de entender, modificar y mantener. La mayoría de la información devuelta por las funciones son objetos, lo que simplifica el trabajo de las aplicaciones que lo utilizan.

Al ser un proyecto open-source, se valoran y se reciben contribuciones de la comunidad de desarrolladores/as.

Funciones implementadas

  • Secure Etecsa

    • Iniciar sesión.
    • Cerrar sesión.
    • Obtener el tiempo disponible en la cuenta.
    • Obtener la información de la cuenta.
  • Portal de Usuario

    • Iniciar sesión.

    • Obtener información de la cuenta.

    • Recargar la cuenta.

    • Transferir saldo a otra cuenta nauta.

    • Transferir saldo para pago de cuota (solo para cuentas Nauta Hogar).

    • Cambiar la contraseña de la cuenta de acceso.

    • Cambiar la contraseña de la cuenta de correo asociada.

    • Obtener las conexiones realizadas en el periódo año-mes especificado.

    • Obtener las recargas realizadas en el periódo año-mes especificado.

    • Obtener las transferencias realizadas en el periódo año-mes especificado.

    • Obtener los pagos de cuotas realizados en el periódo año-mes especificado (solo para cuentas Nauta Hogar).

Uso

Importa SuitEtecsa SDK en tu proyecto

implementation("com.github.suitetecsa:sdk-kotlin:1.0b1")

Instancia UserApi

    val userSession = DefaultNautaSession()
    val connectSession = DefaultNautaSession()
    val api = UserAPI.builder().build()

Establece las credenciales que usaras para iniciar sesion

    api.credentials = Pair("user.name@nauta.com.cu", "somePassword")

Conectate a internet desde la wifi o Nauta Hogar

    // Para hacer login en el portal cautivo
    api.connect()
    // Obtener el tiempo restante
    val remainingTime = api.remainingTime

Interactúa con el portal de usuario

    // Para hacer login en el portal de usuario
    downloadCaptcha("captchaImage.png", api.captchaImage)
    print("Introduzca el código de la imagen captcha: ")
    val keyMap = Scanner(System.`in`)
    val captchaCode = keyMap.nextLine()
    val user: NautaUser = api.login(captchaCode)

Otras funciones

    // Funciones del portal cautivo
    api.connectInformation // Obtiene la información de la cuenta que provee el portal cautivo
    api.disconnect() // Desconecta la cuenta activa

    // Funciones del portal de usuario
    api.userInformation // Obtiene la información de la cuenta que provee el portal de usuario
    api.toUpBalance("rechargeCode") // Recarga el saldo de la cuenta
    api.transferBalance(25f, "destinationAccount") // Para transferir saldo a otra cuenta nauta
    api.transferBalance(25f) // Para pagar cuota de nauta hogar
    api.getConnections(api.getConnectionsSummary(2023, 3)) // Obtiene las conexiones realizadas en el mes y año especificados
    api.getRecharges(api.getRechargesSummary(2023, 3)) // Obtiene las recargas realizadas en el mes y año especificados
    api.getTransfers(api.getTransfersSummary(2023, 3)) // Obtiene las transferencias realizadas en el mes y año especificados
    api.getQuotesPaid(api.getQuotesPaidSummary(2023, 3)) // Obtiene las cuotas pagadas en el mes y año especificados

Contribución

¡Gracias por tu interés en colaborar con nuestro proyecto! Nos encanta recibir contribuciones de la comunidad y valoramos mucho tu tiempo y esfuerzo.

Cómo contribuir

Si estás interesado en contribuir, por favor sigue los siguientes pasos:

  1. Revisa las issues abiertas para ver si hay alguna tarea en la que puedas ayudar.
  2. Si no encuentras ninguna issue que te interese, por favor abre una nueva issue explicando el problema o la funcionalidad que te gustaría implementar. Asegúrate de incluir toda la información necesaria para que otros puedan entender el problema o la funcionalidad que estás proponiendo.
  3. Si ya tienes una issue asignada o si has decidido trabajar en una tarea existente, por favor crea un fork del repositorio y trabaja en una nueva rama (git checkout -b nombre-de-mi-rama).
  4. Cuando hayas terminado de trabajar en la tarea, crea un pull request explicando los cambios que has realizado y asegurándote de que el código cumple con nuestras directrices de estilo y calidad.
  5. Espera a que uno de nuestros colaboradores revise el pull request y lo apruebe o sugiera cambios adicionales.

Directrices de contribución

Por favor, asegúrate de seguir nuestras directrices de contribución para que podamos revisar y aprobar tus cambios de manera efectiva:

  • Sigue los estándares de codificación y estilo de nuestro proyecto.
  • Asegúrate de que el código nuevo esté cubierto por pruebas unitarias.
  • Documenta cualquier cambio que hagas en la documentación del proyecto.

¡Gracias de nuevo por tu interés en contribuir! Si tienes alguna pregunta o necesitas ayuda, no dudes en ponerte en contacto con nosotros en la sección de issues o enviándonos un mensaje directo.

Licencia

Este proyecto está licenciado bajo la Licencia MIT. Esto significa que tienes permiso para utilizar, copiar, modificar, fusionar, publicar, distribuir, sublicenciar y/o vender copias del software, y para permitir que las personas a las que se les proporcione el software lo hagan, con sujeción a las siguientes condiciones:

  • Se debe incluir una copia de la licencia en todas las copias o partes sustanciales del software.
  • El software se proporciona "tal cual", sin garantía de ningún tipo, expresa o implícita, incluyendo pero no limitado a garantías de comerciabilidad, aptitud para un propósito particular y no infracción. En ningún caso los autores o titulares de la licencia serán responsables de cualquier reclamo, daño u otra responsabilidad, ya sea en una acción de contrato, agravio o de otra manera, que surja de, fuera de o en conexión con el software o el uso u otros tratos en el software.

Puedes encontrar una copia completa de la Licencia MIT en el archivo LICENSE que se incluye en este repositorio.

Contacto

Si tienes alguna pregunta o comentario sobre el proyecto, no dudes en ponerte en contacto conmigo a través de los siguientes medios:

Estaré encantado de escuchar tus comentarios y responder tus preguntas. ¡Gracias por tu interés en mi proyecto!