From 7bee0714071c06faca34d8961e6728c3274eb598 Mon Sep 17 00:00:00 2001 From: Wallace Soares Date: Fri, 31 Jan 2025 14:57:24 -0300 Subject: [PATCH] Add appVersion for Login, Signup and Payment risk assessments --- incognia.go | 13 +++++++++++++ incognia_test.go | 14 ++++++++++++++ request_types.go | 4 ++++ 3 files changed, 31 insertions(+) diff --git a/incognia.go b/incognia.go index c6539db..236746e 100644 --- a/incognia.go +++ b/incognia.go @@ -9,6 +9,7 @@ import ( "net/http" "runtime" "runtime/debug" + "strings" "time" ) @@ -51,6 +52,8 @@ type Payment struct { InstallationID *string SessionToken *string RequestToken string + AppVersion string + DeviceOs string AccountID string ExternalID string PolicyID string @@ -71,6 +74,8 @@ type Login struct { PolicyID string PaymentMethodIdentifier string Eval *bool + AppVersion string + DeviceOs string CustomProperties map[string]interface{} } @@ -95,6 +100,8 @@ type Signup struct { InstallationID string RequestToken string SessionToken string + AppVersion string + DeviceOs string Address *Address AccountID string PolicyID string @@ -199,6 +206,8 @@ func (c *Client) registerSignup(params *Signup) (ret *SignupAssessment, err erro AccountID: params.AccountID, PolicyID: params.PolicyID, ExternalID: params.ExternalID, + AppVersion: params.AppVersion, + DeviceOs: strings.ToLower(params.DeviceOs), } if params.Address != nil { requestBody.AddressLine = params.Address.AddressLine @@ -316,6 +325,8 @@ func (c *Client) registerPayment(payment *Payment) (ret *TransactionAssessment, Addresses: payment.Addresses, PaymentValue: payment.Value, PaymentMethods: payment.Methods, + AppVersion: payment.AppVersion, + DeviceOs: strings.ToLower(payment.DeviceOs), CustomProperties: payment.CustomProperties, }) if err != nil { @@ -376,6 +387,8 @@ func (c *Client) registerLogin(login *Login) (*TransactionAssessment, error) { PaymentMethodIdentifier: login.PaymentMethodIdentifier, SessionToken: login.SessionToken, RequestToken: login.RequestToken, + AppVersion: login.AppVersion, + DeviceOs: strings.ToLower(login.DeviceOs), CustomProperties: login.CustomProperties, }) if err != nil { diff --git a/incognia_test.go b/incognia_test.go index 252e4d5..a11a251 100644 --- a/incognia_test.go +++ b/incognia_test.go @@ -87,6 +87,8 @@ var ( InstallationID: installationId, RequestToken: requestToken, AddressLine: "address line", + DeviceOs: "ios", + AppVersion: "1.2.3", StructuredAddress: &StructuredAddress{ Locale: "locale", CountryName: "country-name", @@ -183,6 +185,8 @@ var ( InstallationID: &installationId, AccountID: "account-id", ExternalID: "external-id", + DeviceOs: "android", + AppVersion: "1.2.3", PolicyID: "policy-id", Type: paymentType, Coupon: &CouponType{ @@ -296,6 +300,8 @@ var ( AccountID: "account-id", ExternalID: "external-id", PolicyID: "policy-id", + DeviceOs: "android", + AppVersion: "1.2.3", Coupon: &CouponType{ Type: "coupon_type", Value: 55.02, @@ -426,6 +432,8 @@ var ( AccountID: "account-id", ExternalID: "external-id", PolicyID: "policy-id", + DeviceOs: "Android", + AppVersion: "1.2.3", CustomProperties: customProperty, PaymentMethodIdentifier: "payment-method-identifier", } @@ -434,6 +442,8 @@ var ( AccountID: "account-id", ExternalID: "external-id", PolicyID: "policy-id", + DeviceOs: "Android", + AppVersion: "1.2.3", PaymentMethodIdentifier: "payment-method-identifier", Eval: &shouldEval, CustomProperties: customProperty, @@ -456,6 +466,8 @@ var ( InstallationID: &installationId, AccountID: "account-id", ExternalID: "external-id", + DeviceOs: "android", + AppVersion: "1.2.3", PolicyID: "policy-id", PaymentMethodIdentifier: "payment-method-identifier", Type: loginType, @@ -553,6 +565,8 @@ func (suite *IncogniaTestSuite) TestSuccessRegisterSignupWithParams() { InstallationID: postSignupRequestBodyWithAllParamsFixture.InstallationID, RequestToken: postSignupRequestBodyWithAllParamsFixture.RequestToken, SessionToken: postSignupRequestBodyWithAllParamsFixture.SessionToken, + DeviceOs: postSignupRequestBodyWithAllParamsFixture.DeviceOs, + AppVersion: postSignupRequestBodyWithAllParamsFixture.AppVersion, Address: addressFixture, AccountID: postSignupRequestBodyWithAllParamsFixture.AccountID, PolicyID: postSignupRequestBodyWithAllParamsFixture.PolicyID, diff --git a/request_types.go b/request_types.go index 3d1f592..3aebc5d 100644 --- a/request_types.go +++ b/request_types.go @@ -25,6 +25,8 @@ type postAssessmentRequestBody struct { InstallationID string `json:"installation_id,omitempty"` RequestToken string `json:"request_token,omitempty"` SessionToken string `json:"session_token,omitempty"` + AppVersion string `json:"app_version,omitempty"` + DeviceOs string `json:"device_os,omitempty"` AddressLine string `json:"address_line,omitempty"` StructuredAddress *StructuredAddress `json:"structured_address,omitempty"` Coordinates *Coordinates `json:"address_coordinates,omitempty"` @@ -144,6 +146,8 @@ type PaymentMethod struct { type postTransactionRequestBody struct { ExternalID string `json:"external_id,omitempty"` PolicyID string `json:"policy_id,omitempty"` + AppVersion string `json:"app_version,omitempty"` + DeviceOs string `json:"device_os,omitempty"` Coupon *CouponType `json:"coupon,omitempty"` InstallationID *string `json:"installation_id,omitempty"` PaymentMethodIdentifier string `json:"payment_method_identifier,omitempty"`