11package users
22
33import (
4- "context"
54 "net/http"
6- "strings"
7- "time"
85
96 "reverse-watch/domain/dto"
107 "reverse-watch/domain/models"
@@ -22,54 +19,39 @@ type fetchUserStatusResponse struct {
2219 LastReversalTimestamp * uint64 `json:"last_reversal_timestamp,omitempty"`
2320}
2421
25- func fetchUserStatus (steamWebAPIKey string ) http.HandlerFunc {
26- return func (w http.ResponseWriter , r * http.Request ) {
27- factory := r .Context ().Value (middleware .FactoryContextKey ).(repository.Factory )
22+ func fetchUserStatus (w http.ResponseWriter , r * http.Request ) {
23+ factory := r .Context ().Value (middleware .FactoryContextKey ).(repository.Factory )
2824
29- steamIdStr := chi .URLParam (r , "steamId" )
30- client := & http.Client {Timeout : 15 * time .Second }
31- ctx , cancel := context .WithTimeout (r .Context (), 15 * time .Second )
32- defer cancel ()
33-
34- var steamId * models.SteamID
35- var err error
36- if strings .TrimSpace (steamWebAPIKey ) != "" {
37- steamId , err = models .ParseSteamUserInputWithOpts (ctx , client , steamIdStr , & models.SteamUserInputOpts {
38- UseWebAPIForVanity : true ,
39- SteamWebAPIKey : steamWebAPIKey ,
40- })
41- } else {
42- steamId , err = models .ParseSteamUserInput (ctx , client , steamIdStr )
43- }
44- if err != nil {
45- render .Errorf (w , r , errors .BadRequest , "invalid steam id" )
46- return
47- }
25+ steamIdStr := chi .URLParam (r , "steamId" )
26+ steamId , err := models .ToSteamID (steamIdStr )
27+ if err != nil {
28+ render .Errorf (w , r , errors .BadRequest , "invalid steam id" )
29+ return
30+ }
4831
49- reversals , err := factory .Reversal ().List (& dto.ReversalListOptions {
50- SteamID : steamId ,
51- OrderParam : & dto.OrderParam {Column : "id" , Direction : dto .DESC },
52- })
53- if err != nil {
54- render .Errorf (w , r , errors .InternalServerError , "failed to list reversals for steam id %q" , steamId )
55- return
56- }
32+ reversals , err := factory .Reversal ().List (& dto.ReversalListOptions {
33+ SteamID : steamId ,
34+ OrderParam : & dto.OrderParam {Column : "id" , Direction : dto .DESC },
35+ })
36+ if err != nil {
37+ render .Errorf (w , r , errors .InternalServerError , "failed to list reversals for steam id %q" , steamId )
38+ return
39+ }
5740
58- data := & fetchUserStatusResponse {
59- SteamID : * steamId ,
60- }
41+ data := & fetchUserStatusResponse {
42+ SteamID : * steamId ,
43+ }
6144
62- var lastReversalTime uint64
63- for _ , reversal := range reversals {
64- lastReversalTime = max (lastReversalTime , reversal .ReversedAt )
65- if reversal .ExpungedAt == nil {
66- data .HasReversed = true
67- break
68- }
45+ var lastReversalTime uint64
46+ for _ , reversal := range reversals {
47+ lastReversalTime = max (lastReversalTime , reversal .ReversedAt )
48+ if reversal .ExpungedAt == nil {
49+ data .HasReversed = true
50+ break
6951 }
70- if data .HasReversed {
71- data .LastReversalTimestamp = & lastReversalTime
72- }
73- render .JSON (w , r , data )
7452 }
53+ if data .HasReversed {
54+ data .LastReversalTimestamp = & lastReversalTime
55+ }
56+ render .JSON (w , r , data )
7557}
0 commit comments