aboutsummaryrefslogtreecommitdiffstats
path: root/code/api/src/Jobs/VaultTokenRenewalJob.cs
blob: 17686290b8a72836c245f38e4a6f775279d2c091 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
namespace IOL.GreatOffice.Api.Jobs;

public class VaultTokenRenewalJob : IJob
{
    private readonly ILogger<VaultTokenRenewalJob> _logger;
    private readonly VaultService _vaultService;

    public VaultTokenRenewalJob(ILogger<VaultTokenRenewalJob> logger, VaultService vaultService) {
        _logger = logger;
        _vaultService = vaultService;
    }

    public async Task Execute(IJobExecutionContext context) {
        _logger.LogInformation("Starting vault token renewal");
        var renew = await _vaultService.RenewTokenAsync();
        if (renew == default) {
            _logger.LogCritical("Renewal did not succeed");
            return;
        }

        var token = await _vaultService.LookupTokenAsync();
        _logger.LogInformation("Token was renewed, new expire time {expires}", token.Data.ExpireTime);
    }
}