feat(ooapi): add toplevel client and simplify API (#248)

* feat(ooapi): add toplevel client and simplify API

This diff should simplify using ooapi from other packages by
adding more abstraction that wraps the existing code.

Part of https://github.com/ooni/probe/issues/1355.

* fix(ooapi): use correct comment for cloners

See https://github.com/ooni/probe-cli/pull/248#discussion_r590663843

* fix(ooapi): make sure the documentation is current

See https://github.com/ooni/probe-cli/pull/248#discussion_r590665773

* fix(ooapi): automate copying APIs

See https://github.com/ooni/probe-cli/pull/248#discussion_r590665837

* feat(ooapi): add unit tests for clientcall.go

See https://github.com/ooni/probe-cli/pull/248#discussion_r590666297

* fix(ooapi): rewrite integration tests to use toplevel API

See https://github.com/ooni/probe-cli/pull/248#discussion_r590665084
This commit is contained in:
Simone Basso 2021-03-19 09:30:42 +01:00 committed by GitHub
commit 28ce79eff1
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
33 changed files with 2090 additions and 795 deletions

View file

@ -1,5 +1,5 @@
// Code generated by go generate; DO NOT EDIT.
// 2021-02-26 15:45:53.210720456 +0100 CET m=+0.000083649
// 2021-03-10 13:17:35.068399906 +0100 CET m=+0.000095438
package ooapi
@ -14,7 +14,7 @@ import (
"github.com/ooni/probe-cli/v3/internal/engine/ooapi/apimodel"
)
func (api *CheckReportIDAPI) newRequest(ctx context.Context, req *apimodel.CheckReportIDRequest) (*http.Request, error) {
func (api *simpleCheckReportIDAPI) newRequest(ctx context.Context, req *apimodel.CheckReportIDRequest) (*http.Request, error) {
URL, err := url.Parse(api.baseURL())
if err != nil {
return nil, err
@ -29,7 +29,7 @@ func (api *CheckReportIDAPI) newRequest(ctx context.Context, req *apimodel.Check
return api.requestMaker().NewRequest(ctx, "GET", URL.String(), nil)
}
func (api *CheckInAPI) newRequest(ctx context.Context, req *apimodel.CheckInRequest) (*http.Request, error) {
func (api *simpleCheckInAPI) newRequest(ctx context.Context, req *apimodel.CheckInRequest) (*http.Request, error) {
URL, err := url.Parse(api.baseURL())
if err != nil {
return nil, err
@ -47,7 +47,7 @@ func (api *CheckInAPI) newRequest(ctx context.Context, req *apimodel.CheckInRequ
return out, nil
}
func (api *LoginAPI) newRequest(ctx context.Context, req *apimodel.LoginRequest) (*http.Request, error) {
func (api *simpleLoginAPI) newRequest(ctx context.Context, req *apimodel.LoginRequest) (*http.Request, error) {
URL, err := url.Parse(api.baseURL())
if err != nil {
return nil, err
@ -65,7 +65,7 @@ func (api *LoginAPI) newRequest(ctx context.Context, req *apimodel.LoginRequest)
return out, nil
}
func (api *MeasurementMetaAPI) newRequest(ctx context.Context, req *apimodel.MeasurementMetaRequest) (*http.Request, error) {
func (api *simpleMeasurementMetaAPI) newRequest(ctx context.Context, req *apimodel.MeasurementMetaRequest) (*http.Request, error) {
URL, err := url.Parse(api.baseURL())
if err != nil {
return nil, err
@ -86,7 +86,7 @@ func (api *MeasurementMetaAPI) newRequest(ctx context.Context, req *apimodel.Mea
return api.requestMaker().NewRequest(ctx, "GET", URL.String(), nil)
}
func (api *RegisterAPI) newRequest(ctx context.Context, req *apimodel.RegisterRequest) (*http.Request, error) {
func (api *simpleRegisterAPI) newRequest(ctx context.Context, req *apimodel.RegisterRequest) (*http.Request, error) {
URL, err := url.Parse(api.baseURL())
if err != nil {
return nil, err
@ -104,7 +104,7 @@ func (api *RegisterAPI) newRequest(ctx context.Context, req *apimodel.RegisterRe
return out, nil
}
func (api *TestHelpersAPI) newRequest(ctx context.Context, req *apimodel.TestHelpersRequest) (*http.Request, error) {
func (api *simpleTestHelpersAPI) newRequest(ctx context.Context, req *apimodel.TestHelpersRequest) (*http.Request, error) {
URL, err := url.Parse(api.baseURL())
if err != nil {
return nil, err
@ -113,7 +113,7 @@ func (api *TestHelpersAPI) newRequest(ctx context.Context, req *apimodel.TestHel
return api.requestMaker().NewRequest(ctx, "GET", URL.String(), nil)
}
func (api *PsiphonConfigAPI) newRequest(ctx context.Context, req *apimodel.PsiphonConfigRequest) (*http.Request, error) {
func (api *simplePsiphonConfigAPI) newRequest(ctx context.Context, req *apimodel.PsiphonConfigRequest) (*http.Request, error) {
URL, err := url.Parse(api.baseURL())
if err != nil {
return nil, err
@ -122,7 +122,7 @@ func (api *PsiphonConfigAPI) newRequest(ctx context.Context, req *apimodel.Psiph
return api.requestMaker().NewRequest(ctx, "GET", URL.String(), nil)
}
func (api *TorTargetsAPI) newRequest(ctx context.Context, req *apimodel.TorTargetsRequest) (*http.Request, error) {
func (api *simpleTorTargetsAPI) newRequest(ctx context.Context, req *apimodel.TorTargetsRequest) (*http.Request, error) {
URL, err := url.Parse(api.baseURL())
if err != nil {
return nil, err
@ -131,7 +131,7 @@ func (api *TorTargetsAPI) newRequest(ctx context.Context, req *apimodel.TorTarge
return api.requestMaker().NewRequest(ctx, "GET", URL.String(), nil)
}
func (api *URLsAPI) newRequest(ctx context.Context, req *apimodel.URLsRequest) (*http.Request, error) {
func (api *simpleURLsAPI) newRequest(ctx context.Context, req *apimodel.URLsRequest) (*http.Request, error) {
URL, err := url.Parse(api.baseURL())
if err != nil {
return nil, err
@ -151,7 +151,7 @@ func (api *URLsAPI) newRequest(ctx context.Context, req *apimodel.URLsRequest) (
return api.requestMaker().NewRequest(ctx, "GET", URL.String(), nil)
}
func (api *OpenReportAPI) newRequest(ctx context.Context, req *apimodel.OpenReportRequest) (*http.Request, error) {
func (api *simpleOpenReportAPI) newRequest(ctx context.Context, req *apimodel.OpenReportRequest) (*http.Request, error) {
URL, err := url.Parse(api.baseURL())
if err != nil {
return nil, err
@ -169,7 +169,7 @@ func (api *OpenReportAPI) newRequest(ctx context.Context, req *apimodel.OpenRepo
return out, nil
}
func (api *SubmitMeasurementAPI) newRequest(ctx context.Context, req *apimodel.SubmitMeasurementRequest) (*http.Request, error) {
func (api *simpleSubmitMeasurementAPI) newRequest(ctx context.Context, req *apimodel.SubmitMeasurementRequest) (*http.Request, error) {
URL, err := url.Parse(api.baseURL())
if err != nil {
return nil, err