package app.controllers.user; import app.annotations.enums.AuthMethod; import app.annotations.interfaces.BurstUpdatePlayers; import app.annotations.interfaces.CheckWebAccess; import app.annotations.interfaces.WaitAfterNext; import app.entities.other.SteamID; import app.services.ProfileService; import jakarta.servlet.http.HttpServletRequest; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.*; import java.util.HashMap; @RestController @RequestMapping("api/profile") public class DetailController { private ProfileService profileService; @Autowired public DetailController(ProfileService profileService) { this.profileService = profileService; } @GetMapping @CheckWebAccess(auth_method = AuthMethod.SECRET_KEY) @BurstUpdatePlayers public ResponseEntity GetUser(HttpServletRequest request, @RequestParam String steam64) { return new ResponseEntity(profileService.GetProfile(steam64), HttpStatus.OK); } @GetMapping("/web") @CheckWebAccess(auth_method = AuthMethod.STEAM64) @BurstUpdatePlayers @WaitAfterNext public ResponseEntity GetUser4Web(HttpServletRequest request, @RequestParam String steam64) { return new ResponseEntity(profileService.GetProfile(steam64), HttpStatus.OK); } @GetMapping("/steam") @CheckWebAccess(auth_method = AuthMethod.SECRET_KEY) public ResponseEntity GetSteam(HttpServletRequest request, @RequestParam String any) { return new ResponseEntity<>(profileService.GetSteamIDFromAnyData(any), HttpStatus.OK); } @GetMapping("/steam/web") @CheckWebAccess(auth_method = AuthMethod.STEAM64) @WaitAfterNext public ResponseEntity GetSteam4Web(HttpServletRequest request, @RequestParam String any) { return new ResponseEntity<>(profileService.GetSteamIDFromAnyData(any), HttpStatus.OK); } @PostMapping("/steam") @CheckWebAccess(auth_method = AuthMethod.SECRET_KEY) public ResponseEntity GetSteamOnHashMap(HttpServletRequest request, @RequestBody HashMap container) { if (!container.containsKey("any")) return new ResponseEntity(HttpStatus.BAD_REQUEST); return new ResponseEntity<>(profileService.GetSteamIDFromAnyData(container.get("any")), HttpStatus.OK); } @PostMapping("/steam/web") @CheckWebAccess(auth_method = AuthMethod.STEAM64) @WaitAfterNext public ResponseEntity GetSteamOnHashMap4Web(HttpServletRequest request, @RequestBody HashMap container) { if (!container.containsKey("any")) return new ResponseEntity(HttpStatus.BAD_REQUEST); return new ResponseEntity<>(profileService.GetSteamIDFromAnyData(container.get("any")), HttpStatus.OK); } }