Skip to content

Commit

Permalink
optimize(oidb): apply generic ParseTypedError
Browse files Browse the repository at this point in the history
  • Loading branch information
fumiama committed Jun 20, 2024
1 parent f5d774d commit e45af9e
Show file tree
Hide file tree
Showing 6 changed files with 17 additions and 50 deletions.
12 changes: 1 addition & 11 deletions client/packets/oidb/FetchGroupRequests.go
Original file line number Diff line number Diff line change
@@ -1,8 +1,6 @@
package oidb

import (
"errors"

"github.com/LagrangeDev/LagrangeGo/client/packets/pb/service/oidb"
)

Expand All @@ -15,13 +13,5 @@ func BuildFetchGroupRequestsReq() (*OidbPacket, error) {
}

func ParseFetchGroupRequestsReq(data []byte) (*oidb.OidbSvcTrpcTcp0X10C0_1Response, error) {
var resp oidb.OidbSvcTrpcTcp0X10C0_1Response
baseResp, err := ParseOidbPacket(data, &resp)
if err != nil {
return nil, err
}
if baseResp.ErrorCode != 0 {
return nil, errors.New(baseResp.ErrorMsg)
}
return &resp, nil
return ParseTypedError[oidb.OidbSvcTrpcTcp0X10C0_1Response](data)
}
11 changes: 1 addition & 10 deletions client/packets/oidb/GroupImageUpload.go
Original file line number Diff line number Diff line change
Expand Up @@ -95,14 +95,5 @@ func BuildGroupImageUploadReq(groupUin uint32, image *message.ImageElement) (*Oi
}

func ParseGroupImageUploadResp(data []byte) (*oidb.NTV2RichMediaResp, error) { // TODO: return proper response
var resp oidb.NTV2RichMediaResp
baseResp, err := ParseOidbPacket(data, &resp)
if err != nil {
return nil, err
}
if baseResp.ErrorCode != 0 {
return nil, errors.New(baseResp.ErrorMsg)
}

return &resp, nil
return ParseTypedError[oidb.NTV2RichMediaResp](data)
}
11 changes: 1 addition & 10 deletions client/packets/oidb/GroupRecordUpload.go
Original file line number Diff line number Diff line change
Expand Up @@ -80,14 +80,5 @@ func BuildGroupRecordUploadReq(groupCode uint32, record *message.VoiceElement) (
}

func ParseGroupRecordUploadResp(data []byte) (*oidb.NTV2RichMediaResp, error) {
var resp oidb.NTV2RichMediaResp
baseResp, err := ParseOidbPacket(data, &resp)
if err != nil {
return nil, err
}
if baseResp.ErrorCode != 0 {
return nil, errors.New(baseResp.ErrorMsg)
}

return &resp, nil
return ParseTypedError[oidb.NTV2RichMediaResp](data)
}
10 changes: 1 addition & 9 deletions client/packets/oidb/PrivateImageUpload.go
Original file line number Diff line number Diff line change
Expand Up @@ -96,13 +96,5 @@ func BuildPrivateImageUploadReq(targetUid string, image *message.ImageElement) (
}

func ParsePrivateImageUploadResp(data []byte) (*oidb.NTV2RichMediaResp, error) {
var resp oidb.NTV2RichMediaResp
baseResp, err := ParseOidbPacket(data, &resp)
if err != nil {
return nil, err
}
if baseResp.ErrorCode != 0 {
return nil, errors.New(baseResp.ErrorMsg)
}
return &resp, nil
return ParseTypedError[oidb.NTV2RichMediaResp](data)
}
11 changes: 1 addition & 10 deletions client/packets/oidb/PrivateRecordUpload.go
Original file line number Diff line number Diff line change
Expand Up @@ -75,14 +75,5 @@ func BuildPrivateRecordUploadReq(targetUid string, record *message.VoiceElement)
}

func ParsePrivateRecordUploadResp(data []byte) (*oidb.NTV2RichMediaResp, error) {
var resp oidb.NTV2RichMediaResp
baseResp, err := ParseOidbPacket(data, &resp)
if err != nil {
return nil, err
}
if baseResp.ErrorCode != 0 {
return nil, errors.New(baseResp.ErrorMsg)
}

return &resp, nil
return ParseTypedError[oidb.NTV2RichMediaResp](data)
}
12 changes: 12 additions & 0 deletions client/packets/oidb/builder.go
Original file line number Diff line number Diff line change
Expand Up @@ -77,3 +77,15 @@ func CheckTypedError[T any](data []byte) error {
}
return nil
}

func ParseTypedError[T any](data []byte) (*T, error) {
var resp T
baseResp, err := ParseOidbPacket(data, &resp)
if err != nil {
return nil, err
}
if baseResp.ErrorCode != 0 {
return nil, errors.New(baseResp.ErrorMsg)
}
return &resp, nil
}

0 comments on commit e45af9e

Please sign in to comment.