Skip to content

suitetecsa/sdk-swift

Repository files navigation

SuitEtecsaSdk

Descripción

SuitEtecsaSdk es una librería desarrollada en Swift, diseñada para facilitar la interacción con los servicios de la empresa de telecomunicaciones ETECSA.

Características

  • Scraping Avanzado: Utiliza técnicas de scraping para acceder eficientemente a los portales de acceso a internet y de usuario de Nauta.
  • Integración con API de Nauta: Permite la interacción con el portal Nauta a través de su API, proporcionando un cliente robusto y fácil de usar.

Instalación

Importa SuitEtecsaSdk en tu proyecto

dependencies: [
    .package(url: "https://github.com/suitetecsa/sdk-swift/.git", from: "1.0.0-alpha04")
]

Uso

Conéctate a internet desde la wifi o Nauta Hogar

switch await ConnectApi.connect(username: "user.name@nauta.com.cu", password: "somePassword") {
case .success(let dataSession): saveDataSession(dataSession)
case .failure(let exception):
  switch exception {
  case .failLogin(let message):
    print("Error al iniciar sesion: \(message)")
  default: break
  }
}

Obtén el tiempo restante de la cuenta (solo puede hacerse cuando hay una conexión abierta y se poseen los datos de la sesión).

switch await ConnectApi.getLeftTime(dataSession) {
case .success(let timeString):
  print("Su tiempo restante es: \(timeString)")
case .failure(let exception):
  switch exception {
  case .failFetchInformation(let message):
    print("Error al obtener el tiempo restante de la cuenta: \(message)")
  default: break
  }
}

Desconéctate de internet

switch await ConnectApi.disconnect(dataSession) {
case .success: print("sesion cerrada")
case .failure(let exception):
  switch exception {
  case .failLogin(let message):
    print("Error al cerrar sesion: \(message)")
  default: break
  }
}

Obtén la información de la cuenta

switch await ConnectApi.getInfo(username: "user.name@nauta.com.cu", password: "somePassword") {
case .success(let userInfo):
  print("Su saldo es de: \(userInfo.accountInfo.credit)")
case .failure(let exception):
  switch exception {
  case .failLogin(let message):
    print("Error intentando obtener los datos de la cuenta: \(error.localizedDescription)")
  default: break
  }
}

Obten la informacion necesaria para iniciar sesion en el portal Nauta

switch await NautaAuthApi.getCaptcha() {
case .failure(_): print("Hubo un error")
case .success(let cresp):
print(cresp.idRequest)
print(cresp.data)
}

Inicia sesion en el portal Nauta

switch await NautaAuthApi.login(
  username: "+5350000000", password: "somePassword", captchaCode: "CAPTCHACODE",
  idRequest: cresp.idRequest)
{
case .failure(let err): throw err
case .success(let lresp): print(lresp)
}

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!

About

Una librería para SuitETECSA escrita en Swift

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages