git.zd.zone/hrpc/hrpc@v0.0.12/log/cls/callback.go (about) 1 package cls 2 3 import ( 4 "time" 5 6 clssdk "github.com/tencentcloud/tencentcloud-cls-sdk-go" 7 ) 8 9 type status int 10 11 const ( 12 Failed status = iota 13 Success 14 ) 15 16 type Result struct { 17 Status status 18 19 RequestID string 20 ErrorCode string 21 ErrorMessage string 22 Time time.Time 23 } 24 25 type Handle func(results ...Result) 26 27 type callback struct { 28 fn Handle 29 } 30 31 func (c *callback) Success(result *clssdk.Result) { 32 if c.fn == nil { 33 return 34 } 35 36 var results []Result 37 attemptList := result.GetReservedAttempts() 38 for _, attempt := range attemptList { 39 var res Result 40 if attempt.Success { 41 res.Status = Success 42 } 43 res.ErrorCode = attempt.ErrorCode 44 res.ErrorMessage = attempt.ErrorMessage 45 res.RequestID = attempt.RequestId 46 res.Time = time.Unix(attempt.TimeStampMs/1000, 0) 47 results = append(results, res) 48 } 49 c.fn(results...) 50 } 51 52 func (c *callback) Fail(result *clssdk.Result) { 53 if c.fn == nil { 54 return 55 } 56 57 var res Result 58 if result.IsSuccessful() { 59 res.Status = Success 60 } 61 res.ErrorCode = result.GetErrorCode() 62 res.ErrorMessage = result.GetErrorMessage() 63 res.RequestID = result.GetRequestId() 64 res.Time = time.Unix(result.GetTimeStampMs()/1000, 0) 65 c.fn(res) 66 }