GithubHelp home page GithubHelp logo

m4gen / sdk-kotlin Goto Github PK

View Code? Open in Web Editor NEW

This project forked from suitetecsa/sdk-kotlin

0.0 0.0 0.0 247 KB

SuitEtecsa SDK es una herramienta diseñada para interactuar con los servicios de ETECSA.

License: MIT License

Java 5.95% Kotlin 94.05%

sdk-kotlin's Introduction

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 al portal de acceso a internet de Nauta.

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 Nauta

    • Iniciar sesión.
    • Obtener información de las cuentas a nombre del usuario (correo, navegación, telefonía móvil y telefonía fija).
    • Recargar las cuentas de navegación.
    • 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 las cuentas de correo o navegación asociadas.
    • Obtener las conexiones realizadas en el mes especificado por las cuantas de navegación asociadas.
    • Obtener las recargas realizadas en el mes especificado a las cuentas de navegación asociadas.
    • Obtener las transferencias realizadas en el mes especificado por las cuantas de navegación asociadas.
    • Obtener los pagos de cuotas realizados en el mes especificado por las cuantas de navegación asociadas (solo para cuentas Nauta Hogar).

Uso

Importa SuitEtecsa SDK en tu proyecto

implementation("io.github.suitetecsa.sdk:kotlin:{last-version}")

Conectate a internet desde la wifi o Nauta Hogar

Kotlin

import io.github.suitetecsa.sdk.access.AccessClient

val client = AccessClient.Builder().build()
val dataSession = client.connect("[email protected]", "userPassword.123")

Java

import io.github.suitetecsa.sdk.access.AccessClientRx;

AccessClientRx clientRx = new AccessClientRx.Builder().build();
clientRx.connect("[email protected]", "userPassword.123")
.observeOn(AndroidSchedulers.mainThread()).subscribe(dataSession -> {
            // use dataSession here
        }, error -> { throw error });

Accede al Portal Nauta

Java

import io.github.suitetecsa.sdk.nauta.model.login.LoginRequest;
import io.github.suitetecsa.sdk.nauta.api.NautaApi;
import io.github.suitetecsa.sdk.nauta.api.PortalAuthServiceRx;
import io.reactivex.rxjava3.disposables.Disposable;

public class Example {
    
    private PortalAuthServiceRx service;
    private String idRequest;

    
// Obtain captcha code in String format and then take it to Bitmap or Drawable
    Single<CaptchaResponse> captcha = service.getCaptcha();
    captcha.subscribeOn(Schedulers.io())
            .observeOn(AndroidSchedulers.mainThread())
            .subscribe(
            response -> {
        idRequest = response.getIdRequest();
        String captchaContent = response.getData();
    },
    error -> {
      // error 
    });
    

    // connect after inserting user data
    LoginRequest request = new LoginRequest("usuario", " password", "USUARIO_PORTAL", idRequest, "captcha");
    Single<LoginResponse> loginUser = service.login(request);
    loginUser.subscribeOn(Schedulers.io())
            .observeOn(AndroidSchedulers.mainThread())
            .subscribe(
                    response -> {
                        // data login
         },
         error -> {
        // error 
    });
    
}

AccessClient/AccessClientRx

AccessClient es la clase encargada de comunicarse con el portal de acceso a internet de ETECSA.

Funciones y variables de AccessClient:

  • isConnected: comprueba si se está bajo el portal cautivo de Nauta, en caso positivo devuelve false.
  • getUserInformation: devuelve información relevante de la cuenta especificada.
  • connect: conecta la cuenta especificada. Devuelve un objeto DataSession que contiene la información necesaria para restablecer la sesión y poder cerrarla posteriormente.
  • getRemainingTime: devuelve el tiempo restante de la cuenta que ha iniciado sesión. Requiere del objeto DataSession devuelto por connect.
  • disconnect: desconecta la cuenta conectada. Requiere del objeto DataSession devuelto por connect.

NautaApi

NautaApi es un objeto que proporciona instancias Retrofit configuradas listas para crear servicios API con o sin soporte RxJava. Esta están diseñadas para interactuar con el portal Nauta.

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!

sdk-kotlin's People

Contributors

lesclaz avatar m4gen avatar renovate[bot] 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.