generateApiKey method

Future<ApiHashModel> generateApiKey(
  1. String name, {
  2. required Duration? expireAfter,
})

Implementation

Future<ApiHashModel> generateApiKey(
  String name, {
  required Duration? expireAfter,
}) async {
  String apiHash = _generator.generateApiKey(name, expireAfter: expireAfter);
  var existing = await getApiModel(apiHash);
  if (existing != null) {
    return generateApiKey(name, expireAfter: expireAfter);
  }
  ApiSecretGenerator secretGenerator = ApiSecretGenerator(encrypterSecretKey);
  ApiSecretModel model = secretGenerator.generate(apiHash);
  ApiHashModel hashModel = ApiHashModel(
    apiHash,
    apiSecretEncrypted: model.secretEncrypted,
  );
  return hashModel;
}