ctzon_api 0.1.12 copy "ctzon_api: ^0.1.12" to clipboard
ctzon_api: ^0.1.12 copied to clipboard

A library for handling HTTP requests with dialogs and shared preferences.

ctzon_api #

Libreria Flutter/Dart privata che incapsula il flusso di autenticazione di Ctzon (login, registrazione, password recovery, profilo, pagine di supporto) e espone un client HTTP pronto per parlare con le API proprietarie (/api/v3). È pensata per essere integrata in app interne senza dover riscrivere la logica di gestione sessione o le viste comuni.

Caratteristiche principali #

  • Http wrapper con gestione token JWT, refresh e storage tramite shared_preferences.
  • Pagine già pronte (LoginPage, Register, RecoverPassword, ecc.) con UI responsive e supporto social login (Apple/Google).
  • Dialoghi e snackbar di feedback uniformi tramite Dialogs.
  • Supporto ambienti production/stage con CtzonApiSettings.getApiUrl().
  • Classi JSON per account, slot, punti loyalty, ecc. per serializzare velocemente i payload restituiti dall'API.

Installazione #

Questo pacchetto non è pubblicato su pub.flutter-io.cn. Aggiungilo al tuo pubspec.yaml come dipendenza locale o da repository Git privato:

dependencies:
  ctzon_api:
    git:
      url: git@github.com:your-org/ctzon_api.git
      ref: main

Esegui flutter pub get per scaricare i sorgenti.

Configurazione rapida #

Inizializza la libreria il prima possibile (es. subito dopo il bootstrap di Flutter) impostando chiave commerciale, ambiente ed eventuali URL di policy:

void main() {
  WidgetsFlutterBinding.ensureInitialized();

  CtzonApiSettings.set(
    const String.fromEnvironment('CTZON_KEY'),
    const bool.fromEnvironment('CTZON_DEV', defaultValue: false),
    const PlaceholderHomePage(),
    privacyUrl: 'https://www.ctzon.it/privacy',
    thermsUrl: 'https://www.ctzon.it/terms',
    socialLogin: true,
  );

  runApp(const MyApp());
}

Utilizzo #

Login programmatico #

final http = Http(context: context);
final success = await http.doLogin(emailController.text, passwordController.text);

if (success) {
  Navigator.pushReplacementNamed(context, '/home');
} else {
  // L'errore dettagliato è in http.errorMessage tramite elaborateResponse
}

Widget pronti #

Navigator.of(context).push(
  MaterialPageRoute(builder: (_) => const LoginPage()),
);

Sono disponibili anche Register, RecoverPassword e componenti di supporto nella cartella lib/pages.

Chiamate API custom #

final req = await HttpRequest().httpRequest(
  HttpIntent('booking/slots', {'date': selectedDay.toIso8601String()}),
  context,
  'Carico le disponibilità...',
  method: HttpMethod.get,
);

if (req.exception == null) {
  final slots = (req.response['data'] as List)
      .map((json) => Slot.fromJson(json))
      .toList();
  // usa slots
}

Note operative #

  • Questo repository contiene logica e asset proprietari: non distribuirlo fuori dal perimetro aziendale.
  • Non essendoci pubblicazione pubblica, la gestione delle issue e del versioning avviene internamente (vedi CHANGELOG.md).
  • Prima di pubblicare un'app che usa questa libreria ricordati di personalizzare i testi, gli URL di policy e di verificare che i flussi social siano autorizzati per i bundle identifier in uso.
0
likes
135
points
332
downloads

Publisher

unverified uploader

Weekly Downloads

A library for handling HTTP requests with dialogs and shared preferences.

Homepage

Documentation

API reference

License

MIT (license)

Dependencies

diacritic, dio, flutter, flutter_animate, flutter_svg, freezed_annotation, fuzzywuzzy, google_sign_in, jiffy, json_annotation, local_auth, shared_preferences, sign_in_with_apple, url_launcher

More

Packages that depend on ctzon_api