Skip to content

Commit

Permalink
feat!: remove GetSignupAssessment
Browse files Browse the repository at this point in the history
The endpoint represented by this method was discontinued.
  • Loading branch information
figueredo committed Jul 19, 2024
1 parent 68901ac commit d2eef81
Show file tree
Hide file tree
Showing 3 changed files with 2 additions and 135 deletions.
9 changes: 0 additions & 9 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -138,15 +138,6 @@ assessment, err := client.RegisterSignupWithParams(&incognia.Signup{
})
```

### Getting a Signup

This method allows you to query the latest assessment for a given signup event, returning a `SignupAssessment`, containing the risk assessment and supporting evidence:

```go
signupID := "c9ac2803-c868-4b7a-8323-8a6b96298ebe"
assessment, err := client.GetSignupAssessment(signupID)
```

### Registering Payment

This method registers a new payment for the given installation and account, returning a `TransactionAssessment`, containing the risk assessment and supporting evidence.
Expand Down
31 changes: 0 additions & 31 deletions incognia.go
Original file line number Diff line number Diff line change
Expand Up @@ -140,37 +140,6 @@ func New(config *IncogniaClientConfig) (*Client, error) {
return &Client{clientID: config.ClientID, clientSecret: config.ClientSecret, tokenProvider: tokenProvider, netClient: netClient, endpoints: &endpoints}, nil
}

func (c *Client) GetSignupAssessment(signupID string) (ret *SignupAssessment, err error) {
defer func() {
if r := recover(); r != nil {
err = fmt.Errorf("%v", r)
ret = nil
}
}()

return c.getSignupAssessment(signupID)
}

func (c *Client) getSignupAssessment(signupID string) (ret *SignupAssessment, err error) {
if signupID == "" {
return nil, ErrMissingSignupID
}

req, err := http.NewRequest("GET", fmt.Sprintf("%s/%s", c.endpoints.Signups, signupID), nil)
if err != nil {
return nil, err
}

var signupAssessment SignupAssessment

err = c.doRequest(req, &signupAssessment)
if err != nil {
return nil, err
}

return &signupAssessment, nil
}

func (c *Client) RegisterSignup(installationID string, address *Address) (ret *SignupAssessment, err error) {
defer func() {
if r := recover(); r != nil {
Expand Down
97 changes: 2 additions & 95 deletions incognia_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -463,10 +463,7 @@ func (suite *IncogniaTestSuite) TestManualRefreshTokenProviderErrorTokenNotFound
tokenProvider := NewManualRefreshTokenProvider(NewTokenClient(&TokenClientConfig{ClientID: clientID, ClientSecret: clientSecret}))
client, _ := New(&IncogniaClientConfig{ClientID: clientID, ClientSecret: clientSecret, TokenProvider: tokenProvider})

_, err := client.GetSignupAssessment("any-signup-id")
suite.EqualError(err, ErrTokenNotFound.Error())

_, err = client.RegisterLogin(loginFixture)
_, err := client.RegisterLogin(loginFixture)
suite.EqualError(err, ErrTokenNotFound.Error())

_, err = client.RegisterPayment(paymentFixture)
Expand All @@ -487,16 +484,10 @@ func (suite *IncogniaTestSuite) TestManualRefreshTokenProviderSuccess() {
tokenProvider.Refresh()

suite.client = client
signupID := "signup-id"

signupServer := suite.mockGetSignupsEndpoint(token, signupID, signupAssessmentFixture)
defer signupServer.Close()
_, err := client.GetSignupAssessment(signupID)
suite.NoError(err)

loginServer := suite.mockPostTransactionsEndpoint(token, postLoginRequestBodyFixture, transactionAssessmentFixture, emptyQueryString)
defer loginServer.Close()
_, err = client.RegisterLogin(loginFixture)
_, err := client.RegisterLogin(loginFixture)
suite.NoError(err)

paymentServer := suite.mockPostTransactionsEndpoint(token, postPaymentRequestBodyFixture, transactionAssessmentFixture, emptyQueryString)
Expand All @@ -510,60 +501,6 @@ func (suite *IncogniaTestSuite) TestManualRefreshTokenProviderSuccess() {
suite.NoError(err)
}

func (suite *IncogniaTestSuite) TestSuccessGetSignupAssessment() {
signupID := "signup-id"
signupServer := suite.mockGetSignupsEndpoint(token, signupID, signupAssessmentFixture)
defer signupServer.Close()

response, err := suite.client.GetSignupAssessment(signupID)
suite.NoError(err)
suite.Equal(signupAssessmentFixture, response)
}

func (suite *IncogniaTestSuite) TestSuccessGetSignupAssessmentAfterTokenExpiration() {
signupID := "signup-id"
signupServer := suite.mockGetSignupsEndpoint(token, signupID, signupAssessmentFixture)
defer signupServer.Close()

response, err := suite.client.GetSignupAssessment(signupID)
suite.NoError(err)
suite.Equal(signupAssessmentFixture, response)

token, _ := suite.client.tokenProvider.GetToken()
token.(*accessToken).ExpiresIn = 0

response, err = suite.client.GetSignupAssessment(signupID)
suite.NoError(err)
suite.Equal(signupAssessmentFixture, response)
}
func (suite *IncogniaTestSuite) TestGetSignupAssessmentEmptySignupId() {
response, err := suite.client.GetSignupAssessment("")
suite.EqualError(err, ErrMissingSignupID.Error())
suite.Nil(response)
}

func (suite *IncogniaTestSuite) TestForbiddenGetSignupAssessment() {
signupID := "signup-id"
signupServer := suite.mockGetSignupsEndpoint("some-other-token", signupID, signupAssessmentFixture)
defer signupServer.Close()

response, err := suite.client.GetSignupAssessment(signupID)
suite.Nil(response)
suite.EqualError(err, "403 Forbidden")
}

func (suite *IncogniaTestSuite) TestGetSignupAssessmentErrors() {
errors := []int{http.StatusBadRequest, http.StatusInternalServerError}
for _, status := range errors {
statusServer := mockStatusServer(status)
suite.client.endpoints.Signups = statusServer.URL

response, err := suite.client.GetSignupAssessment("any-signup-id")
suite.Nil(response)
suite.Contains(err.Error(), strconv.Itoa(status))
}
}

func (suite *IncogniaTestSuite) TestSuccessRegisterSignupWithParams() {
signupServer := suite.mockPostSignupsEndpoint(token, postSignupRequestBodyWithAllParamsFixture, signupAssessmentFixture)
defer signupServer.Close()
Expand Down Expand Up @@ -963,8 +900,6 @@ func (suite *IncogniaTestSuite) TestPanic() {
suite.Equal(err.Error(), panicString)
_, err = suite.client.RegisterSignup("some-installationId", addressFixture)
suite.Equal(err.Error(), panicString)
_, err = suite.client.GetSignupAssessment("some-signup-id")
suite.Equal(err.Error(), panicString)
_, err = suite.client.RegisterPayment(paymentFixture)
suite.Equal(err.Error(), panicString)
}
Expand Down Expand Up @@ -1080,34 +1015,6 @@ func (suite *IncogniaTestSuite) mockPostSignupsEndpoint(expectedToken string, ex
return signupsServer
}

func (suite *IncogniaTestSuite) mockGetSignupsEndpoint(expectedToken, expectedSignupID string, expectedResponse *SignupAssessment) *httptest.Server {
getSignupsServer := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
w.Header().Set("content-type", "application/json")

if !isRequestAuthorized(r, expectedToken) {
w.WriteHeader(http.StatusForbidden)
return
}

defer r.Body.Close()

splitUrl := strings.Split(r.URL.RequestURI(), "/")
requestSignupID := splitUrl[len(splitUrl)-1]

if requestSignupID == expectedSignupID {
res, _ := json.Marshal(expectedResponse)
w.Write(res)
return
}

w.WriteHeader(http.StatusNotFound)
}))

suite.client.endpoints.Signups = getSignupsServer.URL

return getSignupsServer
}

func isRequestAuthorized(request *http.Request, expectedToken string) bool {
tokenType, token := readAuthorizationHeader(request)

Expand Down

0 comments on commit d2eef81

Please sign in to comment.