getUser method

Future<UserMixin?> getUser(
  1. UserId id
)

Returns an User by its id.

Authentication

Optional.

Implementation

Future<UserMixin?> getUser(UserId id) async {
  Log.debug('getUser($id)', '$runtimeType');

  if (client.token == null) {
    final variables = GetAnonUserArguments(id: id);
    QueryResult res = await client.query(
      QueryOptions(
        operationName: 'GetAnonUser',
        document: GetAnonUserQuery(variables: variables).document,
        variables: variables.toJson(),
      ),
    );

    final anon = GetAnonUser$Query.fromJson(res.data!).user;
    if (anon == null) {
      return null;
    }

    return GetUser$Query.fromJson({
      'user': {
        ...anon.toJson(),
        'isBlocked': {'record': null, 'ver': '0'},
      },
    }).user;
  }

  final variables = GetUserArguments(id: id);
  QueryResult res = await client.query(
    QueryOptions(
      operationName: 'GetUser',
      document: GetUserQuery(variables: variables).document,
      variables: variables.toJson(),
    ),
  );

  return GetUser$Query.fromJson(res.data!).user;
}