@page "/home" @using Grpc.Core @using GrpcShared.DTO @using GrpcShared.DTO.Db @using GrpcShared.DTO.Track @using NemAnBlazor.Services.Interfaces @using System.Net @inject Blazored.LocalStorage.ILocalStorageService localStorage @inject IStatsClientService spotifyService @inject ITrackClientService trackService @inject IAuthClientService AuthService @inject NavigationManager NavigationMgr @inject IIdentityClientService identityService

Home

login radi

@code { protected override async Task OnInitializedAsync() { CurrentTrackResponse track; string tokenS = "", refreshT = ""; string userId = await localStorage.GetItemAsync("user_info"); if (userId != null) { //get token from identity var userResponse = await identityService.GetTokenByIdAsync(new GrpcShared.DTO.Db.DbRequestMessage { Id = userId }); if (userResponse != null) { tokenS = userResponse.Token; refreshT = userResponse.RefreshToken; } else { await localStorage.RemoveItemAsync("user_info"); NavigationMgr.NavigateTo("/"); } } //tokenS = "BQBMgFm6jnFNWWeZEMGIRP_f-ENPid7Kw8JubAyuWAe4JK0S1DPFGlaAdZ_Fey6ePkCnz8-cqC0oyRmrciWUy5ISUTQKDe8PTQn4iBRMYCgM0n4GnS1xAErHJcm4Vpu2TAngk-4vQUOfTQRcedNTfCaHKP4uFJgTlTI7JHGrtB-_EZLnFcZ2OQe31oFQIJ1wM3ZtvwnN"; TokenMessage token = new() { Token = tokenS, RefreshToken = refreshT }; UserResponse user = new() { Id = userId, RefreshToken = refreshT }; try { track = await spotifyService.GetCurrentlyPlayingTrack(token); //if token expired, refresh it if (track.ResponseMsg == System.Net.HttpStatusCode.Unauthorized) { string? tempToken = await SpotifyHelper.TryRefreshToken(AuthService, token, user, localStorage, identityService); tokenS = tempToken == null ? tokenS : tempToken; //if refreshed token is null, that means that refresh token was invalid, so you should redirect to login } } catch (RpcException e) { if (e.StatusCode == StatusCode.Cancelled) { return; } throw; } //napravi komponentu koja ce da prikazuje sta trenutno slusas i passuj joj parametre //var trackById = await trackService.GetById(new GrpcShared.DTO.TrackByID.TrackRequest { TrackID = "4fy1A2WBTPX55mUI16TQXa", Token = tokenS }); try { var items = await spotifyService.GetTopItems(new GrpcShared.DTO.TopItem.TopItemRequest { Token = tokenS, IsTracks = false, Offset = 5 }); if (items.ResponseMsg == System.Net.HttpStatusCode.Unauthorized) { string? tempToken = await SpotifyHelper.TryRefreshToken(AuthService, token, user, localStorage, identityService); tokenS = tempToken == null ? tokenS : tempToken; } } catch (RpcException e) { if (e.StatusCode == StatusCode.Cancelled) { return; } throw; } await identityService.SaveTrackAsync(new GrpcShared.DTO.Db.SaveTrackRequest { TrackId = track.Item.Id, Title = track.Item.Name, Album = track.Item.Album.Name, Artist = track.Item.Artists[0].Name, UserId = userId }); //var resp = await identityService.ListUsersAsync(new VoidMessage()); var tokenFromDb = await identityService.GetTokenByIdAsync(new GrpcShared.DTO.Db.DbRequestMessage { Id = userId }); var trackByUser = await identityService.GetTrackByUserAsync(new GrpcShared.DTO.Db.DbRequestMessage { Id = userId }); //await identityService.DeleteTrackAsync(new GrpcShared.DTO.Db.DbRequestMessage // { // Id = // }); await identityService.SaveTrackAsync(new GrpcShared.DTO.Db.SaveTrackRequest { TrackId = track.Item.Id, Title = track.Item.Name, Album = track.Item.Album.Name, Artist = track.Item.Artists[0].Name, UserId = userId }); //find id from local storage //await identityService.DeleteUserAsync(new GrpcShared.DTO.Db.DbRequestMessage // { // Id = userId // }); } }