getByUsername method

FutureOr<List<APIToken>> getByUsername(
  1. String username, {
  2. required bool checkExpiredTokens,
})

Implementation

FutureOr<List<APIToken>> getByUsername(
  String username, {
  required bool checkExpiredTokens,
}) {
  return _resolveSharedTokensByUsername().resolveMapped((
    sharedTokensByUsername,
  ) {
    return sharedTokensByUsername.get(username).resolveMapped((userTokens) {
      if (userTokens == null) return [];

      if (!checkExpiredTokens) return userTokens;

      var expiredTokens = userTokens.removeExpiredTokens();
      if (expiredTokens.isEmpty) return userTokens;

      return removeTokens(
        expiredTokens,
        removeFromUsernames: true,
      ).resolveWithValue(userTokens);
    });
  });
}