Commit graph

646 commits

Author SHA1 Message Date
Kate Studwell
a7e03c89d6 Disable indented code blocks in markdown renderer (#4438) 2019-11-05 14:15:39 -05:00
Ben Halpern
d34dbae4c2
Add /future redirect (#4724)
* Add /future redirect

* Add check for HONEYCOMB_API_KEY

* Whoops wrong branch
2019-11-05 08:41:25 -05:00
Ben Halpern
628c044f3f
Check for existence of honeycomb before using it (#4725) 2019-11-05 08:38:42 -05:00
Andy Zhao
85d8f52789 Hide a blocked user's content [deploy] (#4678)
* Hide blocked users' content appropriately

* Use RESTful create route

* Update functionality to block the user

* Fix specs for new route

* Use const instead of var

* Add noopener and noreferrer

* Remove caching for blocked user ids

* Add new rule for lack of noopener noreferrer

* Update snapshot
2019-11-04 14:47:26 -05:00
rhymes
0591362756 Use libhoney explicitly and group initializers (#4699) [deploy]
* Use libhoney explicitly and group initializers

* Use Libhoney TestClient during tests

* Use test client for Honeycomb during tests as well
2019-11-04 11:55:04 +00:00
Molly Struve
faaf6e35f1 Create custom HoneycombClient (#4692) [deploy] 2019-11-01 17:11:57 -04:00
Molly Struve
00e3ee811b Use ActiveSupport::Cache::RedisCacheStore As RedisRailsCache (#4676) [deploy] 2019-11-01 12:19:12 -04:00
Molly Struve
dc72b4f1fa Add Honeycomb beeline gem for monitoring and observability (#4649) 2019-10-30 12:02:31 -04:00
Molly Struve
69e35dc1b3 Add Redis gem and Create RedisClient (#4582)
* Add redis gem and client

* use keyword arguments in redis initializer

* check for REDISCLOUD_URL and fallback on REDIS_URL when connecting to redis

* dont parse Redis url in initializer
2019-10-30 10:32:59 -04:00
Ben Halpern
ec6d66018f
Add some html to internal articles and new internal view (#4636)
* Add some html to internal articles and new internal view

* Add check for article existence for buffer updates

* Change arrays to unions
2019-10-28 19:09:24 -04:00
Ryan Palo
4156f1f9de [deploy] Extract DEV specifics to Env variables (#4561)
* [WIP] Extract DEV specifics to Env variables

* [WIP] Fix sendgrid url that I accidentally changed.  Womp.

* Remove extra colon from 'variable' calls

* Trim :// off of app protocol

* Update Envfile TIMBER_LOGS default comment for accuracy

* Add API doc links for each service
2019-10-28 10:29:57 -04:00
rhymes
e31128dcb7 Enforce ruby19_no_mixed_keys Style/HashSyntax (#4588) 2019-10-25 10:27:55 -04:00
rhymes
8989a52aba Strip EXIF and GPS data from uploaded images (#4450)
* Add specs for ArticleImageUploader

* Add specs for BadgeUploader

* Add specs for CoverImageUploader

* Add specs for ProfileImageUploader

* Refactor uploaders to inherit from BaseUploader

* Strip EXIF and GPS data from uploaded images

* Add ImageMagick to the docs

* Protect strip_exif
2019-10-24 16:35:10 -04:00
Andy Zhao
73caa9a864 New Feature: Block Users (#4411)
* Prevent need for eager loading

* Add initial implementation of user block

* Remove debugger oops

* Add index and foreign keys for user_block table

* Use private method instead of exists

* Move channel handling logic to service object

* Update styling a bit

* Use profileDropdown file for future proofing

* Remove commented out code

* Render json: { result } for all endpoints

* Add statuses for sad paths

* Add better sad path handling in the JS

* Remove accidentally committed spec file

* Don't wait for DOM to load block button

* Use equality for accuracy in slug query

* Add status code for unauthorized requests

* Add missing comma sigh
2019-10-23 17:14:28 -04:00
Branko Arnaudovski
efbb108061 Implement Moderators audit logs (#3449) 2019-10-23 10:30:45 -04:00
Akshay Arora
9b5f57db0e Fixed Leave organization not working (#4387) (#4420)
* Fixed Leave organization not working

* Added named route for users_leave_org
2019-10-15 18:04:16 -04:00
rhymes
e461f0d799 Routine rubocop fixes after gem update (#4309)
* Regenerate rubocop todo

* Fix outstanding problems

* Fix Style/FormatStringToken

* Final update to rubocop todo file

* Set RSpec/ExampleLength to max 10 and regenerate todo file
2019-10-10 17:27:01 -04:00
Regina Alyssa
8b4f7faf6b Comment Social Preview (#4260)
* Add route for comment social preview

* Add method comment to social_previews_controller

* Add view for comment social preview

* Fix spacing in meta keywords

* Update comments page keywords

* Create helper for comment social media image

* Use comment social image, add published condition for article social image

* Add tests for comment social preview

* Remove not_found fallback for social previews controller

* Remove cached_tag_list

* Update typos of word 'image' in spec
2019-10-07 10:03:03 -04:00
Jake Wesorick
8cc051e882 Add badges index page. (#4236)
* Add badges index page.

* remove empty style rule.

* Add spec for badges index. Fix case when not logged in.
2019-10-06 17:34:52 -04:00
Allan Klaus
4402cc212c Create tests to PingAdmins (#4169) [ci skip] 2019-10-03 11:18:53 -04:00
rhymes
178e752239 Require rubyzip (#4141) 2019-09-30 10:41:58 -04:00
rhymes
280f314123 Update rubyzip to 1.3.0 to fix vulnerability (#4133) 2019-09-30 09:58:41 -04:00
Anna Buianova
fd1b9868a2 Destroy webhook endpoints when user revokes oaurh app access (#4099)
* Destroy webhook endpoints when user revokes oaurh app access

* Make webhooks destroy on revoke asynchronous
2019-09-26 06:23:38 -04:00
Anna Buianova
9778ada44a Doorkeeper default scope (#4066)
* Start with the doorkeeper scopes

* Added read_articles scope

* Proper doorkeeper authorization for the API articles#me
2019-09-24 11:11:12 -07:00
rhymes
c8abbe9d60 Pro: memberships (#3461)
* Add ProMembership model

* Implement ProMembershipsController#create

* Implement basic ProMembershipsController#show

* Add ProMembership to ledger

* Populate user history after pro subscription is created

* Add fields for expiration notifications

* Add ProMemberships::ExpirationNotifier to notify users of expiring memberships

* Add tasks for recurring jobs to notify users of expiration

* Add auto_recharge column to ProMembership

* Add ProMemberships::Biller (incomplete)

* Fix specs

* Add ProMembership to Administrate

* Fix spec

* Add has_enough_credits? to User and Organization

* Add Payments::Customer class

* Finish ProMembership::Biller functionality

* Fix ProMemberships::Creator check for credits

* Disable destroy actions for ProMembershipsController

* Correctly authenticate ProMembershipsController actions

* Make sure only pro user's history can be indexed

* Add ProMembershipsController#update action for auto recharge

* Use regular AR to save new credits and add touch to the purchaser

* Clarify Pro membership create policy

* Display information about an existing pro membership

* Add UI to show page

* Add system test for Pro membership creation

* Implement edit membership

* Make sure users with pro memberships can access history and dashboard pro

* Fix padding issue

* Show a different text for a user that has credits but not enough for Pro

* Move Pro Membership functionality inside settings

* Update Pro Membership link in email notifications

* Bust all relevant caches

* Add the Pro checkmark around the website

* Use Users::ResaveArticlesJob instead of delay

* Add/remove user from pro-members chat channel

* Use the appropriate Pro checkmark

* Remove unfinished pro elements

* Remove checkmark JS
2019-09-24 10:38:54 -07:00
cyrillefr
70631ad2f7 Listings creation and update API (#4014)
* Listings creation and update API

  - new listings controller
  - refactored code to share core functionnality between api and web controllers
  - code in common in classified listing concerns
  - added tests for index/create/update
  - json output as views
  - updated a factory

* Listings creation and update API: code update

  - refactored json calls
  - added test cases
  - added pagination for list of listings
  - refactored jbuilder files
  - typos

* Listings creation and update API: code update

  - tags and tag_list in controller
  - changed view to display both
  - refactored and added test

* Listings creation and update API: code update

  - small change to resolve conflit

* Listings creation and update API: code update

  - added test case
  - deleted unneeded test case
2019-09-24 07:03:52 -07:00
Mac Siri
6fa8dfd7aa Ignore page_views (#4063) 2019-09-19 09:06:14 -07:00
Anna Buianova
c07eb8d9cd Define Doorkeeper::Application association (#4065) [ci skip] 2019-09-19 10:28:55 -04:00
rhymes
3194c3bacd Generate HTTPS urls (#4059) 2019-09-18 10:42:50 -07:00
Anna Buianova
ce93c436a7 Implement API endpoint for user's webhooks (#4013) 2019-09-17 13:24:44 -04:00
Ben Halpern
d9634150d8
Add new mod links and tooling (#4009)
* Add new mod links and tooling

* Adjust mod page copy, test
2019-09-12 00:11:01 -04:00
Anna Buianova
8d4991f906 Show webhooks list in internal (#3997) 2019-09-10 09:43:21 -04:00
Anna Buianova
4c9a40be41 Dispatch events to the webhook endpoints #3715 (#3872)
* Start with webhooks: table and model

* Start with webhooks api

* Start with webhooks api

* Webhook::Event class and events list

* Remove commented callbacks

* Start with sending events to webhook endpoints

* A couple of tests for Articles::Creator

* Send event to webhook endpoint on article destroy

* Dispatch event on article update

* Dispatch event when an article updated from admin

* Spec for the webhook job

* One more test for the dispatch event job

* Integration-like spec for event dispatching to webhook endpoints when creating an article

* Use Addressable::URI to parse endpoint url

* Add oj as a faster fast_jsonapi backend

* Renamed serializers

* Move article serialization out of a model

* Don't allow to create a webhook event with invalid type

* Add fields for ArticleSerializer

* Fix webhook event job specs

* Specify timeout when dispatching events

* Fix webhook job spec

* Change webhook events queue name

* Change serialized article fields for the dispatchable events

* Include user data when serializing an article for webhook event

* Moved decorating out of Webhook::DispatchEvent, fixed most specs

* Fix route in ArticleSerializer

* Move Article decoration to Webhook::PayloadAdapter

* Refactor image url helpers to avoid including helpers into serializer

* Fix specs

* Default url options for production
2019-09-07 13:17:45 -04:00
Andy Zhao
8a4030c25d Revert changes as a hotfix (#3964) 2019-09-06 11:54:35 -04:00
rhymes
69c8b24c34 Send JSON 404 response to API error routes (#3959)
* Fix an issue where API 404 calls got the HTML 404 page in response

* Use keyword for consistency
2019-09-06 10:18:50 -04:00
rhymes
2e5a847ab8 API: /api/articles/me defaults to published articles (#3937)
* /api/articles/me defaults to published articles

We want to make it explicit to retrieve unpublished articles, this change defaults `/api/articles/me` to only published articles, also adds `/api/articles/me/published`, `/api/articles/me/unpublished` and `/api/articles/me/all` to make requests more explicit.

* Refactor /me logic into a case switch
2019-09-04 14:02:13 -04:00
Jacob Herrington
9e34f81991 Re-sort example Algolia keys (#3886) [ci skip] 2019-09-03 10:20:49 -04:00
Mario See
fda048dc12 Listing Drafts and Deletion (#3540)
* wip init handle draft class and styling

* add draft button

* start splitting up listing row into multile files

* separate tag links

* split location

* fix location

* separate listing row action buttons

* update listing row proptypes to describe listing object

* contact via connect to jsx

* fix default checked

* init draft creation and first publish charge

* fix first publish logic and credit charging

* handle drafts in dashboard filtering

* adjust isDraft bool statement

* hide drafts from main listings feed

* fix expired and draft bools in listing row

* adjust create listing org credits

* internally handle drafts

* adjust listing row

* break down update method

* remove unnecessary logic and shorten lines

* fix logic again woops

* convert input hidden value + submit into one form button submit with corresponding name and value

also adds clear message that drafts do not cost credits

* handle insufficient org credits on first publish

- uses user credits to publish
- similar to bump implementation

* fix sorting for personal and all orgs

* space out some elements

* don't spend original users credit for them

* add delete buttons and delete_confirm and destroy methods

* remove notification removal since listings dont trigger notifications

* move draft message and add draft_params to tests

* Update classified_listings_controller.rb

* update tests

* update snapshot

* add del tests

* add guard preventing free draft publish

* fix draft filter

* update from master and resolve merge conflict in listing preact

* Revert "update from master and resolve merge conflict in listing preact"

This reverts commit 0a34fccf334a2ca0902644b486cb26ead6bef664.

* update column spec

instead of setting and saving

* separate two expectations into their own tests

* split more tests into single expectations

* change to unless bumped_at? instead of if nil

* Fix listing draft edge cases and styling

* Add title tags to listings pages
2019-09-01 13:54:54 -04:00
Anna Buianova
bfdf636dcf Implement webhook & API endpoints #3715 (#3783) 2019-08-29 10:23:41 -04:00
Ben Halpern
208bbb3757
Improve mod roundrobin notification and internal tooling (#3855)
* Improve mod roundrobin notification and internal tooling

* Fix tests
2019-08-27 21:54:09 -04:00
Ben Halpern
cbe599e2eb
Adjust internal page logic and add credits copy to notifications (#3843)
* Adjust internal page logic and add credits copy to notifications

* Adjust badge email copy
2019-08-26 13:41:13 -04:00
Ben Halpern
3443fdf2bd
Create endpoint for liquid tag embed (#3813) 2019-08-23 17:42:04 -04:00
John Curcio
6dbb588d37 Add android and ios apps download page (#3736) (#3798)
* Add android and ios apps download page (#3736)

* Adhere to Rubocob's style guide
2019-08-22 21:04:58 -04:00
Ben Halpern
8b4dc85ee4
Add internal dashboard for growth (#3749) 2019-08-19 09:41:04 -04:00
Andy Zhao
6316ea4b60 Allow admins to undo a tag adjustment (#3653)
* Add ability to delete a tag adjustment

* Fix confirm alert
2019-08-14 09:26:26 -04:00
rhymes
23961b1505 Remove /api/articles/onboarding (#3716) 2019-08-14 09:22:38 -04:00
rhymes
35526bef9b API: OpenAPI 3 spec and auto generated docs (#3650) 2019-08-12 11:36:04 -04:00
Mac Siri
3b32b29937 Update core API endpoints to support access_token (#3644)
* Update specs for doorkeeper test

* Add bang

* Create #authenticate

* Create /api/articles/ endpoint

* Update specs

* Update me.json.jbuilder

* Fix typo and spacing

* Support pagination for #me

* Update #authenticate! to support cookies

* Make per_page a param

* Disable method-complexity check

* Enable refresh_token

* Create /api/users/me endpoint
2019-08-08 15:55:23 -03:00
youmts
4636cccb10 Remove dead CommentsController#new route (#3651) 2019-08-08 11:24:21 -04:00
rhymes
1c2ff71de8 Fix podcasts episodes surrogate key and add "/podcasts" (#3577) 2019-08-01 12:14:25 -04:00