Commit Graph

16 Commits (22eb51447d4eaa9b4e68a4678cd699029e65cfe1)

Author SHA1 Message Date
Thibaut Girka 37e746eab6 Merge branch 'master' into glitch-soc/merge-upstream
Conflicts:
- `app/controllers/accounts_controller.rb`:
  Upstream change too close to a glitch-soc change related to
  instance-local toots. Merged upstream changes.
- `app/services/fan_out_on_write_service.rb`:
  Minor conflict due to glitch-soc's handling of Direct Messages,
  merged upstream changes.
- `yarn.lock`:
  Not really a conflict, caused by glitch-soc-only dependencies
  being textually too close to updated upstream dependencies.
  Merged upstream changes.
2020-08-30 16:13:08 +02:00
Akihiko Odaki 1c70d8189c Introduce ApplicationController#cache_collection_paginated_by_id ()
* Replace incorrect use of distinct with group

Some uses of ActiveRecord::QueryMethods#distinct pass field names but they
are incorrect for the current version of Rails.

ActiveRecord::QueryMethods#group provides the expected behavior and
benefits performance. See commit 6da24aad4cafdef8d8a2c92bac2002a5fc2fe9c8.

* Introduce ApplicationController#cache_collection_paginated_by_id

ApplicationController#cache_collection_paginated_by_id fuses
ApplicationController#cache_collection and Paginable.paginate_by_id.

An advantage of this method is that it prevents from modifying scope which
Paginable.paginate_by_id may provide.
ApplicationController#cache_collection always return an array and there
is no possibility of the scope modification. It is also clear for a
programmer, considering the implication of "cache".

This method can also emit more efficient queries by using
Cacheable.cache_ids before calling Paginable.paginate_by_id.
2020-08-28 12:31:56 +02:00
Akihiko Odaki 81666b26a6 Replace incorrect use of distinct with group ()
Some uses of ActiveRecord::QueryMethods#distinct pass field names but they
are incorrect for the current version of Rails.

ActiveRecord::QueryMethods#group provides the expected behavior and
benefits performance. See commit 6da24aad4cafdef8d8a2c92bac2002a5fc2fe9c8.
2020-08-28 12:29:59 +02:00
Thibaut Girka 48bb51075b Fix local-only toots not being returned by the local TL API
Fixes 
2020-07-25 13:25:58 +02:00
Thibaut Girka edd7bd26f6 Add UI option to show local-only toots in public timeline 2020-07-06 21:12:06 +02:00
Takeshi Umeda 861661100c Add remote only to public timeline ()
* Add remote only to public timeline

* Fix code style
2020-05-10 10:36:18 +02:00
Eugen Rochko 9619521459 Remove useless `respond_to` calls () 2020-03-06 01:29:38 +01:00
ThibG 7d2fceae9b Change /api/v1/timelines/public to require auth when public preview is off ()
Fixes 
2019-09-13 16:03:46 +02:00
Eugen Rochko 5ddcdf3753 Support min_id-based pagination in REST API ()
* Allow min_id pagination in Feed#get

* Add min_id pagination to home and list timeline APIs

* Add min_id pagination to account statuses, public and tag APIs

* Remove unused stub in reports API

* Use min_id pagination in notifications, favourites, and fix order

* Fix HomeFeed#from_database not using paginate_by_id
2018-09-28 02:23:45 +02:00
Eugen Rochko 10fc551576 Fix unpermitted parameters warning when generating pagination URLs () 2018-04-02 02:09:50 +02:00
Eugen Rochko 1a6e6a23a9 Add only_media param to public and hashtag timelines API () 2018-03-01 03:21:21 +01:00
Eugen Rochko f410afe59e Ensure that boolean params in the API are parsed for truthiness ()
Use Rails smart boolean cast to account for values such as "f",
"0", "false", etc. Previously, if a param was present in the request,
it would count as true.
2018-03-01 02:47:59 +01:00
Eugen Rochko 20e15ecfb3 Refactor JSON templates to be generated with ActiveModelSerializers instead of Rabl () 2017-07-07 04:02:06 +02:00
Matt Jankowski 76f986d07b Clean up for api/base controller ()
* Move ApiController to Api/BaseController

* API controllers inherit from Api::BaseController

* Add coverage for various error cases in api/base controller
2017-06-07 20:09:25 +02:00
Matt Jankowski b89dbac199 Refactor and spec coverage for api/v1/timelines actions () 2017-05-31 20:27:17 +02:00
Matt Jankowski fecc2c2f47 Refactor of API timeline actions ()
- Increase coverage to exercise all parts of each action
- Move into namespace to share common code
- Misc refactor of each action for smaller methods, simpler code
2017-05-23 18:11:39 +02:00