public async Task <bool> TryCompletePinFlow(PlexAuthPin authPin) { try { PlexTokenResponse response = await _plexTvApi.GetPinStatus( authPin.Id, authPin.Code, authPin.ClientIdentifier); if (!string.IsNullOrWhiteSpace(response.AuthToken)) { PlexUserResponse user = await _plexTvApi.GetUser( AppName, authPin.ClientIdentifier, response.AuthToken); var token = new PlexUserAuthToken(user.Email, user.AuthToken); await _plexSecretStore.UpsertUserAuthToken(token); return(true); } } catch (Exception ex) { _logger.LogError(ex, "Error completing plex pin flow"); } return(false); }
public Task <Unit> UpsertUserAuthToken(PlexUserAuthToken userAuthToken) => ReadSecrets().Bind(