AuthResponse.fromReader constructor

AuthResponse.fromReader(
  1. TeleportObjectReader reader
)

Implementation

factory AuthResponse.fromReader(TeleportObjectReader reader) {
    final instance = AuthResponse();
    TeleportField? field;
    while ((field = reader.next()) != null) {
        if (field!.isNull) continue;
        switch (field.fieldId) {
            case fieldIdClientContext: {
                instance.clientContext = Context.fromReader(field.asObject());
                break;
            }
            case fieldIdServerContext: {
                instance.serverContext = Context.fromReader(field.asObject());
                break;
            }
            case fieldIdCertHash: {
                instance.certHash = field.asString();
                break;
            }
            case fieldIdEntrypoints: {
                final ar = field.asArray();
                final list = <Entrypoint>[];
                TeleportArrayElement? el;
                while ((el = ar.next()) != null) {
                    list.add(Entrypoint.fromReader(el!.asObject()));
                }
                instance.entrypoints = list;
                break;
            }
            case fieldIdFeatureFlags: {
                final dr = field.asDictionary();
                final map = <String, bool>{};
                TeleportDictEntry? en;
                while ((en = dr.next()) != null) {
                    final entry = en!;
                    map[entry.keyAsString()] = entry.valueAsField().asBool();
                }
                instance.featureFlags = map;
                break;
            }
            case fieldIdSpaceId: {
                instance.spaceId = field.asString();
                break;
            }
            case fieldIdChannelId: {
                instance.channelId = field.asString();
                break;
            }
            case fieldIdChannelInstanceId: {
                instance.channelInstanceId = field.asString();
                break;
            }
            case fieldIdPrimaryUserId: {
                instance.primaryUserId = field.asString();
                break;
            }
            case fieldIdServerSessionId: {
                instance.serverSessionId = field.asString();
                break;
            }
            case fieldIdKeepaliveTimeoutMs: {
                instance.keepaliveTimeoutMs = field.asInt32();
                break;
            }
            case fieldIdServerCapability: {
                instance.serverCapability = field.asInt32();
                break;
            }
        }
    }
    return instance;
}