about summary refs log tree commit diff
path: root/app/controllers/api/v1/statuses_controller.rb
AgeCommit message (Collapse)Author
2022-01-28Fix Sidekiq warnings about JSON serialization (#17381)Claire
* Fix Sidekiq warnings about JSON serialization This occurs on every symbol argument we pass, and every symbol key in hashes, because Sidekiq expects strings instead. See https://github.com/mperham/sidekiq/pull/5071 We do not need to change how workers parse their arguments because this has not changed and we were already converting to symbols adequately or using `with_indifferent_access`. * Set Sidekiq to raise on unsafe arguments in test mode In order to more easily catch issues that would produce warnings in production code.
2020-07-19Fix/14021 behaviour on add or remove toots (#14212)Ariel
* Add toot send by current user at local state after send a new toot Related to #14021 * Decrement toot counter at profile when remove a toot Related to #14021 * Remove semicolon at end of line
2020-05-03Add more tests for ActivityPub controllers (#13585)Eugen Rochko
2020-03-28Fix 404 and 410 API errors being silently discarded in WebUI (#13279)ThibG
* Fix 404 and 410 API errors being silently discarded in WebUI Fixes #13278 * Return more appropriate error when user replies to a deleted toot * Please CodeClimate * Fix 404/410 errors on fetching account timelines & identity proofs * Refactor error handling * Move error message string to statuses.errors
2020-03-08Add specific rate limits for posting and following (#13172)Eugen Rochko
2020-03-06Remove useless `respond_to` calls (#13208)Eugen Rochko
2019-08-22Add soft delete for statuses for instant deletes through API (#11623)Eugen Rochko
* Add soft delete for statuses to allow them to appear instant * Allow reporting soft-deleted statuses and show them in the admin UI * Change index for getting an account's statuses
2019-08-22Fix remote and staff-removed statuses leaving media behind for a day (#11638)Eugen Rochko
The reason for unattaching media instead of removing it is to support delete & redraft functionality, but remote or staff-removed statuses will never be redrafted, so the media should be deleted immediately
2019-07-05Remove deprecated REST API `GET /api/v1/statuses/:id/card` (#11213)Eugen Rochko
2019-05-11Add toot source to delete result to ease Delete & Redraft (#10669)ThibG
* Return Status with raw text in raw_content when deleting a status * Use raw content if available on delete & redraft * Rename raw_content to text; do not serialize formatted content when source is requested
2019-03-03Add polls (#10111)Eugen Rochko
* Add polls Fix #1629 * Add tests * Fixes * Change API for creating polls * Use name instead of content for votes * Remove poll validation for remote polls * Add polls to public pages * When updating the poll, update options just in case they were changed * Fix public pages showing both poll and other media
2019-01-05Add scheduled statuses (#9706)Eugen Rochko
Fix #340
2018-08-19Unuse ActiveRecord::Base#cache_key (#8185)abcang
* Unuse ActiveRecord::Base#cache_key * Enable cache_versioning * Call cache_collection
2018-07-05Add more granular OAuth scopes (#7929)Eugen Rochko
* Add more granular OAuth scopes * Add human-readable descriptions of the new scopes * Ensure new scopes look good on the app UI * Add tests * Group scopes in screen and color-code dangerous ones * Fix wrong extra scope
2018-05-21Remove small pagination limit from context API (#7564)Eugen Rochko
Fix #7557
2018-04-23Paginate descendant statuses in public page (#7148)Akihiko Odaki
2018-04-11Paginate ancestor statuses in public page (#7102)Akihiko Odaki
This also limits the statuses returned by API, but pagination is not implemented in Web API yet. I still expect it brings user experience better than making a user wait to fetch all ancestor statuses and flooding the column with them.
2018-04-02Fix unpermitted parameters warning when generating pagination URLs (#6995)Eugen Rochko
2017-09-01Make PreviewCard records reuseable between statuses (#4642)Eugen Rochko
* Make PreviewCard records reuseable between statuses **Warning!** Migration truncates preview_cards tablec * Allow a wider thumbnail for link preview, display it in horizontal layout (#4648) * Delete preview cards files before truncating * Rename old table instead of truncating it * Add mastodon:maintenance:remove_deprecated_preview_cards * Ignore deprecated_preview_cards in schema definition * Fix null behaviour
2017-07-07Refactor JSON templates to be generated with ActiveModelSerializers instead ↵Eugen Rochko
of Rabl (#4090)
2017-06-10Move create/destroy actions for api/v1/statuses to namespace (#3678)Matt Jankowski
Each of mute, favourite, reblog has been updated to: - Have a separate controller with just a create and destroy action - Preserve historical route names to not break the API - Mild refactoring to break up long methods
2017-06-09Move reblogged_by and favourited_by actions out of api/v1/statuses and into ↵Matt Jankowski
unique controllers (#3646) * Add specs for api statuses routes * Update favourited_by and reblogged_by api routes * Move methods into new controllers * Use load_accounts methods to simplify index actions * Clean up load_accounts methods * Clean up link header generation * Check for link headers in specs * Remove unused actions from api/v1/statuses controller * Remove specs for moved actions
2017-06-07Clean up for api/base controller (#3629)Matt Jankowski
* Move ApiController to Api/BaseController * API controllers inherit from Api::BaseController * Add coverage for various error cases in api/base controller
2017-05-30Add status destroy authorization to policy (#3453)Jack Jennings
* Add status destroy authorization to policy * Create explicit unreblog status authorization
2017-05-29Extract authorization policy for viewing statuses (#3150)Jack Jennings
2017-05-21Fix mutes_controller error and incorrect statuses_controller report (#3202)Akihiko Odaki
This commit fixes a regression in commit f55480756337dd4df7513e89673e81e003f1201a.
2017-05-20Fix regressions in api/v1 (#3178)Akihiko Odaki
The regressions are introduced at commit f55480756337dd4df7513e89673e81e003f1201a by me (Akihiko Odaki)
2017-05-20Use joins for account properties (#3167)Akihiko Odaki
2017-05-15Feature conversations muting (#3017)Eugen Rochko
* Add <ostatus:conversation /> tag to Atom input/output Only uses ref attribute (not href) because href would be the alternate link that's always included also. Creates new conversation for every non-reply status. Carries over conversation for every reply. Keeps remote URIs verbatim, generates local URIs on the fly like the rest of them. * Conversation muting - prevents notifications that reference a conversation (including replies, favourites, reblogs) from being created. API endpoints /api/v1/statuses/:id/mute and /api/v1/statuses/:id/unmute Currently no way to tell when a status/conversation is muted, so the web UI only has a "disable notifications" button, doesn't work as a toggle * Display "Dismiss notifications" on all statuses in notifications column, not just own * Add "muted" as a boolean attribute on statuses JSON For now always false on contained reblogs, since it's only relevant for statuses returned from the notifications endpoint, which are not nested Remove "Disable notifications" from detailed status view, since it's only relevant in the notifications column * Up max class length * Remove pending test for conversation mute * Add tests, clean up * Rename to "mute conversation" and "unmute conversation" * Raise validation error when trying to mute/unmute status without conversation
2017-04-25Fix #2402 - Add Idempotency-Key header to PostStatusService that prevents ↵Eugen Rochko
(#2419) duplicates. Web UI regenerates UUID for that header every time the compose form is changed or successfully submitted Also, fix Farsi i18n overwriting the English one
2017-04-19Simplify render in controllers (#2144)Matt Jankowski
2017-04-18Remove API authentication for public statuses (after review) (#1919)happycoloredbanana
2017-04-17Fix #1897 - Return reblogged: false on unreblog (was wrongly named variable) ↵Eugen
(#1989)
2017-04-08Make public timelines API not require user context/app credentials (#1291)Eugen
* Make /api/v1/timelines/public and /api/v1/timelines/tag/:id public Fix #1156 - respect query params when generating pagination links in API * Apply pagination fix to more APIs
2017-04-04Fix ActionController::Parameters in API issueEugen Rochko
2017-03-30Add counter caches for a large performance increase on API requestsEugen Rochko
2017-02-26Add validation of media attachments, clean up mastodon-own exception classesEugen Rochko
2017-02-19Removed try clause from create action in status controllerRakib Hasan
Using catch statement in api_controller.rb to catch NotPermitted Exception, and render error message
2017-02-19revisted fix for #462Rakib Hasan
Moved validation to services/post_status_service.rb
2017-02-05Removing failed push notification API, make context loads use cacheEugen Rochko
2017-01-25Instead of using spoiler boolean and spoiler_text, simply check for ↵Eugen Rochko
non-blank spoiler_text Federate spoiler_text using warning attribute on <content /> instead of a <category term="spoiler" /> Clean up schema file from accidental development migrations
2017-01-24Merge branch 'master' into masterEugen
2017-01-24API now respects ?limit param as long as it's within 2x default limitEugen Rochko
2017-01-23Implement a click-to-view spoiler systemblackle
2017-01-23Add /api/v1/notifications/clear, non-existing link cards for statuses willEugen Rochko
now return empty hash instead of throwing a 404 error. When following, merge into timeline will filter statuses
2017-01-20Fix #463 - Fetch and display previews of URLs using OpenGraph tagsEugen Rochko
2017-01-19Don't show loading bar when re-loading already loaded status. Don't even try ↵Eugen Rochko
to fetch ancestors from DB when in_reply_to_id is nil
2017-01-15Add tracking of OAuth app that posted a status, extend OAuth apps to have ↵Effy Elden
optional website field, add application details to API, show application name and website on detailed status views. Resolves #11
2016-12-21Private visibility on statuses prevents non-followers from seeing thoseEugen Rochko
Filters out hidden stream entries from Atom feed Blocks now generate hidden stream entries, can be used to federate blocks Private statuses cannot be reblogged (generates generic 422 error for now) POST /api/v1/statuses now takes visibility=(public|unlisted|private) param instead of unlisted boolean Statuses JSON now contains visibility=(public|unlisted|private) field
2016-12-19Make unfavouriting async to prevent timeout errors from leaving orphaned ↵Eugen Rochko
records behind