public override async Task HandleRefreshTokenAsync()

in dotnet/space-translate/SpaceTranslate/WebHook/SpaceTranslateWebHookHandler.HandleMenuAction.cs [174:203]


    public override async Task<ApplicationExecutionResult> HandleRefreshTokenAsync(RefreshTokenPayload payload)
    {
        var organization = await _db.Organizations.FirstOrDefaultAsync(it => it.ClientId == payload.ClientId);
        if (organization == null)
        {
            _logger.LogWarning("The organization does not exist. ClientId={ClientId}", payload.ClientId);
            return new ApplicationExecutionResult("The organization does not exist.", 400);
        }
        
        var user = await _db.Users
            .Include(m => m.Organization)
            .FirstOrDefaultAsync(it => it.OrganizationId == organization.Id && it.UserId == payload.UserId);
        if (user == null)
        {
            user = new User
            {
                OrganizationId = organization.Id,
                UserId = payload.UserId,
                Created = DateTimeOffset.UtcNow
            };
            _db.Users.Add(user);
        }

        user.Scope = payload.Scope;
        user.RefreshToken = payload.RefreshToken;

        await _db.SaveChangesAsync();
            
        return await base.HandleRefreshTokenAsync(payload);
    }