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);
    });
  });
}