docbrown/app/services
Daniel Uber 0eb4e690ed
Validate payment info present before attempting to process (#15629)
* Add two guards when purchasing credits

This prevents sending an empty card to stripe, and avoids a
foreseeable error when purchasing 0 credits. Error returned from
stripe is "This value must be greater than or equal to 1".

* Move redirect back into action method

Only use validation methods to check input and set appropriate messages.

* Accept organization id if set

The payment service will use the organization id (and charge the
organization) when that's the purchaser. Don't fail when no stripe
token or card selected if an organization admin is purchasing credits.

* Move validation into the payment processing service

This cleans up the number of details the controller needs to worry
about

Now only if the process payment service had any tests...

* Prevent only organization_id from permitting purchase

and move this check to a method, with an intention revealing name

* Add i18n translation for error message

There weren't any service side error messages - this will be displayed
in a view (credits/purchase) but comes from the payment service -
other messages (from stripe) are passed through as-is there.

If this is the wrong _place_ for the translation I can retool.

* Add unit test for payment processing

Only checking errors are raised as expected and the internal error
message is translated.

* Leave translation alone

Revert test translation
2021-12-03 13:09:23 -06:00
..
articles Fixing blank home page for anonymous/visitor (#15665) 2021-12-03 08:32:02 -05:00
audit Rubocop fixes (#11862) 2020-12-11 17:36:42 +03:00
authentication Avoid email reassignment when connecting OAuth provider (#15609) 2021-12-01 09:13:12 -05:00
badges Skip badge awards for spam accounts (#15344) 2021-11-10 10:48:01 -06:00
broadcasts/welcome_notification Bump rubocop-performance from 1.10.2 to 1.11.0 (#13471) 2021-04-22 09:31:25 -05:00
color Remove redundant freeze calls (#14596) 2021-08-26 10:01:08 -04:00
credits Fix app/services' ruby 2.7 kwargs warnings (#13177) 2021-04-01 18:40:50 -04:00
discover Add Forem Discover registration worker and service (#14865) 2021-10-01 10:27:31 -04:00
edge_cache ✂✂✂ Remove events (#15062) 2021-10-15 09:31:08 -04:00
error_messages Remove redundant freeze calls (#14596) 2021-08-26 10:01:08 -04:00
exporter Fix app/services' ruby 2.7 kwargs warnings (#13177) 2021-04-01 18:40:50 -04:00
fastly_config Abstract DatadogStatsClient to ForemStatsClient (#12304) 2021-01-27 11:25:44 -05:00
feeds Use new UserSetting and UserNotificationSettings and Ignore Related User Table Fields (#14121) 2021-07-08 09:31:34 -05:00
follows Fix UI showing "Following" after unfollowing a user (#13757) 2021-05-19 17:40:38 +01:00
giphy Deduplicate giphy_img? function and add tests (#4590) 2019-10-30 11:40:17 -04:00
github Split Settings::Authentication from SiteConfig (#13095) 2021-04-12 09:41:09 +02:00
homepage [Search 2.0] Add query filters for profile, organization and tag index pages (#13510) 2021-04-27 08:49:47 +02:00
html Asynchronously detect image aspect ratios and apply proper attributes (#15170) 2021-10-26 13:39:25 -07:00
images Fix rotation of images uploaded from iPhones (#15010) 2021-10-11 15:17:14 -04:00
loggers Abstract DatadogStatsClient to ForemStatsClient (#12304) 2021-01-27 11:25:44 -05:00
mailchimp Deprecating User#trusted in favor of User#trusted? (#15639) 2021-12-02 08:54:58 -05:00
markdown_processor Remove redundant freeze calls (#14596) 2021-08-26 10:01:08 -04:00
mentions Issue #9077 has already been resolved, added specs (#15342) 2021-11-17 11:27:50 +02:00
moderator Deprecating User#trusted in favor of User#trusted? (#15639) 2021-12-02 08:54:58 -05:00
notification_subscriptions Add Article post_commit when user_id changes with specs (#15132) 2021-10-25 10:53:21 +07:00
notifications views/notifications i18n (#15056) 2021-10-25 15:46:46 +07:00
organizations Organizations delete optimizations and refactoring (#13610) 2021-05-11 12:14:55 +03:00
payments Validate payment info present before attempting to process (#15629) 2021-12-03 13:09:23 -06:00
podcasts views/podcasts, views/podcast_episodes i18n (#15020) 2021-10-25 14:32:51 +01:00
profile_fields Refactor profile refreshing (#14643) 2021-09-13 12:15:04 -04:00
push_notifications Have specs run without Redis and refactor ConsumerApp and Device (#13647) 2021-05-07 08:03:16 +02:00
re_captcha Deprecating User#trusted in favor of User#trusted? (#15639) 2021-12-02 08:54:58 -05:00
search Ensuring reading list excludes unpublished articles (#15490) 2021-11-24 13:22:26 -05:00
secrets Use a sortable unique ID for the event_id (#3972) 2019-09-09 10:15:12 -04:00
settings Disable all providers when providers_to_enable param is blank (#15260) 2021-11-02 21:20:26 -04:00
slack Replacing User#warned with User#warned? (#15628) 2021-12-01 13:14:16 -05:00
spam Refactoring Spam Handler (#15412) 2021-11-30 12:45:12 -05:00
tag_moderators ✂✂✂ Remove Connect (#14734) 2021-11-18 08:21:00 -06:00
twitter_client Split Settings::Authentication from SiteConfig (#13095) 2021-04-12 09:41:09 +02:00
user_subscriptions Fix typo in create_from_controller_params.rb (#15171) 2021-10-25 10:42:40 -07:00
users ✂✂✂ Remove Connect (#14734) 2021-11-18 08:21:00 -06:00
webhook Fix app/services' ruby 2.7 kwargs warnings (#13177) 2021-04-01 18:40:50 -04:00
analytics_service.rb Add counts for number of views when showing referrers (#14600) 2021-08-27 08:03:43 -05:00
application_service.rb [deploy] Refactor 🚀 : Replaced Chat Channel Setting page with Preact component. (#8271) 2020-06-10 16:58:37 -04:00
article_api_index_service.rb Factoring code to define Article.approved (#15600) 2021-12-01 22:45:32 -05:00
article_with_video_creation_service.rb Use new UserSetting and UserNotificationSettings and Ignore Related User Table Fields (#14121) 2021-07-08 09:31:34 -05:00
bulk_sql_delete.rb Remove txn from with_statement_timeout block (#15088) 2021-10-15 14:53:35 -04:00
email_digest.rb Use new UserSetting and UserNotificationSettings and Ignore Related User Table Fields (#14121) 2021-07-08 09:31:34 -05:00
email_digest_article_collector.rb Extracting Article.featured scope (#15612) 2021-12-01 12:16:32 -05:00
feature_flag.rb Updating documentation on FeatureFlag.accessible? (#15492) 2021-11-29 20:25:17 -05:00
flare_tag.rb [Search 2.0] Homepage query (#13339) 2021-04-21 12:41:24 +02:00
instrumentation.rb Instrument EmailDigestArticleCollector (#13153) 2021-03-29 09:33:32 -04:00
medium_article_retrieval_service.rb Fix app/services' ruby 2.7 kwargs warnings (#13177) 2021-04-01 18:40:50 -04:00
notifications.rb Remove notifiable access from articles and comments notifications (#5415) [deploy] 2020-01-09 10:19:45 -05:00
rate_limit_checker.rb Pin posts to feed (#13807) 2021-06-04 10:54:53 +02:00
tag_adjustment_creation_service.rb [deploy] Rubocop: fix violations of Layout/LineLength (#9197) 2020-07-08 08:36:36 -05:00
tag_adjustment_update_service.rb [WIP] Allow mods to remove tags and send user notification (#1252) 2018-12-04 16:45:32 -05:00