lob 5.4.6 → 6.0.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CODE_SNIPPETS.md +1871 -0
- data/Gemfile +6 -1
- data/Gemfile.lock +70 -0
- data/LICENSE +21 -0
- data/MIGRATION.md +174 -0
- data/README.md +70 -97
- data/Rakefile +7 -5
- data/__tests__/Api/Address.unit.rb +210 -0
- data/__tests__/Api/BankAccount.unit.rb +244 -0
- data/__tests__/Api/BillingGroup.unit.rb +170 -0
- data/__tests__/Api/Card.unit.rb +183 -0
- data/__tests__/Api/CardOrder.unit.rb +89 -0
- data/__tests__/Api/Check.unit.rb +185 -0
- data/__tests__/Api/IntlAutocompletion.unit.rb +43 -0
- data/__tests__/Api/IntlVerification.unit.rb +71 -0
- data/__tests__/Api/Letter.unit.rb +191 -0
- data/__tests__/Api/Postcard.unit.rb +189 -0
- data/__tests__/Api/Require.unit.rb +21 -0
- data/__tests__/Api/ReverseGeocodeLookup.unit.rb +43 -0
- data/__tests__/Api/SelfMailer.unit.rb +190 -0
- data/__tests__/Api/Template.unit.rb +165 -0
- data/__tests__/Api/TemplateVersion.unit.rb +165 -0
- data/__tests__/Api/UsAutocompletion.unit.rb +42 -0
- data/__tests__/Api/UsVerification.unit.rb +71 -0
- data/__tests__/Api/ZipLookup.unit.rb +42 -0
- data/__tests__/Integration/Address.spec.rb +200 -0
- data/__tests__/Integration/BankAccount.spec.rb +243 -0
- data/__tests__/Integration/BillingGroup.spec.rb +163 -0
- data/__tests__/Integration/Card.spec.rb +198 -0
- data/__tests__/Integration/CardOrder.spec.rb +122 -0
- data/__tests__/Integration/Check.spec.rb +361 -0
- data/__tests__/Integration/IntlAutocompletion.spec.rb +54 -0
- data/__tests__/Integration/IntlVerification.spec.rb +90 -0
- data/__tests__/Integration/Letter.spec.rb +286 -0
- data/__tests__/Integration/Postcard.spec.rb +214 -0
- data/__tests__/Integration/ReverseGeocodeLookup.spec.rb +30 -0
- data/__tests__/Integration/SelfMailer.spec.rb +270 -0
- data/__tests__/Integration/Template.spec.rb +221 -0
- data/__tests__/Integration/TemplateVersion.spec.rb +275 -0
- data/__tests__/Integration/UsAutocompletion.spec.rb +54 -0
- data/__tests__/Integration/UsVerification.spec.rb +102 -0
- data/__tests__/Integration/ZipLookup.spec.rb +29 -0
- data/__tests__/TestFixtures.rb +36 -0
- data/docs/Address.md +52 -0
- data/docs/AddressDeletion.md +22 -0
- data/docs/AddressDomestic.md +40 -0
- data/docs/AddressDomesticExpanded.md +40 -0
- data/docs/AddressEditable.md +40 -0
- data/docs/AddressList.md +28 -0
- data/docs/AddressesApi.md +303 -0
- data/docs/BankAccount.md +44 -0
- data/docs/BankAccountDeletion.md +22 -0
- data/docs/BankAccountList.md +28 -0
- data/docs/BankAccountVerify.md +18 -0
- data/docs/BankAccountWritable.md +28 -0
- data/docs/BankAccountsApi.md +376 -0
- data/docs/BankTypeEnum.md +15 -0
- data/docs/BillingGroup.md +28 -0
- data/docs/BillingGroupEditable.md +20 -0
- data/docs/BillingGroupList.md +26 -0
- data/docs/BillingGroupsApi.md +305 -0
- data/docs/Buckslip.md +60 -0
- data/docs/BuckslipDeletion.md +20 -0
- data/docs/BuckslipEditable.md +24 -0
- data/docs/BuckslipOrder.md +42 -0
- data/docs/BuckslipOrderEditable.md +18 -0
- data/docs/BuckslipOrdersApi.md +157 -0
- data/docs/BuckslipOrdersList.md +26 -0
- data/docs/BuckslipUpdatable.md +22 -0
- data/docs/BuckslipsApi.md +372 -0
- data/docs/BuckslipsList.md +28 -0
- data/docs/BulkError.md +18 -0
- data/docs/BulkErrorProperties.md +20 -0
- data/docs/Campaign.md +52 -0
- data/docs/CampaignCreative.md +42 -0
- data/docs/CampaignDeletion.md +20 -0
- data/docs/CampaignUpdatable.md +36 -0
- data/docs/CampaignWritable.md +36 -0
- data/docs/CampaignsApi.md +376 -0
- data/docs/CampaignsList.md +28 -0
- data/docs/Card.md +54 -0
- data/docs/CardDeletion.md +22 -0
- data/docs/CardEditable.md +24 -0
- data/docs/CardList.md +28 -0
- data/docs/CardOrder.md +42 -0
- data/docs/CardOrderEditable.md +18 -0
- data/docs/CardOrderList.md +26 -0
- data/docs/CardOrdersApi.md +157 -0
- data/docs/CardUpdatable.md +22 -0
- data/docs/CardsApi.md +372 -0
- data/docs/Check.md +68 -0
- data/docs/CheckDeletion.md +22 -0
- data/docs/CheckEditable.md +48 -0
- data/docs/CheckList.md +28 -0
- data/docs/ChecksApi.md +315 -0
- data/docs/CmpScheduleType.md +15 -0
- data/docs/CmpUseType.md +15 -0
- data/docs/CountryExtended.md +15 -0
- data/docs/CountryExtendedExpanded.md +15 -0
- data/docs/CreativePatch.md +22 -0
- data/docs/CreativeResponse.md +42 -0
- data/docs/CreativeWritable.md +34 -0
- data/docs/CreativesApi.md +226 -0
- data/docs/CustomEnvelopeReturned.md +22 -0
- data/docs/DefaultApi.md +75 -0
- data/docs/DeliverabilityAnalysis.md +34 -0
- data/docs/DpvFootnote.md +15 -0
- data/docs/EngineHtml.md +15 -0
- data/docs/EventType.md +24 -0
- data/docs/Events.md +28 -0
- data/docs/Export.md +32 -0
- data/docs/ExportModel.md +18 -0
- data/docs/GeocodeAddresses.md +20 -0
- data/docs/GeocodeComponents.md +20 -0
- data/docs/HTTPValidationError.md +18 -0
- data/docs/IdentityValidation.md +34 -0
- data/docs/IdentityValidationApi.md +78 -0
- data/docs/InlineObject.md +18 -0
- data/docs/IntlAutocompletions.md +20 -0
- data/docs/IntlAutocompletionsApi.md +82 -0
- data/docs/IntlAutocompletionsWritable.md +26 -0
- data/docs/IntlComponents.md +26 -0
- data/docs/IntlSuggestions.md +30 -0
- data/docs/IntlVerification.md +38 -0
- data/docs/IntlVerificationOrError.md +40 -0
- data/docs/IntlVerificationWritable.md +32 -0
- data/docs/IntlVerifications.md +20 -0
- data/docs/IntlVerificationsApi.md +153 -0
- data/docs/IntlVerificationsPayload.md +18 -0
- data/docs/Letter.md +72 -0
- data/docs/LetterCustomEnvelope.md +22 -0
- data/docs/LetterDeletion.md +22 -0
- data/docs/LetterDetailsReturned.md +36 -0
- data/docs/LetterDetailsWritable.md +32 -0
- data/docs/LetterEditable.md +52 -0
- data/docs/LetterList.md +28 -0
- data/docs/LettersApi.md +317 -0
- data/docs/LobConfidenceScore.md +20 -0
- data/docs/LobError.md +22 -0
- data/docs/Location.md +20 -0
- data/docs/LocationAnalysis.md +22 -0
- data/docs/MailType.md +15 -0
- data/docs/MultiLineAddress.md +32 -0
- data/docs/MultipleComponents.md +30 -0
- data/docs/MultipleComponentsIntl.md +30 -0
- data/docs/MultipleComponentsList.md +18 -0
- data/docs/PlaceholderModel.md +28 -0
- data/docs/Postcard.md +60 -0
- data/docs/PostcardDeletion.md +22 -0
- data/docs/PostcardDetailsReturned.md +26 -0
- data/docs/PostcardDetailsWritable.md +20 -0
- data/docs/PostcardEditable.md +40 -0
- data/docs/PostcardList.md +28 -0
- data/docs/PostcardSize.md +15 -0
- data/docs/PostcardsApi.md +317 -0
- data/docs/QrCode.md +30 -0
- data/docs/ReturnEnvelope.md +24 -0
- data/docs/ReverseGeocode.md +22 -0
- data/docs/ReverseGeocodeLookupsApi.md +82 -0
- data/docs/SelfMailer.md +48 -0
- data/docs/SelfMailerDeletion.md +22 -0
- data/docs/SelfMailerEditable.md +38 -0
- data/docs/SelfMailerList.md +28 -0
- data/docs/SelfMailerSize.md +15 -0
- data/docs/SelfMailersApi.md +317 -0
- data/docs/SortBy.md +20 -0
- data/docs/SortBy1.md +20 -0
- data/docs/SortBy2.md +20 -0
- data/docs/SortBy3.md +20 -0
- data/docs/SortByDateModified.md +20 -0
- data/docs/Suggestions.md +26 -0
- data/docs/Template.md +34 -0
- data/docs/TemplateDeletion.md +22 -0
- data/docs/TemplateList.md +28 -0
- data/docs/TemplateUpdate.md +20 -0
- data/docs/TemplateVersion.md +36 -0
- data/docs/TemplateVersionDeletion.md +22 -0
- data/docs/TemplateVersionList.md +28 -0
- data/docs/TemplateVersionUpdatable.md +20 -0
- data/docs/TemplateVersionWritable.md +22 -0
- data/docs/TemplateVersionsApi.md +384 -0
- data/docs/TemplateWritable.md +24 -0
- data/docs/TemplatesApi.md +376 -0
- data/docs/Thumbnail.md +22 -0
- data/docs/TrackingEventCertified.md +34 -0
- data/docs/TrackingEventDetails.md +24 -0
- data/docs/TrackingEventNormal.md +34 -0
- data/docs/Upload.md +44 -0
- data/docs/UploadCreateExport.md +20 -0
- data/docs/UploadFile.md +20 -0
- data/docs/UploadState.md +15 -0
- data/docs/UploadUpdatable.md +20 -0
- data/docs/UploadWritable.md +18 -0
- data/docs/UploadsApi.md +584 -0
- data/docs/UsAutocompletions.md +22 -0
- data/docs/UsAutocompletionsApi.md +78 -0
- data/docs/UsAutocompletionsWritable.md +26 -0
- data/docs/UsComponents.md +68 -0
- data/docs/UsVerification.md +38 -0
- data/docs/UsVerificationOrError.md +40 -0
- data/docs/UsVerifications.md +20 -0
- data/docs/UsVerificationsApi.md +157 -0
- data/docs/UsVerificationsWritable.md +32 -0
- data/docs/ValidationError.md +22 -0
- data/docs/Zip.md +26 -0
- data/docs/ZipCodeType.md +15 -0
- data/docs/ZipEditable.md +18 -0
- data/docs/ZipLookupCity.md +26 -0
- data/docs/ZipLookupsApi.md +78 -0
- data/git_push.sh +57 -0
- data/lib/lob.rb +1 -7
- data/lib/openapi_client/api/addresses_api.rb +318 -0
- data/lib/openapi_client/api/bank_accounts_api.rb +397 -0
- data/lib/openapi_client/api/billing_groups_api.rb +320 -0
- data/lib/openapi_client/api/buckslip_orders_api.rb +183 -0
- data/lib/openapi_client/api/buckslips_api.rb +382 -0
- data/lib/openapi_client/api/campaigns_api.rb +389 -0
- data/lib/openapi_client/api/card_orders_api.rb +183 -0
- data/lib/openapi_client/api/cards_api.rb +382 -0
- data/lib/openapi_client/api/checks_api.rb +337 -0
- data/lib/openapi_client/api/creatives_api.rb +244 -0
- data/lib/openapi_client/api/default_api.rb +79 -0
- data/lib/openapi_client/api/identity_validation_api.rb +90 -0
- data/lib/openapi_client/api/intl_autocompletions_api.rb +97 -0
- data/lib/openapi_client/api/intl_verifications_api.rb +165 -0
- data/lib/openapi_client/api/letters_api.rb +340 -0
- data/lib/openapi_client/api/postcards_api.rb +340 -0
- data/lib/openapi_client/api/reverse_geocode_lookups_api.rb +101 -0
- data/lib/openapi_client/api/self_mailers_api.rb +340 -0
- data/lib/openapi_client/api/template_versions_api.rb +440 -0
- data/lib/openapi_client/api/templates_api.rb +397 -0
- data/lib/openapi_client/api/uploads_api.rb +604 -0
- data/lib/openapi_client/api/us_autocompletions_api.rb +90 -0
- data/lib/openapi_client/api/us_verifications_api.rb +172 -0
- data/lib/openapi_client/api/zip_lookups_api.rb +90 -0
- data/lib/openapi_client/api_client.rb +392 -0
- data/lib/openapi_client/api_error.rb +57 -0
- data/lib/openapi_client/configuration.rb +279 -0
- data/lib/openapi_client/models/address.rb +616 -0
- data/lib/openapi_client/models/address_deletion.rb +303 -0
- data/lib/openapi_client/models/address_domestic.rb +522 -0
- data/lib/openapi_client/models/address_domestic_expanded.rb +521 -0
- data/lib/openapi_client/models/address_editable.rb +503 -0
- data/lib/openapi_client/models/address_list.rb +324 -0
- data/lib/openapi_client/models/bank_account.rb +576 -0
- data/lib/openapi_client/models/bank_account_deletion.rb +303 -0
- data/lib/openapi_client/models/bank_account_list.rb +324 -0
- data/lib/openapi_client/models/bank_account_verify.rb +264 -0
- data/lib/openapi_client/models/bank_account_writable.rb +387 -0
- data/lib/openapi_client/models/bank_type_enum.rb +37 -0
- data/lib/openapi_client/models/billing_group.rb +395 -0
- data/lib/openapi_client/models/billing_group_editable.rb +278 -0
- data/lib/openapi_client/models/billing_group_list.rb +314 -0
- data/lib/openapi_client/models/buckslip.rb +814 -0
- data/lib/openapi_client/models/buckslip_deletion.rb +257 -0
- data/lib/openapi_client/models/buckslip_editable.rb +316 -0
- data/lib/openapi_client/models/buckslip_order.rb +438 -0
- data/lib/openapi_client/models/buckslip_order_editable.rb +262 -0
- data/lib/openapi_client/models/buckslip_orders_list.rb +312 -0
- data/lib/openapi_client/models/buckslip_updatable.rb +289 -0
- data/lib/openapi_client/models/buckslips_list.rb +324 -0
- data/lib/openapi_client/models/bulk_error.rb +229 -0
- data/lib/openapi_client/models/bulk_error_properties.rb +274 -0
- data/lib/openapi_client/models/campaign.rb +549 -0
- data/lib/openapi_client/models/campaign_creative.rb +467 -0
- data/lib/openapi_client/models/campaign_deletion.rb +257 -0
- data/lib/openapi_client/models/campaign_updatable.rb +341 -0
- data/lib/openapi_client/models/campaign_writable.rb +373 -0
- data/lib/openapi_client/models/campaigns_list.rb +324 -0
- data/lib/openapi_client/models/card.rb +681 -0
- data/lib/openapi_client/models/card_deletion.rb +303 -0
- data/lib/openapi_client/models/card_editable.rb +318 -0
- data/lib/openapi_client/models/card_list.rb +324 -0
- data/lib/openapi_client/models/card_order.rb +438 -0
- data/lib/openapi_client/models/card_order_editable.rb +261 -0
- data/lib/openapi_client/models/card_order_list.rb +273 -0
- data/lib/openapi_client/models/card_updatable.rb +289 -0
- data/lib/openapi_client/models/check.rb +812 -0
- data/lib/openapi_client/models/check_deletion.rb +303 -0
- data/lib/openapi_client/models/check_editable.rb +537 -0
- data/lib/openapi_client/models/check_list.rb +324 -0
- data/lib/openapi_client/models/chk_use_type.rb +38 -0
- data/lib/openapi_client/models/cmp_schedule_type.rb +36 -0
- data/lib/openapi_client/models/cmp_use_type.rb +38 -0
- data/lib/openapi_client/models/country_extended.rb +254 -0
- data/lib/openapi_client/models/country_extended_expanded.rb +255 -0
- data/lib/openapi_client/models/creative_patch.rb +274 -0
- data/lib/openapi_client/models/creative_response.rb +444 -0
- data/lib/openapi_client/models/creative_writable.rb +400 -0
- data/lib/openapi_client/models/custom_envelope_returned.rb +319 -0
- data/lib/openapi_client/models/deliverability_analysis.rb +451 -0
- data/lib/openapi_client/models/dpv_footnote.rb +50 -0
- data/lib/openapi_client/models/engine_html.rb +37 -0
- data/lib/openapi_client/models/event_type.rb +325 -0
- data/lib/openapi_client/models/events.rb +365 -0
- data/lib/openapi_client/models/export.rb +422 -0
- data/lib/openapi_client/models/export_model.rb +262 -0
- data/lib/openapi_client/models/geocode_addresses.rb +237 -0
- data/lib/openapi_client/models/geocode_components.rb +291 -0
- data/lib/openapi_client/models/http_validation_error.rb +230 -0
- data/lib/openapi_client/models/identity_validation.rb +460 -0
- data/lib/openapi_client/models/inline_object.rb +229 -0
- data/lib/openapi_client/models/intl_autocompletions.rb +282 -0
- data/lib/openapi_client/models/intl_autocompletions_writable.rb +278 -0
- data/lib/openapi_client/models/intl_components.rb +314 -0
- data/lib/openapi_client/models/intl_suggestions.rb +372 -0
- data/lib/openapi_client/models/intl_verification.rb +463 -0
- data/lib/openapi_client/models/intl_verification_or_error.rb +466 -0
- data/lib/openapi_client/models/intl_verification_writable.rb +388 -0
- data/lib/openapi_client/models/intl_verifications.rb +250 -0
- data/lib/openapi_client/models/intl_verifications_payload.rb +263 -0
- data/lib/openapi_client/models/letter.rb +737 -0
- data/lib/openapi_client/models/letter_custom_envelope.rb +300 -0
- data/lib/openapi_client/models/letter_deletion.rb +303 -0
- data/lib/openapi_client/models/letter_details_returned.rb +393 -0
- data/lib/openapi_client/models/letter_details_writable.rb +390 -0
- data/lib/openapi_client/models/letter_editable.rb +532 -0
- data/lib/openapi_client/models/letter_list.rb +324 -0
- data/lib/openapi_client/models/lob_confidence_score.rb +299 -0
- data/lib/openapi_client/models/lob_error.rb +296 -0
- data/lib/openapi_client/models/location.rb +289 -0
- data/lib/openapi_client/models/location_analysis.rb +305 -0
- data/lib/openapi_client/models/ltr_use_type.rb +38 -0
- data/lib/openapi_client/models/mail_type.rb +37 -0
- data/lib/openapi_client/models/multi_line_address.rb +431 -0
- data/lib/openapi_client/models/multiple_components.rb +405 -0
- data/lib/openapi_client/models/multiple_components_intl.rb +377 -0
- data/lib/openapi_client/models/multiple_components_list.rb +263 -0
- data/lib/openapi_client/models/optional_address_column_mapping.rb +259 -0
- data/lib/openapi_client/models/placeholder_model.rb +273 -0
- data/lib/openapi_client/models/postcard.rb +656 -0
- data/lib/openapi_client/models/postcard_deletion.rb +303 -0
- data/lib/openapi_client/models/postcard_details_returned.rb +321 -0
- data/lib/openapi_client/models/postcard_details_writable.rb +242 -0
- data/lib/openapi_client/models/postcard_editable.rb +393 -0
- data/lib/openapi_client/models/postcard_list.rb +324 -0
- data/lib/openapi_client/models/postcard_size.rb +38 -0
- data/lib/openapi_client/models/psc_use_type.rb +38 -0
- data/lib/openapi_client/models/qr_code.rb +339 -0
- data/lib/openapi_client/models/required_address_column_mapping.rb +285 -0
- data/lib/openapi_client/models/return_envelope.rb +258 -0
- data/lib/openapi_client/models/reverse_geocode.rb +304 -0
- data/lib/openapi_client/models/self_mailer.rb +584 -0
- data/lib/openapi_client/models/self_mailer_deletion.rb +303 -0
- data/lib/openapi_client/models/self_mailer_editable.rb +384 -0
- data/lib/openapi_client/models/self_mailer_list.rb +324 -0
- data/lib/openapi_client/models/self_mailer_size.rb +38 -0
- data/lib/openapi_client/models/sfm_use_type.rb +38 -0
- data/lib/openapi_client/models/sort_by.rb +283 -0
- data/lib/openapi_client/models/sort_by1.rb +283 -0
- data/lib/openapi_client/models/sort_by2.rb +283 -0
- data/lib/openapi_client/models/sort_by3.rb +283 -0
- data/lib/openapi_client/models/sort_by_date_modified.rb +283 -0
- data/lib/openapi_client/models/suggestions.rb +343 -0
- data/lib/openapi_client/models/template.rb +406 -0
- data/lib/openapi_client/models/template_deletion.rb +303 -0
- data/lib/openapi_client/models/template_list.rb +324 -0
- data/lib/openapi_client/models/template_update.rb +272 -0
- data/lib/openapi_client/models/template_version.rb +423 -0
- data/lib/openapi_client/models/template_version_deletion.rb +303 -0
- data/lib/openapi_client/models/template_version_list.rb +324 -0
- data/lib/openapi_client/models/template_version_updatable.rb +257 -0
- data/lib/openapi_client/models/template_version_writable.rb +291 -0
- data/lib/openapi_client/models/template_writable.rb +309 -0
- data/lib/openapi_client/models/thumbnail.rb +300 -0
- data/lib/openapi_client/models/tracking_event_certified.rb +419 -0
- data/lib/openapi_client/models/tracking_event_details.rb +308 -0
- data/lib/openapi_client/models/tracking_event_normal.rb +409 -0
- data/lib/openapi_client/models/upload.rb +498 -0
- data/lib/openapi_client/models/upload_create_export.rb +283 -0
- data/lib/openapi_client/models/upload_file.rb +283 -0
- data/lib/openapi_client/models/upload_state.rb +42 -0
- data/lib/openapi_client/models/upload_updatable.rb +267 -0
- data/lib/openapi_client/models/upload_writable.rb +271 -0
- data/lib/openapi_client/models/uploads_metadata.rb +237 -0
- data/lib/openapi_client/models/us_autocompletions.rb +328 -0
- data/lib/openapi_client/models/us_autocompletions_writable.rb +274 -0
- data/lib/openapi_client/models/us_components.rb +761 -0
- data/lib/openapi_client/models/us_verification.rb +461 -0
- data/lib/openapi_client/models/us_verification_or_error.rb +459 -0
- data/lib/openapi_client/models/us_verifications.rb +250 -0
- data/lib/openapi_client/models/us_verifications_writable.rb +421 -0
- data/lib/openapi_client/models/validation_error.rb +263 -0
- data/lib/openapi_client/models/zip.rb +363 -0
- data/lib/openapi_client/models/zip_code_type.rb +40 -0
- data/lib/openapi_client/models/zip_editable.rb +246 -0
- data/lib/openapi_client/models/zip_lookup_city.rb +331 -0
- data/lib/openapi_client/version.rb +15 -0
- data/lib/openapi_client.rb +212 -0
- data/openapi_client.gemspec +37 -0
- data/spec/api/addresses_api_spec.rb +88 -0
- data/spec/api/bank_accounts_api_spec.rb +101 -0
- data/spec/api/billing_groups_api_spec.rb +89 -0
- data/spec/api/campaigns_api_spec.rb +100 -0
- data/spec/api/card_orders_api_spec.rb +62 -0
- data/spec/api/cards_api_spec.rb +99 -0
- data/spec/api/checks_api_spec.rb +93 -0
- data/spec/api/creatives_api_spec.rb +73 -0
- data/spec/api/default_api_spec.rb +46 -0
- data/spec/api/identity_validation_api_spec.rb +47 -0
- data/spec/api/intl_autocompletions_api_spec.rb +48 -0
- data/spec/api/intl_verifications_api_spec.rb +60 -0
- data/spec/api/letters_api_spec.rb +94 -0
- data/spec/api/postcards_api_spec.rb +94 -0
- data/spec/api/reverse_geocode_lookups_api_spec.rb +48 -0
- data/spec/api/self_mailers_api_spec.rb +94 -0
- data/spec/api/template_versions_api_spec.rb +105 -0
- data/spec/api/templates_api_spec.rb +101 -0
- data/spec/api/uploads_api_spec.rb +135 -0
- data/spec/api/us_autocompletions_api_spec.rb +47 -0
- data/spec/api/us_verifications_api_spec.rb +61 -0
- data/spec/api/zip_lookups_api_spec.rb +47 -0
- data/spec/api_client_spec.rb +226 -0
- data/spec/configuration_spec.rb +42 -0
- data/spec/spec_helper.rb +105 -13
- metadata +450 -214
- data/.github/workflows/forked_tests_job.yml +0 -36
- data/.github/workflows/run_tests_job.yml +0 -32
- data/.github/workflows/update_gem.yml +0 -27
- data/.gitignore +0 -19
- data/CHANGELOG.md +0 -148
- data/CONTRIBUTING.md +0 -19
- data/LICENSE.txt +0 -22
- data/examples/README.md +0 -119
- data/examples/cards.rb +0 -51
- data/examples/checks.rb +0 -49
- data/examples/csv_checks/create_checks.rb +0 -48
- data/examples/csv_checks/input.csv +0 -6
- data/examples/csv_letters/create_letters.rb +0 -41
- data/examples/csv_letters/input.csv +0 -6
- data/examples/csv_letters/letter_template.html +0 -33
- data/examples/csv_postcards/create_postcards.rb +0 -46
- data/examples/csv_postcards/input.csv +0 -7
- data/examples/csv_postcards/postcard_back.html +0 -38
- data/examples/csv_postcards/postcard_front.html +0 -25
- data/examples/csv_verify/input.csv +0 -7
- data/examples/csv_verify/verify.rb +0 -37
- data/examples/letters.rb +0 -73
- data/examples/list_postcards_metadata.rb +0 -94
- data/examples/postcards.rb +0 -87
- data/examples/postcards_idempotent.rb +0 -92
- data/examples/postcards_intl.rb +0 -87
- data/examples/postcards_remote.rb +0 -87
- data/examples/postcards_send_date.rb +0 -97
- data/examples/postcards_template.rb +0 -98
- data/examples/self_mailers.rb +0 -38
- data/lib/lob/client.rb +0 -96
- data/lib/lob/errors/invalid_request_error.rb +0 -4
- data/lib/lob/errors/lob_error.rb +0 -20
- data/lib/lob/resources/address.rb +0 -14
- data/lib/lob/resources/bank_account.rb +0 -30
- data/lib/lob/resources/bulk_intl_verifications.rb +0 -27
- data/lib/lob/resources/bulk_us_verifications.rb +0 -28
- data/lib/lob/resources/card.rb +0 -46
- data/lib/lob/resources/check.rb +0 -14
- data/lib/lob/resources/group.rb +0 -14
- data/lib/lob/resources/groups_member.rb +0 -66
- data/lib/lob/resources/intl_verifications.rb +0 -26
- data/lib/lob/resources/letter.rb +0 -14
- data/lib/lob/resources/postcard.rb +0 -14
- data/lib/lob/resources/resource_base.rb +0 -150
- data/lib/lob/resources/self_mailer.rb +0 -14
- data/lib/lob/resources/us_autocompletions.rb +0 -26
- data/lib/lob/resources/us_reverse_geocode_lookups.rb +0 -26
- data/lib/lob/resources/us_verifications.rb +0 -27
- data/lib/lob/resources/us_zip_lookups.rb +0 -26
- data/lib/lob/version.rb +0 -3
- data/lob.gemspec +0 -31
- data/spec/lob/errors/lob_error_spec.rb +0 -19
- data/spec/lob/resources/address_spec.rb +0 -55
- data/spec/lob/resources/bank_account_spec.rb +0 -60
- data/spec/lob/resources/bulk_intl_verifications_spec.rb +0 -39
- data/spec/lob/resources/bulk_us_verifications_spec.rb +0 -51
- data/spec/lob/resources/card_spec.rb +0 -145
- data/spec/lob/resources/check_spec.rb +0 -119
- data/spec/lob/resources/group_spec.rb +0 -50
- data/spec/lob/resources/intl_verifications_spec.rb +0 -25
- data/spec/lob/resources/letter_spec.rb +0 -114
- data/spec/lob/resources/member_spec.rb +0 -65
- data/spec/lob/resources/postcard_spec.rb +0 -160
- data/spec/lob/resources/resource_base_spec.rb +0 -75
- data/spec/lob/resources/self_mailer_spec.rb +0 -177
- data/spec/lob/resources/us_autocompletions_spec.rb +0 -24
- data/spec/lob/resources/us_reverse_geocode_lookups_spec.rb +0 -22
- data/spec/lob/resources/us_verifications_spec.rb +0 -31
- data/spec/lob/resources/us_zip_lookups_spec.rb +0 -23
- data/spec/lob_spec.rb +0 -48
- data/spec/samples/8.5x11.pdf +0 -0
- data/spec/samples/card.pdf +1 -743
- data/spec/samples/postcardback.pdf +2 -2287
- data/spec/samples/postcardfront.pdf +1 -1549
- data/spec/samples/sfm-12x9-inside.pdf +0 -0
- data/spec/samples/sfm-12x9-outside.pdf +0 -0
- data/spec/samples/sfm-6x18-inside.pdf +0 -0
- data/spec/samples/sfm-6x18-outside.pdf +0 -0
@@ -1,150 +0,0 @@
|
|
1
|
-
require "rest-client"
|
2
|
-
require "json"
|
3
|
-
require "uri"
|
4
|
-
|
5
|
-
module Lob
|
6
|
-
module Resources
|
7
|
-
class ResourceBase
|
8
|
-
|
9
|
-
attr_reader :config, :endpoint
|
10
|
-
|
11
|
-
def initialize(config)
|
12
|
-
@config = config
|
13
|
-
end
|
14
|
-
|
15
|
-
def list(query={})
|
16
|
-
request = {
|
17
|
-
method: :get,
|
18
|
-
url: endpoint_url,
|
19
|
-
query: query
|
20
|
-
}
|
21
|
-
|
22
|
-
submit(request)
|
23
|
-
end
|
24
|
-
|
25
|
-
def find(resource_id)
|
26
|
-
request = {
|
27
|
-
method: :get,
|
28
|
-
url: resource_url(resource_id)
|
29
|
-
}
|
30
|
-
|
31
|
-
submit(request)
|
32
|
-
end
|
33
|
-
|
34
|
-
def create(body={}, headers={}, query={})
|
35
|
-
request = {
|
36
|
-
method: :post,
|
37
|
-
url: endpoint_url,
|
38
|
-
body: body,
|
39
|
-
headers: headers,
|
40
|
-
query: query
|
41
|
-
}
|
42
|
-
|
43
|
-
submit(request)
|
44
|
-
end
|
45
|
-
|
46
|
-
def destroy(resource_id)
|
47
|
-
request = {
|
48
|
-
method: :delete,
|
49
|
-
url: resource_url(resource_id)
|
50
|
-
}
|
51
|
-
|
52
|
-
submit(request)
|
53
|
-
end
|
54
|
-
|
55
|
-
private
|
56
|
-
|
57
|
-
def submit(request)
|
58
|
-
clientVersion = Lob::VERSION
|
59
|
-
|
60
|
-
url = request[:url]
|
61
|
-
method = request[:method]
|
62
|
-
body = request[:body] || {}
|
63
|
-
query = request[:query] || {}
|
64
|
-
headers = request[:headers] || {}
|
65
|
-
|
66
|
-
headers = headers.merge({
|
67
|
-
user_agent: 'Lob/v1 RubyBindings/' + clientVersion,
|
68
|
-
"Lob-Version" => config[:api_version]
|
69
|
-
})
|
70
|
-
|
71
|
-
if query != {}
|
72
|
-
url = "#{url}?#{build_nested_query(query)}"
|
73
|
-
end
|
74
|
-
|
75
|
-
client_params = {
|
76
|
-
headers: headers,
|
77
|
-
method: method,
|
78
|
-
url: url,
|
79
|
-
}
|
80
|
-
|
81
|
-
client_params[:proxy] = config[:proxy] if config.key?(:proxy)
|
82
|
-
|
83
|
-
unless method == :delete || method == :get
|
84
|
-
if body and body[:merge_variables] and body[:merge_variables].class == Hash
|
85
|
-
body[:merge_variables] = body[:merge_variables].to_json
|
86
|
-
end
|
87
|
-
|
88
|
-
client_params[:payload] = body
|
89
|
-
end
|
90
|
-
begin
|
91
|
-
response = RestClient::Request.execute(client_params)
|
92
|
-
|
93
|
-
body = JSON.parse(response)
|
94
|
-
|
95
|
-
body.define_singleton_method(:_response) do
|
96
|
-
response
|
97
|
-
end
|
98
|
-
|
99
|
-
return body
|
100
|
-
|
101
|
-
rescue RestClient::ExceptionWithResponse => e
|
102
|
-
handle_api_error(e)
|
103
|
-
end
|
104
|
-
end
|
105
|
-
|
106
|
-
private
|
107
|
-
|
108
|
-
def handle_api_error(error)
|
109
|
-
begin
|
110
|
-
response = JSON.parse(error.http_body.to_s)
|
111
|
-
message = response.fetch("error").fetch("message")
|
112
|
-
raise InvalidRequestError.new(message, error.http_code, error.http_body, error.response)
|
113
|
-
rescue JSON::ParserError, KeyError
|
114
|
-
# :nocov:
|
115
|
-
raise LobError.new("Invalid response object:", error.http_code, error.http_body)
|
116
|
-
# :nocov:
|
117
|
-
end
|
118
|
-
end
|
119
|
-
|
120
|
-
def build_nested_query(value, prefix = nil)
|
121
|
-
case value
|
122
|
-
when Array
|
123
|
-
value.map { |v|
|
124
|
-
build_nested_query(v, "#{prefix}[]")
|
125
|
-
}.join("&")
|
126
|
-
when Hash
|
127
|
-
value.map { |k, v|
|
128
|
-
build_nested_query(v, prefix ? "#{prefix}[#{URI.encode_www_form_component(k)}]" : URI.encode_www_form_component(k))
|
129
|
-
}.reject(&:empty?).join('&')
|
130
|
-
else
|
131
|
-
raise ArgumentError, "value must be an Array or Hash" if prefix.nil?
|
132
|
-
"#{prefix}=#{URI.encode_www_form_component(value)}"
|
133
|
-
end
|
134
|
-
end
|
135
|
-
|
136
|
-
def base_url
|
137
|
-
"https://#{config[:api_key]}:@api.lob.com/v1"
|
138
|
-
end
|
139
|
-
|
140
|
-
def endpoint_url
|
141
|
-
"#{base_url}/#{endpoint}"
|
142
|
-
end
|
143
|
-
|
144
|
-
def resource_url(resource_id)
|
145
|
-
"#{endpoint_url}/#{resource_id}"
|
146
|
-
end
|
147
|
-
|
148
|
-
end
|
149
|
-
end
|
150
|
-
end
|
@@ -1,26 +0,0 @@
|
|
1
|
-
require "lob/resources/resource_base"
|
2
|
-
|
3
|
-
module Lob
|
4
|
-
module Resources
|
5
|
-
class USAutocompletions < Lob::Resources::ResourceBase
|
6
|
-
|
7
|
-
undef_method :list, :find, :create, :destroy
|
8
|
-
|
9
|
-
def initialize(config)
|
10
|
-
super(config)
|
11
|
-
@endpoint = "us_autocompletions"
|
12
|
-
end
|
13
|
-
|
14
|
-
def autocomplete(body={})
|
15
|
-
request = {
|
16
|
-
method: :post,
|
17
|
-
url: endpoint_url,
|
18
|
-
body: body
|
19
|
-
}
|
20
|
-
|
21
|
-
submit request
|
22
|
-
end
|
23
|
-
|
24
|
-
end
|
25
|
-
end
|
26
|
-
end
|
@@ -1,26 +0,0 @@
|
|
1
|
-
require "lob/resources/resource_base"
|
2
|
-
|
3
|
-
module Lob
|
4
|
-
module Resources
|
5
|
-
class USReverseGeocodeLookups < Lob::Resources::ResourceBase
|
6
|
-
|
7
|
-
undef_method :list, :find, :create, :destroy
|
8
|
-
|
9
|
-
def initialize(config)
|
10
|
-
super(config)
|
11
|
-
@endpoint = "us_reverse_geocode_lookups"
|
12
|
-
end
|
13
|
-
|
14
|
-
def lookup(body={})
|
15
|
-
request = {
|
16
|
-
method: :post,
|
17
|
-
url: endpoint_url,
|
18
|
-
body: body
|
19
|
-
}
|
20
|
-
|
21
|
-
submit request
|
22
|
-
end
|
23
|
-
|
24
|
-
end
|
25
|
-
end
|
26
|
-
end
|
@@ -1,27 +0,0 @@
|
|
1
|
-
require "lob/resources/resource_base"
|
2
|
-
|
3
|
-
module Lob
|
4
|
-
module Resources
|
5
|
-
class USVerifications < Lob::Resources::ResourceBase
|
6
|
-
|
7
|
-
undef_method :list, :find, :create, :destroy
|
8
|
-
|
9
|
-
def initialize(config)
|
10
|
-
super(config)
|
11
|
-
@endpoint = "us_verifications"
|
12
|
-
end
|
13
|
-
|
14
|
-
def verify(body={}, query={})
|
15
|
-
request = {
|
16
|
-
method: :post,
|
17
|
-
url: endpoint_url,
|
18
|
-
body: body,
|
19
|
-
query: query
|
20
|
-
}
|
21
|
-
|
22
|
-
submit request
|
23
|
-
end
|
24
|
-
|
25
|
-
end
|
26
|
-
end
|
27
|
-
end
|
@@ -1,26 +0,0 @@
|
|
1
|
-
require "lob/resources/resource_base"
|
2
|
-
|
3
|
-
module Lob
|
4
|
-
module Resources
|
5
|
-
class USZipLookups < Lob::Resources::ResourceBase
|
6
|
-
|
7
|
-
undef_method :list, :find, :create, :destroy
|
8
|
-
|
9
|
-
def initialize(config)
|
10
|
-
super(config)
|
11
|
-
@endpoint = "us_zip_lookups"
|
12
|
-
end
|
13
|
-
|
14
|
-
def lookup(body={})
|
15
|
-
request = {
|
16
|
-
method: :post,
|
17
|
-
url: endpoint_url,
|
18
|
-
body: body
|
19
|
-
}
|
20
|
-
|
21
|
-
submit request
|
22
|
-
end
|
23
|
-
|
24
|
-
end
|
25
|
-
end
|
26
|
-
end
|
data/lib/lob/version.rb
DELETED
data/lob.gemspec
DELETED
@@ -1,31 +0,0 @@
|
|
1
|
-
# coding: utf-8
|
2
|
-
$:.unshift(File.join(File.dirname(__FILE__), 'lib'))
|
3
|
-
|
4
|
-
require "lob/version"
|
5
|
-
|
6
|
-
Gem::Specification.new do |spec|
|
7
|
-
spec.name = "lob"
|
8
|
-
spec.version = Lob::VERSION
|
9
|
-
spec.authors = ["Lob"]
|
10
|
-
spec.email = ["support@lob.com"]
|
11
|
-
spec.description = %q{Lob API Ruby wrapper}
|
12
|
-
spec.summary = %q{Ruby wrapper for Lob.com API with ActiveRecord-style syntax}
|
13
|
-
spec.homepage = "https://github.com/lob/lob-ruby"
|
14
|
-
spec.license = "MIT"
|
15
|
-
|
16
|
-
spec.files = `git ls-files`.split($/)
|
17
|
-
spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
|
18
|
-
spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
|
19
|
-
spec.require_paths = ["lib"]
|
20
|
-
|
21
|
-
spec.add_dependency "rest-client", ">= 2.0.1", "< 3.0"
|
22
|
-
|
23
|
-
spec.add_development_dependency "rake", "~> 12.3.3"
|
24
|
-
spec.add_development_dependency "minitest", "~> 5.6.1"
|
25
|
-
spec.add_development_dependency "webmock", "~> 1.2"
|
26
|
-
spec.add_development_dependency "simplecov-lcov"
|
27
|
-
spec.add_development_dependency "coveralls_reborn", "~> 0.23.1"
|
28
|
-
spec.add_development_dependency "simplecov", "~> 0.21.0"
|
29
|
-
spec.add_development_dependency "json", "~> 2.3.1"
|
30
|
-
spec.add_development_dependency "uri", "~> 0.10.1"
|
31
|
-
end
|
@@ -1,19 +0,0 @@
|
|
1
|
-
require 'spec_helper'
|
2
|
-
|
3
|
-
describe Lob::LobError do
|
4
|
-
|
5
|
-
describe "#to_s" do
|
6
|
-
it "should return a string with the status code and message" do
|
7
|
-
error = Lob::LobError.new("hello", 404)
|
8
|
-
error.to_s.must_include("(Status 404)")
|
9
|
-
error.to_s.must_include("hello")
|
10
|
-
end
|
11
|
-
|
12
|
-
it "should returna a message without the status code if not provided" do
|
13
|
-
error = Lob::LobError.new("hello")
|
14
|
-
error.to_s.wont_include("Status")
|
15
|
-
error.to_s.must_include("hello")
|
16
|
-
end
|
17
|
-
end
|
18
|
-
|
19
|
-
end
|
@@ -1,55 +0,0 @@
|
|
1
|
-
require "spec_helper"
|
2
|
-
|
3
|
-
describe Lob::Resources::Address do
|
4
|
-
|
5
|
-
before :each do
|
6
|
-
@sample_params = {
|
7
|
-
name: "JOHN DOE",
|
8
|
-
address_line1: "325 BERRY ST",
|
9
|
-
address_city: "SAN FRANCISCO",
|
10
|
-
address_state: "CA",
|
11
|
-
address_country: "US",
|
12
|
-
address_zip: 94158,
|
13
|
-
metadata: {
|
14
|
-
test: 'stuff'
|
15
|
-
}
|
16
|
-
}
|
17
|
-
end
|
18
|
-
|
19
|
-
subject { Lob::Client.new(api_key: API_KEY) }
|
20
|
-
|
21
|
-
describe "list" do
|
22
|
-
it "should list addresses" do
|
23
|
-
assert subject.addresses.list["object"] == "list"
|
24
|
-
end
|
25
|
-
end
|
26
|
-
|
27
|
-
|
28
|
-
describe "create" do
|
29
|
-
it "should create an address" do
|
30
|
-
result = subject.addresses.create @sample_params
|
31
|
-
|
32
|
-
result["name"].must_equal(@sample_params[:name])
|
33
|
-
end
|
34
|
-
end
|
35
|
-
|
36
|
-
|
37
|
-
describe "find" do
|
38
|
-
it "should find an address" do
|
39
|
-
new_address = subject.addresses.create @sample_params
|
40
|
-
|
41
|
-
find_result = subject.addresses.find(new_address["id"])
|
42
|
-
find_result["name"].must_equal(@sample_params[:name])
|
43
|
-
end
|
44
|
-
end
|
45
|
-
|
46
|
-
|
47
|
-
describe "destroy" do
|
48
|
-
it "should delete an address" do
|
49
|
-
new_address = subject.addresses.create @sample_params
|
50
|
-
|
51
|
-
delete_result = subject.addresses.destroy(new_address["id"])
|
52
|
-
assert_equal(new_address["id"], delete_result["id"])
|
53
|
-
end
|
54
|
-
end
|
55
|
-
end
|
@@ -1,60 +0,0 @@
|
|
1
|
-
require "spec_helper"
|
2
|
-
|
3
|
-
describe Lob::Resources::BankAccount do
|
4
|
-
|
5
|
-
before :each do
|
6
|
-
@sample_bank_account_params = {
|
7
|
-
routing_number: "122100024",
|
8
|
-
account_number: "123456789",
|
9
|
-
account_type: "company",
|
10
|
-
signatory: "John Doe"
|
11
|
-
}
|
12
|
-
end
|
13
|
-
|
14
|
-
subject { Lob::Client.new(api_key: API_KEY) }
|
15
|
-
|
16
|
-
describe "list" do
|
17
|
-
it "should list bank accounts" do
|
18
|
-
assert subject.bank_accounts.list["object"] == "list"
|
19
|
-
end
|
20
|
-
end
|
21
|
-
|
22
|
-
|
23
|
-
describe "create" do
|
24
|
-
|
25
|
-
it "should create a bank account" do
|
26
|
-
result = subject.bank_accounts.create(@sample_bank_account_params)
|
27
|
-
|
28
|
-
result["account_number"].must_equal(@sample_bank_account_params[:account_number])
|
29
|
-
end
|
30
|
-
|
31
|
-
end
|
32
|
-
|
33
|
-
|
34
|
-
describe "find" do
|
35
|
-
it "should find a bank account" do
|
36
|
-
new_bank_account = subject.bank_accounts.create(@sample_bank_account_params)
|
37
|
-
|
38
|
-
result = subject.bank_accounts.find(new_bank_account["id"])
|
39
|
-
result["id"].must_equal(new_bank_account["id"])
|
40
|
-
end
|
41
|
-
end
|
42
|
-
|
43
|
-
describe "destroy" do
|
44
|
-
it "should delete a bank_account" do
|
45
|
-
new_bank_account = subject.bank_accounts.create(@sample_bank_account_params)
|
46
|
-
|
47
|
-
delete_result = subject.bank_accounts.destroy(new_bank_account["id"])
|
48
|
-
assert_equal(new_bank_account["id"], delete_result["id"])
|
49
|
-
end
|
50
|
-
end
|
51
|
-
|
52
|
-
describe "verify" do
|
53
|
-
it "should verify a bank account" do
|
54
|
-
new_bank_account = subject.bank_accounts.create(@sample_bank_account_params)
|
55
|
-
|
56
|
-
verify_result = subject.bank_accounts.verify(new_bank_account["id"], amounts: [12, 34])
|
57
|
-
assert_equal(new_bank_account["id"], verify_result["id"])
|
58
|
-
end
|
59
|
-
end
|
60
|
-
end
|
@@ -1,39 +0,0 @@
|
|
1
|
-
require "spec_helper"
|
2
|
-
|
3
|
-
describe Lob::Resources::BulkIntlVerifications do
|
4
|
-
|
5
|
-
before :each do
|
6
|
-
@sample_params = {
|
7
|
-
addresses: [
|
8
|
-
{
|
9
|
-
primary_line: "123 Test St",
|
10
|
-
city: "HEARST",
|
11
|
-
state: "ONTARIO",
|
12
|
-
postal_code: "P0L1N0",
|
13
|
-
country: "CA"
|
14
|
-
},
|
15
|
-
{
|
16
|
-
primary_line: "123 Test St",
|
17
|
-
city: "HEARST",
|
18
|
-
state: "ONTARIO",
|
19
|
-
postal_code: "P0L1N0",
|
20
|
-
country: "CA"
|
21
|
-
}
|
22
|
-
]
|
23
|
-
}
|
24
|
-
end
|
25
|
-
|
26
|
-
subject { Lob::Client.new(api_key: API_KEY) }
|
27
|
-
|
28
|
-
describe "verify" do
|
29
|
-
it "should verify an international address" do
|
30
|
-
result = subject.bulk_intl_verifications.verify @sample_params
|
31
|
-
addresses = result["addresses"]
|
32
|
-
address = addresses.first
|
33
|
-
address["recipient"].must_equal("TEST KEYS DO NOT VERIFY ADDRESSES")
|
34
|
-
address = addresses[1]
|
35
|
-
address["recipient"].must_equal("TEST KEYS DO NOT VERIFY ADDRESSES")
|
36
|
-
end
|
37
|
-
end
|
38
|
-
|
39
|
-
end
|
@@ -1,51 +0,0 @@
|
|
1
|
-
require "spec_helper"
|
2
|
-
|
3
|
-
describe Lob::Resources::BulkUSVerifications do
|
4
|
-
|
5
|
-
before :each do
|
6
|
-
@sample_params = {
|
7
|
-
addresses: [
|
8
|
-
{
|
9
|
-
recipient: "LOB.COM",
|
10
|
-
primary_line: "185 BERRY ST STE 6600",
|
11
|
-
city: "SAN FRANCISCO",
|
12
|
-
state: "CA",
|
13
|
-
zip_code: "94107"
|
14
|
-
},
|
15
|
-
{
|
16
|
-
recipient: "Harry Zhou",
|
17
|
-
primary_line: "325 BERRY ST",
|
18
|
-
city: "SAN FRANCISCO",
|
19
|
-
state: "CA",
|
20
|
-
zip_code: "94107"
|
21
|
-
}
|
22
|
-
]
|
23
|
-
}
|
24
|
-
end
|
25
|
-
|
26
|
-
subject { Lob::Client.new(api_key: API_KEY) }
|
27
|
-
|
28
|
-
describe "verify" do
|
29
|
-
it "should verify a US address" do
|
30
|
-
result = subject.bulk_us_verifications.verify @sample_params
|
31
|
-
addresses = result["addresses"]
|
32
|
-
address = addresses.first
|
33
|
-
address["recipient"].must_equal("TEST KEYS DO NOT VERIFY ADDRESSES")
|
34
|
-
address = addresses[1]
|
35
|
-
address["recipient"].must_equal("TEST KEYS DO NOT VERIFY ADDRESSES")
|
36
|
-
|
37
|
-
|
38
|
-
end
|
39
|
-
|
40
|
-
it "should allow 'case' in query params" do
|
41
|
-
result = subject.bulk_us_verifications.verify @sample_params, {case: "proper"}
|
42
|
-
addresses = result["addresses"]
|
43
|
-
address = addresses.first
|
44
|
-
address["recipient"].must_equal("Test Keys Do Not Verify Addresses")
|
45
|
-
address = addresses[1]
|
46
|
-
address["recipient"].must_equal("Test Keys Do Not Verify Addresses")
|
47
|
-
|
48
|
-
end
|
49
|
-
end
|
50
|
-
|
51
|
-
end
|
@@ -1,145 +0,0 @@
|
|
1
|
-
require "spec_helper"
|
2
|
-
|
3
|
-
describe Lob::Resources::Card do
|
4
|
-
|
5
|
-
before :each do
|
6
|
-
@horizontal_card_url = "https://s3-us-west-2.amazonaws.com/public.lob.com/assets/card_horizontal.pdf"
|
7
|
-
@horizontal_card_front = File.new(File.expand_path("../../../samples/card.pdf", __FILE__))
|
8
|
-
@horizontal_card_back = File.new(File.expand_path("../../../samples/card.pdf", __FILE__))
|
9
|
-
|
10
|
-
@sample_card_params = {
|
11
|
-
description: "Test Card",
|
12
|
-
front: @horizontal_card_url
|
13
|
-
}
|
14
|
-
end
|
15
|
-
|
16
|
-
subject { Lob::Client.new(api_key: API_KEY) }
|
17
|
-
|
18
|
-
describe "list" do
|
19
|
-
it "should list cards" do
|
20
|
-
assert subject.cards.list({ include: ['total_count'] })["object"] == "list"
|
21
|
-
end
|
22
|
-
end
|
23
|
-
|
24
|
-
describe "create" do
|
25
|
-
it "should create a card with a front url" do
|
26
|
-
result = subject.cards.create(@sample_card_params)
|
27
|
-
|
28
|
-
result["description"].must_equal(@sample_card_params[:description])
|
29
|
-
end
|
30
|
-
|
31
|
-
it "should create a card with front and back as urls" do
|
32
|
-
result = subject.cards.create(
|
33
|
-
@sample_card_params.merge(back: @horizontal_card_url)
|
34
|
-
)
|
35
|
-
|
36
|
-
result["description"].must_equal(@sample_card_params[:description])
|
37
|
-
end
|
38
|
-
|
39
|
-
it "should create a card with a front PDF" do
|
40
|
-
result = subject.cards.create(
|
41
|
-
@sample_card_params.merge(front: @horizontal_card_front)
|
42
|
-
)
|
43
|
-
|
44
|
-
result["description"].must_equal(@sample_card_params[:description])
|
45
|
-
end
|
46
|
-
|
47
|
-
it "should create a card with front and back as PDFs" do
|
48
|
-
result = subject.cards.create(
|
49
|
-
@sample_card_params.merge({
|
50
|
-
front: @horizontal_card_front,
|
51
|
-
back: @horizontal_card_back
|
52
|
-
})
|
53
|
-
)
|
54
|
-
|
55
|
-
result["description"].must_equal(@sample_card_params[:description])
|
56
|
-
end
|
57
|
-
|
58
|
-
it "should return an error without a front" do
|
59
|
-
assert_raises Lob::InvalidRequestError do
|
60
|
-
subject.cards.create(
|
61
|
-
@sample_card_params.merge({ front: nil })
|
62
|
-
)
|
63
|
-
end
|
64
|
-
end
|
65
|
-
end
|
66
|
-
|
67
|
-
|
68
|
-
describe "find" do
|
69
|
-
it "should find a card" do
|
70
|
-
new_card = subject.cards.create(
|
71
|
-
@sample_card_params.merge(front: @horizontal_card_front)
|
72
|
-
)
|
73
|
-
|
74
|
-
result = subject.cards.find(new_card["id"])
|
75
|
-
result["description"].must_equal(@sample_card_params[:description])
|
76
|
-
end
|
77
|
-
end
|
78
|
-
|
79
|
-
|
80
|
-
describe "update" do
|
81
|
-
it "should update a card" do
|
82
|
-
new_card = subject.cards.create(
|
83
|
-
@sample_card_params.merge(front: @horizontal_card_front)
|
84
|
-
)
|
85
|
-
|
86
|
-
result = subject.cards.update(
|
87
|
-
new_card["id"],
|
88
|
-
{ description: "Updated card description" }
|
89
|
-
)
|
90
|
-
result["description"].must_equal("Updated card description")
|
91
|
-
end
|
92
|
-
end
|
93
|
-
|
94
|
-
|
95
|
-
describe "destroy" do
|
96
|
-
it "should destroy a card" do
|
97
|
-
new_card = subject.cards.create(
|
98
|
-
@sample_card_params.merge(front: @horizontal_card_front)
|
99
|
-
)
|
100
|
-
|
101
|
-
result = subject.cards.destroy(new_card["id"])
|
102
|
-
result["id"].must_equal(new_card["id"])
|
103
|
-
result["deleted"].must_equal(true)
|
104
|
-
end
|
105
|
-
end
|
106
|
-
|
107
|
-
|
108
|
-
describe "create_order" do
|
109
|
-
it "should create an order for a card" do
|
110
|
-
new_card = subject.cards.create(
|
111
|
-
@sample_card_params.merge(front: @horizontal_card_front)
|
112
|
-
)
|
113
|
-
|
114
|
-
card_order_params = {
|
115
|
-
quantity: 10001
|
116
|
-
}
|
117
|
-
|
118
|
-
result = subject.cards.create_order(new_card["id"], card_order_params)
|
119
|
-
result["card_id"].must_equal(new_card["id"])
|
120
|
-
result["quantity_ordered"].must_equal(card_order_params[:quantity])
|
121
|
-
result["object"].must_equal("card_order")
|
122
|
-
end
|
123
|
-
end
|
124
|
-
|
125
|
-
|
126
|
-
describe "list_orders" do
|
127
|
-
it "should list all orders for a card" do
|
128
|
-
new_card = subject.cards.create(
|
129
|
-
@sample_card_params.merge(front: @horizontal_card_front)
|
130
|
-
)
|
131
|
-
card_order_params = {
|
132
|
-
quantity: 10001
|
133
|
-
}
|
134
|
-
new_card_order = subject.cards.create_order(
|
135
|
-
new_card["id"],
|
136
|
-
card_order_params
|
137
|
-
)
|
138
|
-
|
139
|
-
result = subject.cards.list_orders(new_card["id"])
|
140
|
-
result["object"].must_equal("list")
|
141
|
-
result["count"].must_equal(1)
|
142
|
-
end
|
143
|
-
end
|
144
|
-
|
145
|
-
end
|