api-structs #117

Merged
lash merged 35 commits from api-structs into master 2024-10-24 15:53:46 +02:00
2 changed files with 6 additions and 6 deletions
Showing only changes of commit abc01b7cee - Show all commits

View File

@ -11,7 +11,7 @@ var (
// LoadConfig initializes the configuration values after environment variables are loaded. // LoadConfig initializes the configuration values after environment variables are loaded.
func LoadConfig() { func LoadConfig() {
CreateAccountURL = initializers.GetEnv("CREATE_ACCOUNT_URL", "http://localhost:5003/api/v2/account/create") CreateAccountURL = initializers.GetEnv("CREATE_ACCOUNT_URL", "http://localhost:5003/api/v2/account/creates")
TrackStatusURL = initializers.GetEnv("TRACK_STATUS_URL", "https://custodial.sarafu.africa/api/track/") TrackStatusURL = initializers.GetEnv("TRACK_STATUS_URL", "https://custodial.sarafu.africa/api/track/")
BalanceURL = initializers.GetEnv("BALANCE_URL", "https://custodial.sarafu.africa/api/account/status/") BalanceURL = initializers.GetEnv("BALANCE_URL", "https://custodial.sarafu.africa/api/account/status/")
TrackURL = initializers.GetEnv("TRACK_URL", "http://localhost:5003/api/v2/account/status") TrackURL = initializers.GetEnv("TRACK_URL", "http://localhost:5003/api/v2/account/status")

View File

@ -14,9 +14,8 @@ import (
) )
Outdated
Review

why is this needed?

why is this needed?

Well,at the point of making the api call and receiving a response back, we don't really know the response that will be sent back,it can either be an ErrResponse or an OKResponse but we are certain that the ok and description field will be present.So the OK field in the ApiResponse will be used to decide which type to Unmarshal on.

if apiResponse.Ok {
		err = json.Unmarshal([]byte(body), &okResponse)
		if err != nil {
			errResponse.Description = err.Error()
			return nil, &errResponse
		}
		return &okResponse, nil
	} else {
		err := json.Unmarshal([]byte(body), &errResponse)
		if err != nil {
			errResponse.Description = err.Error()
			return nil, &errResponse
		}
		return nil, &errResponse
	}
Well,at the point of making the api call and receiving a response back, we don't really know the response that will be sent back,it can either be an ErrResponse or an OKResponse but we are certain that the ok and description field will be present.So the OK field in the ApiResponse will be used to decide which type to Unmarshal on. ``` if apiResponse.Ok { err = json.Unmarshal([]byte(body), &okResponse) if err != nil { errResponse.Description = err.Error() return nil, &errResponse } return &okResponse, nil } else { err := json.Unmarshal([]byte(body), &errResponse) if err != nil { errResponse.Description = err.Error() return nil, &errResponse } return nil, &errResponse } ```
var ( var (
okResponse api.OKResponse okResponse api.OKResponse
errResponse api.ErrResponse errResponse api.ErrResponse
EMPTY_RESPONSE = 0
) )
type AccountServiceInterface interface { type AccountServiceInterface interface {
@ -93,7 +92,7 @@ func (as *AccountService) TrackAccountStatus(publicKey string) (*api.OKResponse,
} }
return nil, errors.New(errResponse.Description) return nil, errors.New(errResponse.Description)
} }
if len(okResponse.Result) == EMPTY_RESPONSE { if len(okResponse.Result) == 0 {
return nil, errors.New("Empty api result") return nil, errors.New("Empty api result")
Outdated
Review

I would just use the literal 0 here

I would just use the literal `0` here

If there is no matching tracking id, result.otx will be null.

If there is no matching tracking id, result.otx will be null.
Outdated
Review

@kamikazechaser please elaborate is there a missing case?

@kamikazechaser please elaborate is there a missing case?
} }
return &okResponse, nil return &okResponse, nil
@ -150,6 +149,7 @@ func (as *AccountService) CreateAccount() (*api.OKResponse, error) {
return nil, err return nil, err
} }
err = json.Unmarshal([]byte(body), &okResponse) err = json.Unmarshal([]byte(body), &okResponse)
if err != nil { if err != nil {
err := json.Unmarshal([]byte(body), &errResponse) err := json.Unmarshal([]byte(body), &errResponse)
if err != nil { if err != nil {
@ -157,7 +157,7 @@ func (as *AccountService) CreateAccount() (*api.OKResponse, error) {
} }
return nil, errors.New(errResponse.Description) return nil, errors.New(errResponse.Description)
} }
if len(okResponse.Result) == EMPTY_RESPONSE { if len(okResponse.Result) == 0 {
return nil, errors.New("Empty api result") return nil, errors.New("Empty api result")
} }
return &okResponse, nil return &okResponse, nil