NoQ Flutter SDK

Usage

initialize noq object

final noq = NoQ(
  clientID: "<your client ID>",
)

enquene

final result = await noq.enqueue();
switch (result) {
  case EnqueueResultWait():
    if (!context.mounted) return;
    final token = await Navigator.push(
      context,
      MaterialPageRoute(
        builder: (context) => WaitingRoomScreen(
          waitingRoomURL: result.url,
          canBack: false, // configure the back behavior
        ),
      ),
    );
    if (token != null) {
      // queuing complete
    } else {
      // queuing cancelled (e.g. user swiped back)
    }
    break;
  default:
    break;
}

check expiry time

final result = await noq.getExpiryTime();
print(result.deadline); // deadline of the ticket
print(result.timeLeftInSeconds); // time left of the ticket
  • timeLeftInSeconds is calculated server-side and may be affected by network latency. It is recommended to exercise caution when the value is below 30 seconds, as it may not be fully accurate.”

extends session

The duration of the ticket can be extended by utilizing extendSession method on noq object. The parameter is in minutes, and optional seconds can be supplied too. The result is unix timestamp in seconds

final result = await noq.extendSession(0, second: 10);
print(result);

delete session

To delete a valid session. After deletion, the session is no longer valid.

await noq.deleteSession();

Change language

The language of the waiting room can be changed.

noq.language = Language.zhHant;
enum Language {
  en,
  zhHant,
  zhHans,
  fr,
  de,
  it,
  ja,
  es,
  ko,
  pt,
}

Error

  • NoTokenException - if token is not exist, method may throw this error. In order to obtain a token, use enqueue
  • TokenExpiredException - when calling extends session, the token maybe expired already, then this exception will be thrown.