package app.services; import app.controllers.ProfileController; import app.entities.PlayerProfile; import app.entities.other.SteamID; import app.services.steam.SteamWebApi; import app.utils.SteamIDConverter; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.time.Instant; import java.util.Arrays; import java.util.HashMap; import java.util.List; @Service public class ProfileService { SteamWebApi steamWebApi; UsertimeService usertimeService; @Autowired public ProfileService(SteamWebApi steamWebApi, UsertimeService usertimeService) { this.steamWebApi = steamWebApi; this.usertimeService = usertimeService; } public PlayerProfile GetProfile(String steam64, List requests) { PlayerProfile profile = new PlayerProfile(); profile.setResponse_time(new HashMap<>()); SteamID steamID = SteamIDConverter.getSteamID(steam64); profile.setSteamids(steamID); Long start_time, end_time; if(requests.contains("steam_data")){ start_time = Instant.now().toEpochMilli(); profile.setSteam_data(steamWebApi.getSteamData(steamID.steam64)); end_time = Instant.now().toEpochMilli() - start_time; profile.getResponse_time().put("steam_data", Double.valueOf(end_time) / 1000); } if(requests.contains("lastplay")){ start_time = Instant.now().toEpochMilli(); profile.setLastplay(usertimeService.getPlayerLastplay(profile.getSteamids())); end_time = Instant.now().toEpochMilli() - start_time; profile.getResponse_time().put("lastplay", Double.valueOf(end_time) / 1000); } if(requests.contains("usertime")){ start_time = Instant.now().toEpochMilli(); profile.setGametime(usertimeService.getPlayerUsertime(profile.getSteamids())); end_time = Instant.now().toEpochMilli() - start_time; profile.getResponse_time().put("usertime", Double.valueOf(end_time) / 1000); } return profile; } public PlayerProfile GetProfile(String steam64) { return GetProfile(steam64, List.of("steam_data,lastplay,usertime".split(","))); } }