diff --git a/go/go.mod b/go/go.mod index f602ec0f..e0488c3a 100644 --- a/go/go.mod +++ b/go/go.mod @@ -5,7 +5,7 @@ go 1.22 require ( github.com/gin-gonic/gin v1.10.0 github.com/joho/godotenv v1.5.1 - github.com/plaid/plaid-go/v27 v27.0.0 + github.com/plaid/plaid-go/v31 v31.0.0 ) require ( diff --git a/go/go.sum b/go/go.sum index de40fedd..b7fea352 100644 --- a/go/go.sum +++ b/go/go.sum @@ -226,8 +226,8 @@ github.com/modern-go/reflect2 v1.0.2 h1:xBagoLtFs94CBntxluKeaWgTMpvLxC4ur3nMaC9G github.com/modern-go/reflect2 v1.0.2/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk= github.com/pelletier/go-toml/v2 v2.2.2 h1:aYUidT7k73Pcl9nb2gScu7NSrKCSHIDE89b3+6Wq+LM= github.com/pelletier/go-toml/v2 v2.2.2/go.mod h1:1t835xjRzz80PqgE6HHgN2JOsmgYu/h4qDAS4n929Rs= -github.com/plaid/plaid-go/v27 v27.0.0 h1:Qw08VLcwkndcPSD8abJv/piFM7hePLip30eGBFCx8pY= -github.com/plaid/plaid-go/v27 v27.0.0/go.mod h1:pKlJaLQRFMPPoB041jyAsSeo+uofQ85eazJSToXPpHE= +github.com/plaid/plaid-go/v31 v31.0.0 h1:1ffWhY+AZ8dUN0RiJYLXQKNl1hzfTW/NPYRcGMmXLLM= +github.com/plaid/plaid-go/v31 v31.0.0/go.mod h1:12wSDVT0IqD47PN8nOGP8RMBRmsoXEkLD9MX0pZfEQw= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= diff --git a/go/server.go b/go/server.go index dbe44894..082c3af9 100644 --- a/go/server.go +++ b/go/server.go @@ -15,7 +15,7 @@ import ( "github.com/gin-gonic/gin" "github.com/joho/godotenv" - plaid "github.com/plaid/plaid-go/v27/plaid" + plaid "github.com/plaid/plaid-go/v31/plaid" ) var ( @@ -812,7 +812,8 @@ func getCraBaseReportHandler(c *gin.Context) { return } - pdfRequest := plaid.NewCraCheckReportPDFGetRequest(userToken) + pdfRequest := plaid.NewCraCheckReportPDFGetRequest() + pdfRequest.SetUserToken(userToken) pdfResponse, _, err := client.PlaidApi.CraCheckReportPdfGet(ctx).CraCheckReportPDFGetRequest(*pdfRequest).Execute() if err != nil { renderError(c, err) @@ -837,8 +838,9 @@ func getCraBaseReportHandler(c *gin.Context) { func getCraBaseReportWithRetries(ctx context.Context, userToken string) (*plaid.CraCheckReportBaseReportGetResponse, error) { return pollWithRetries(func() (*plaid.CraCheckReportBaseReportGetResponse, error) { - request := plaid.CraCheckReportBaseReportGetRequest{UserToken: userToken} - response, _, err := client.PlaidApi.CraCheckReportBaseReportGet(ctx).CraCheckReportBaseReportGetRequest(request).Execute() + request := plaid.NewCraCheckReportBaseReportGetRequest() + request.SetUserToken(userToken) + response, _, err := client.PlaidApi.CraCheckReportBaseReportGet(ctx).CraCheckReportBaseReportGetRequest(*request).Execute() return &response, err }, 1000, 20) } @@ -854,7 +856,8 @@ func getCraIncomeInsightsHandler(c *gin.Context) { return } - pdfRequest := plaid.NewCraCheckReportPDFGetRequest(userToken) + pdfRequest := plaid.NewCraCheckReportPDFGetRequest() + pdfRequest.SetUserToken(userToken) pdfRequest.SetAddOns([]plaid.CraPDFAddOns{plaid.CRAPDFADDONS_CRA_INCOME_INSIGHTS}) pdfResponse, _, err := client.PlaidApi.CraCheckReportPdfGet(ctx).CraCheckReportPDFGetRequest(*pdfRequest).Execute() if err != nil { @@ -880,8 +883,9 @@ func getCraIncomeInsightsHandler(c *gin.Context) { func getCraIncomeInsightsWithRetries(ctx context.Context, userToken string) (*plaid.CraCheckReportIncomeInsightsGetResponse, error) { return pollWithRetries(func() (*plaid.CraCheckReportIncomeInsightsGetResponse, error) { - request := plaid.CraCheckReportIncomeInsightsGetRequest{UserToken: userToken} - response, _, err := client.PlaidApi.CraCheckReportIncomeInsightsGet(ctx).CraCheckReportIncomeInsightsGetRequest(request).Execute() + request := plaid.NewCraCheckReportIncomeInsightsGetRequest() + request.SetUserToken(userToken) + response, _, err := client.PlaidApi.CraCheckReportIncomeInsightsGet(ctx).CraCheckReportIncomeInsightsGetRequest(*request).Execute() return &response, err }, 1000, 20) } @@ -903,8 +907,9 @@ func getCraPartnerInsightsHandler(c *gin.Context) { func getCraPartnerInsightsWithRetries(ctx context.Context, userToken string) (*plaid.CraCheckReportPartnerInsightsGetResponse, error) { return pollWithRetries(func() (*plaid.CraCheckReportPartnerInsightsGetResponse, error) { - request := plaid.CraCheckReportPartnerInsightsGetRequest{UserToken: userToken} - response, _, err := client.PlaidApi.CraCheckReportPartnerInsightsGet(ctx).CraCheckReportPartnerInsightsGetRequest(request).Execute() + request := plaid.NewCraCheckReportPartnerInsightsGetRequest() + request.SetUserToken(userToken) + response, _, err := client.PlaidApi.CraCheckReportPartnerInsightsGet(ctx).CraCheckReportPartnerInsightsGetRequest(*request).Execute() return &response, err }, 1000, 20) } diff --git a/java/pom.xml b/java/pom.xml index 59868c01..1268716e 100644 --- a/java/pom.xml +++ b/java/pom.xml @@ -54,7 +54,7 @@ com.plaid plaid-java - 25.0.0 + 29.0.0 javax.xml.bind diff --git a/java/src/main/java/com/plaid/quickstart/resources/ItemResource.java b/java/src/main/java/com/plaid/quickstart/resources/ItemResource.java index edeaf014..4906dc90 100644 --- a/java/src/main/java/com/plaid/quickstart/resources/ItemResource.java +++ b/java/src/main/java/com/plaid/quickstart/resources/ItemResource.java @@ -11,7 +11,7 @@ import com.plaid.client.model.InstitutionsGetByIdRequest; import com.plaid.client.model.InstitutionsGetByIdResponse; import com.plaid.client.model.Institution; -import com.plaid.client.model.Item; +import com.plaid.client.model.ItemWithConsentFields; import com.plaid.quickstart.QuickstartApplication; import javax.ws.rs.GET; @@ -55,12 +55,12 @@ public ItemResponse getItem() throws IOException { public static class ItemResponse { @JsonProperty - public Item item; + public ItemWithConsentFields item; @JsonProperty public Institution institution; - public ItemResponse(Item item, Institution institution) { + public ItemResponse(ItemWithConsentFields item, Institution institution) { this.item = item; this.institution = institution; } diff --git a/java/src/main/java/com/plaid/quickstart/resources/LinkTokenResource.java b/java/src/main/java/com/plaid/quickstart/resources/LinkTokenResource.java index 4aa6a4e5..541da4b7 100644 --- a/java/src/main/java/com/plaid/quickstart/resources/LinkTokenResource.java +++ b/java/src/main/java/com/plaid/quickstart/resources/LinkTokenResource.java @@ -3,7 +3,6 @@ import com.fasterxml.jackson.annotation.JsonProperty; import com.plaid.client.model.ConsumerReportPermissiblePurpose; import com.plaid.client.model.CountryCode; -import com.plaid.client.model.CraCheckReportProduct; import com.plaid.client.model.LinkTokenCreateRequest; import com.plaid.client.model.LinkTokenCreateRequestCraOptions; import com.plaid.client.model.LinkTokenCreateRequestStatements; @@ -86,8 +85,7 @@ public LinkToken(String linkToken) { request.setStatements(statementsConfig); } - List craCheckReportProducts = Arrays.asList(CraCheckReportProduct.values()); - if (craCheckReportProducts.stream().map(CraCheckReportProduct::toString).anyMatch(plaidProducts::contains)) { + if (plaidProducts.stream().anyMatch(product -> product.startsWith("cra_"))) { request.userToken(QuickstartApplication.userToken); request.consumerReportPermissiblePurpose(ConsumerReportPermissiblePurpose.ACCOUNT_REVIEW_CREDIT); LinkTokenCreateRequestCraOptions options = new LinkTokenCreateRequestCraOptions(); diff --git a/java/src/main/java/com/plaid/quickstart/resources/UserTokenResource.java b/java/src/main/java/com/plaid/quickstart/resources/UserTokenResource.java index d20f033d..37c0360a 100644 --- a/java/src/main/java/com/plaid/quickstart/resources/UserTokenResource.java +++ b/java/src/main/java/com/plaid/quickstart/resources/UserTokenResource.java @@ -2,7 +2,6 @@ import com.plaid.client.model.AddressData; import com.plaid.client.model.ConsumerReportUserIdentity; -import com.plaid.client.model.CraCheckReportProduct; import com.plaid.client.model.UserCreateRequest; import com.plaid.client.model.UserCreateResponse; import com.plaid.client.request.PlaidApi; @@ -38,8 +37,7 @@ public UserCreateResponse createUserToken() throws IOException { // Typically, this will be a user ID number from your application. .clientUserId("user_" + UUID.randomUUID()); - List craCheckReportProducts = Arrays.asList(CraCheckReportProduct.values()); - if (craCheckReportProducts.stream().map(CraCheckReportProduct::toString).anyMatch(plaidProducts::contains)) { + if (plaidProducts.stream().anyMatch(product -> product.startsWith("cra_"))) { AddressData addressData = new AddressData() .city("New York") .region("NY") diff --git a/node/index.js b/node/index.js index aa42524a..6ed4911b 100644 --- a/node/index.js +++ b/node/index.js @@ -124,8 +124,7 @@ app.post('/api/create_link_token', function (request, response, next) { configs.statements = statementConfig; } - const craEnumValues = Object.values(CraCheckReportProduct); - if (PLAID_PRODUCTS.some(product => craEnumValues.includes(product))) { + if (PLAID_PRODUCTS.some(product => product.startsWith("cra_"))) { configs.user_token = USER_TOKEN; configs.cra_options = { days_requested: 60 @@ -150,8 +149,7 @@ app.post('/api/create_user_token', function (request, response, next) { client_user_id: 'user_' + uuidv4() } - const craEnumValues = Object.values(CraCheckReportProduct); - if (PLAID_PRODUCTS.some(product => craEnumValues.includes(product))) { + if (PLAID_PRODUCTS.some(product => product.startsWith("cra_"))) { request.consumer_report_user_identity = { first_name: 'Harry', last_name: 'Potter', diff --git a/node/package-lock.json b/node/package-lock.json index dbf6c11b..083a62d6 100644 --- a/node/package-lock.json +++ b/node/package-lock.json @@ -16,7 +16,7 @@ "express": "4.16.x", "moment": "2.22.x", "nodemon": "^2.0.20", - "plaid": "^26.0.0", + "plaid": "^30.0.0", "uuid": "^9.0.0" } }, @@ -715,10 +715,9 @@ } }, "node_modules/plaid": { - "version": "26.0.0", - "resolved": "https://registry.npmjs.org/plaid/-/plaid-26.0.0.tgz", - "integrity": "sha512-idAQTSmLm5C0WieSRBWrkF8ur2T5UGjRja+6/Owl9m9YjlD1PjOkD9A9s+l95sJiIhjWLs7HR9Ti3f06dvnrPg==", - "license": "MIT", + "version": "30.0.0", + "resolved": "https://registry.npmjs.org/plaid/-/plaid-30.0.0.tgz", + "integrity": "sha512-BO6xny2+jtMYFKu3gl3GycA7lFZL6rTIydbADrYXMlrCJlR+MwJy9R7RU8AyxqE6i6UGrojUm30QIGnZtGXCSg==", "dependencies": { "axios": "^1.6.2" }, diff --git a/node/package.json b/node/package.json index 1f4df1af..b999e82b 100644 --- a/node/package.json +++ b/node/package.json @@ -19,7 +19,7 @@ "express": "4.16.x", "moment": "2.22.x", "nodemon": "^2.0.20", - "plaid": "^26.0.0", + "plaid": "^30.0.0", "uuid": "^9.0.0" } } diff --git a/python/requirements.txt b/python/requirements.txt index 4b95f49d..b1d57658 100644 --- a/python/requirements.txt +++ b/python/requirements.txt @@ -1,5 +1,5 @@ Flask==3.0.0 -plaid_python==24.0.0 +plaid_python==28.0.0 python-dotenv==0.15.0 itsdangerous==2.1.2 werkzeug==3.0.1 diff --git a/ruby/Gemfile b/ruby/Gemfile index cd35be06..ee8e1894 100644 --- a/ruby/Gemfile +++ b/ruby/Gemfile @@ -6,6 +6,6 @@ gem 'http' gem "dotenv", "~> 2.7" -gem "plaid", "= 30.0.0" +gem "plaid", "= 34.0.0" gem "webrick" diff --git a/ruby/Gemfile.lock b/ruby/Gemfile.lock index 2c6dbf9d..67eb23f6 100644 --- a/ruby/Gemfile.lock +++ b/ruby/Gemfile.lock @@ -34,7 +34,7 @@ GEM ruby2_keywords (~> 0.0.1) net-http (0.4.1) uri - plaid (30.0.0) + plaid (34.0.0) faraday (>= 1.0.1, < 3.0) faraday-multipart (>= 1.0.1, < 2.0) public_suffix (5.0.1) @@ -61,7 +61,7 @@ PLATFORMS DEPENDENCIES dotenv (~> 2.7) http - plaid (= 30.0.0) + plaid (= 34.0.0) sinatra webrick diff --git a/ruby/app.rb b/ruby/app.rb index dbfbfe95..310ea340 100644 --- a/ruby/app.rb +++ b/ruby/app.rb @@ -491,8 +491,7 @@ ) link_token_create_request.statements=statements end - cra_enum_values = Plaid::CraCheckReportProduct.constants.map { |c| Plaid::CraCheckReportProduct.const_get(c) } - if products.any? { |product| cra_enum_values.include?(product) } + if products.any? { |product| product.start_with?("cra_") } link_token_create_request.cra_options = Plaid::LinkTokenCreateRequestCraOptions.new( days_requested: 60 ) @@ -521,8 +520,7 @@ client_user_id: 'user_' + SecureRandom.uuid } - cra_enum_values = Plaid::CraCheckReportProduct.constants.map { |c| Plaid::CraCheckReportProduct.const_get(c) } - if products.any? { |product| cra_enum_values.include?(product) } + if products.any? { |product| product.start_with?("cra_") } request_data[:consumer_report_user_identity] = { first_name: 'Harry', last_name: 'Potter', diff --git a/ruby/start.sh b/ruby/start.sh index 71ce91d2..739cd5c1 100755 --- a/ruby/start.sh +++ b/ruby/start.sh @@ -1,3 +1,3 @@ #!/usr/bin/env bash -ruby app.rb \ No newline at end of file +bundle exec ruby app.rb \ No newline at end of file