fix: formatting, refs NOISSUE

This commit is contained in:
2025-07-20 03:19:16 +02:00
parent 2e876ad628
commit 5b72e25636
10 changed files with 68 additions and 60 deletions

View File

@@ -43,7 +43,7 @@ public class PlayListSynchronizer
public async Task SynchronizePlaylistsAsync(IList<SmartPlaylistDefinition> playlists)
{
foreach(var playlist in playlists)
foreach (var playlist in playlists)
{
await SynchronizePlaylistAsync(playlist);
}
@@ -51,7 +51,7 @@ public class PlayListSynchronizer
public async Task SynchronizeUserPlaylistsAsync(User user)
{
using(var dci = DataContext.Instance)
using (var dci = DataContext.Instance)
{
var userPlayLists = dci.SmartPlaylistDefinitions
.Include(pl => pl.ExplicitlyIncludedSongs)

View File

@@ -5,7 +5,7 @@ using Microsoft.EntityFrameworkCore;
public class SpotifyApiClient
{
private SpotifyClient _spotifyClient;
private SpotifyClient _userAuthorizedSpotifyClient;
private SpotifyClient? _userAuthorizedSpotifyClient;
private ILogger<SpotifyApiClient> _logger;
public SpotifyApiClient(ILogger<SpotifyApiClient> logger)
@@ -25,7 +25,7 @@ public class SpotifyApiClient
var refreshResponse = await new OAuthClient().RequestToken(
new AuthorizationCodeRefreshRequest(
AppConfiguration.Instance.SpotifyClientId,
AppConfiguration.Instance.SpotifyClientSecret,
AppConfiguration.Instance.SpotifyClientSecret,
user.SpotifyAuthRefreshToken)
);
var config = SpotifyClientConfig
@@ -33,7 +33,8 @@ public class SpotifyApiClient
.WithAuthenticator(new AuthorizationCodeAuthenticator(
AppConfiguration.Instance.SpotifyClientId,
AppConfiguration.Instance.SpotifyClientSecret,
new AuthorizationCodeTokenResponse() {
new AuthorizationCodeTokenResponse()
{
RefreshToken = refreshResponse.RefreshToken,
AccessToken = refreshResponse.AccessToken,
TokenType = refreshResponse.TokenType,
@@ -46,8 +47,10 @@ public class SpotifyApiClient
return this;
}
private SpotifyClient UserAuthorizedSpotifyClient {
get {
private SpotifyClient UserAuthorizedSpotifyClient
{
get
{
if (_userAuthorizedSpotifyClient == null)
{
throw new Exception("Cannot perform Spotify API call without user authorization. Authorize Spotify access from your user page first!");
@@ -89,13 +92,13 @@ public class SpotifyApiClient
public async Task DeAuthorizeUserAsync(User user)
{
using(var dci = DataContext.Instance)
using (var dci = DataContext.Instance)
{
var isEntityTracked = dci.Entry(user).State != EntityState.Detached;
if(!isEntityTracked)
if (!isEntityTracked)
{
user = dci.Users.Find(user.UserId);
user = dci.Users.Find(user.UserId);
}
user.SpotifyAuthAccessToken = string.Empty;
user.SpotifyAuthRefreshToken = string.Empty;
@@ -107,13 +110,13 @@ public class SpotifyApiClient
public async Task<string> GetValidAuthorizationTokenAsync(User user)
{
if(string.IsNullOrEmpty(user.SpotifyAuthAccessToken))
if (string.IsNullOrEmpty(user.SpotifyAuthAccessToken))
{
// user either never connected Spotify or we failed to refresh token - user needs to re-authenticate
return string.Empty;
}
if(!this.IsAuthTokenExpired(user))
if (!this.IsAuthTokenExpired(user))
{
return user.SpotifyAuthAccessToken;
}
@@ -123,12 +126,12 @@ public class SpotifyApiClient
var isEntityTracked = dci.Entry(user).State != EntityState.Detached;
if(!isEntityTracked)
if (!isEntityTracked)
{
user = dci.Users.Find(user.UserId);
user = dci.Users.Find(user.UserId);
}
try
try
{
var oAuthResponse = await new OAuthClient().RequestToken(
new AuthorizationCodeRefreshRequest(AppConfiguration.Instance.SpotifyClientId, AppConfiguration.Instance.SpotifyClientSecret, user.SpotifyAuthRefreshToken)
@@ -139,7 +142,7 @@ public class SpotifyApiClient
user.SpotifyAuthRefreshToken = oAuthResponse.RefreshToken;
return user.SpotifyAuthAccessToken;
}
catch(Exception ex)
catch (Exception ex)
{
_logger.LogWarning($"Failed to refresh SpotifyAuth token for user {user.LdapUserName}: {ex.Message}");
await DeAuthorizeUserAsync(user);
@@ -186,7 +189,7 @@ public class SpotifyApiClient
var playlist = await UserAuthorizedSpotifyClient.Playlists.Create(currentUser.Id, playlistCreationRequest);
_logger.LogWarning($"Creating new playlist '{playlistTitle}'");
using(var dci = DataContext.Instance)
using (var dci = DataContext.Instance)
{
var trackedUserEntity = dci.Users.Find(createdBy.UserId);
var newPlaylist = new SmartPlaylistDefinition()
@@ -240,18 +243,18 @@ public class SpotifyApiClient
return string.Empty;
}
try
{
// for now hardcoded with my user ID
var addItemRequest = new PlaylistAddItemsRequest(songIds.Select(id => $"spotify:track:{id}").ToList());
_logger.LogWarning($"Adding songs to playlist with id '{playlistId}'");
var response = await UserAuthorizedSpotifyClient.Playlists.AddItems(playlistId, addItemRequest);
return response.SnapshotId;
{
// for now hardcoded with my user ID
var addItemRequest = new PlaylistAddItemsRequest(songIds.Select(id => $"spotify:track:{id}").ToList());
_logger.LogWarning($"Adding songs to playlist with id '{playlistId}'");
var response = await UserAuthorizedSpotifyClient.Playlists.AddItems(playlistId, addItemRequest);
return response.SnapshotId;
}
catch (APIException ex)
{
throw new Exception($"Error adding songs to playlist with id: {playlistId}: {ex.Message}", ex);
}
}
catch (APIException ex)
{
throw new Exception($"Error adding songs to playlist with id: {playlistId}: {ex.Message}", ex);
}
}
public async Task<string> RemoveSongsFromPlaylist(string playlistId, List<string> songIds)
@@ -274,7 +277,7 @@ public class SpotifyApiClient
};
removeItemsRequest.Tracks.Add(item);
}
_logger.LogWarning($"Removing songs from playlist with id '{playlistId}'");
var response = await UserAuthorizedSpotifyClient.Playlists.RemoveItems(playlistId, removeItemsRequest);
return response.SnapshotId;