* Add email to the users api if display_public_email_on_profile is set to true
* Fixed selected user fields in the api
* A separate partial for user data with email (for the api)
* Refactor API user suspend, make room for more roles
* Handle adding limited
* Handle remove limited
* And swagger docs
* Update & refactor roles spec
* Remove old route
* Remove old specs
* define api routes and create controllers, sketch out index and create actions
* add api v1 organizations CRUD spec and docs spec, need to run swagger
* swagger dry run on admin organizations routes, typo fix in api.rb
* flesh out specs and sketch out admin actions
* move actions out of concerns/include pattern and into v1 inline
* remove private constant call
* add v1 accept header to doc spec, fix syntax in a before block
* update controllers to address failing specs
* simplify controller and clarify route config
* flesh out tests for errors
* fix long line
* add missing commas
* return username show route to v0 concern controller
* create separate show route and action name, remove nesting from create/update params requirement
* clean up syntax in controller params and update show path in specs; move routes
* fix up syntax in params permit
* create organization in index spec
* one more syntax tweak for org params
* refactoring to one show route that handles username or id
* tweak spec syntax to expect the right array
* tweak controller and specs, simplify routing to show
* remove create route, action, and specs from this branch
* add clarifying comment in show controller action
* add explicit not found return to show route
* fix controller formatting causing 404 errors
* remove comment, update specs
* remove commment and fix id show response and specs
* fix show route and request spec for username param
* update unauthorized user specs to use put for now instead of post, regenerate swagger docs
* adjust update 422 spec to break org validity
* fix admin update spec, rerun swagger
* reorganiza controller actions, update specs, ensure authorized update and delete
* improve spec, handle finding one org more gracefully, delete via worker
* copy routes into api namespace instead of moving them from general namespace
* update param in v0 show route to fit more general naming
* regenerate v1 swagger docs
* use profile image url getter in update controller response
* update swagger docs and remove unneeded comment from org' model
* configure organizations destroy action for super admins only (for now)
* Prepare: relocate user suggestions
* Prepare: relocate users suggestion service -> query
* Organization query for orgs with above-average scores
* Rubocop
* Limit to last 3 weeks
* Tweak recent scope, limit to 5 orgs
* Onboarding routes are also always JSON
* Divide by zero makes NaN means
* Add Orgs suggester into suggestions
* Rubocop
* select distinct orgs
* Fix for weird edge-case with bad local data
* Include type_identifier in JSON payload
* Update follows API to allow org_ids as input
* Update onboarding front-end to distinguish users/orgs
* Fix: i18n issues
* Fix: type_identifier in json output
* Fix: distinct is weird
* Fix: JS linter
* Continue tweaking front-end
* Audit import order
* Cleanup @todo note
* Try renaming controller action
* Move Article average calculation to postgres and fix math
* Refactor decorated type_identifier
* Refactor SuggestProminent, return more orgs, fix spec math
* Use FeatureFlag for organization suggestions
* This might fix the jest
* feat: add the ./wellknown/ai-plugin.json file
* feat: add a logo
* feat: firts attempt at open_api file with endpoint we thought we'd use
* feat: add a search action to teh articles controller that build up teh appropriate json
* feat: add a query param to the article index
* feat: add some chatgpt endpoints and file paths to CORS
* feat: update the openapi yml file to reflect the article search endpoint
* fix: use the correct concept
* feat: replace the logo
* feat: update the ai-json file
* feat: update the openapi file
* feat: update the api and it's params
* feat: update the search query
* fix: ordering
* feat: cors debug
* fix: logic with markdown
* chore: fix test
* spec: article
* spec: article
* spec: article
* Update public/.well-known/ai-plugin.json
* Update public/openapi.yml
---------
Co-authored-by: Ben Halpern <bendhalpern@gmail.com>
* Moved a comment about soft delete from controller to the service
* Create a note when unpublishing all users' articles via api
* Create a note with the default text when unpublishing all via api, added docs
* Moved logging and deleting comments to Moderator::UnpublishAllArticlesWorker
* Added logging for admin action (unpublish_all_articles)
* Extracted code from UnpublishAllArticlesWorker to the service
* Make it possible to add a note while unpublishing all via admin action
* Added ability to add notes for unpublishing all from moderator action panel
* Fixed setting slug for the AuditLog on unpublishing + spec
* add ENV["API_PER_PAGE_LIMIT"]
* cast to int
* add private_constant PER_PAGE_MAX
* use 1000 int
* typo
* use reduced count for ListingsController
* typo
* set max/default in ArticleApiIndexService
* update initializer in ArticleApiIndexService
* Update app/controllers/concerns/api/articles_controller.rb
Co-authored-by: Fernando Valverde <fernando@visualcosita.com>
* Apply suggestions from code review
Co-authored-by: Fernando Valverde <fernando@visualcosita.com>
* update API docs
Co-authored-by: Fernando Valverde <fernando@visualcosita.com>
* Add missing action of comment deletion in unpublish api
* reorganize controller action + inline comments
* Improve spec to check for AuditLog integrity
* First commit for audit log - specs need fixing
* Fix notification subscription issues + specs
* Use single line in notification subscribe initializer
* Remove conditional in unpublish endpoint
* New suspend user API endpoint
* Restrict admin access only to suspend action
* Add suspended? check on new endpoint spec
* Replace POST with PUT action
* Replace redundant response payload with empty 200 response
* Rely on user_policy instead of before_action method
* Use alias with matching method name instead of unpublish
* Use already existing toggle_suspension_status? method in policy
* Remove manual creation of note
* Update suspend success spec
* unpublish comments+articles by user id in API v1
* Update spec/requests/api/v1/users_spec.rb
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
* Rely on user_policy instead of before_action method
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>