Add endpoint /candidates/totals/aggregates/ #5090
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Summary (required)
This new endpoint
/candidates/totals/aggregates/
will consolidate other /candidates/totals/by_xxxx endpoints.With passing parameters:
Page One (three endpoint call)
![P1_HS_overview_page_org](https://user-images.githubusercontent.com/24395751/160323274-bfae5e9e-78cf-46d6-8783-586937fc668c.png)
1)aggregate_by=office; office=H; election_year=2022
sample endpoint url:
/candidates/totals/aggregates/?aggregate_by=office&election_year=2022&election_full=true&is_active_candidate=true&per_page=100&office=H
local url:
http://127.0.0.1:5000/v1/candidates/totals/aggregates/?aggregate_by=office&election_year=2022&election_full=true&is_active_candidate=true&per_page=100&office=H
2)aggregate_by=office-party; office=H; election_year=2022
sample endpoint url:
/candidates/totals/aggregates/?aggregate_by=office-party&election_year=2022&election_full=true&is_active_candidate=true&per_page=100&office=H
local url:
http://127.0.0.1:5000/v1/candidates/totals/aggregates/?aggregate_by=office-party&election_year=2022&election_full=true&is_active_candidate=true&per_page=100&office=H
3)aggregate_by=office; office=H; min_election_cycle; max_election_cycle
sample endpoint url:
/candidates/totals/aggregates/?aggregate_by=office&min_election_cycle=2018&max_election_cycle=2022&election_full=true&is_active_candidate=true&per_page=100&office=H
local url
http://127.0.0.1:5000/v1/candidates/totals/aggregates/?aggregate_by=office&min_election_cycle=2018&max_election_cycle=2022&election_full=true&is_active_candidate=true&per_page=100&office=H
Page Two (two endpoint call)
![P2_tree_map](https://user-images.githubusercontent.com/24395751/160324351-f07b47f9-f642-4070-abf8-c800a77bb5ef.png)
1)aggregate_by=office-state; office=H; election_year=2022
sample endpoint url:
/candidates/totals/aggregates/?aggregate_by=office-state&election_year=2022&election_full=true&is_active_candidate=true&per_page=100&office=H
local url:
http://127.0.0.1:5000/v1/candidates/totals/aggregates/?aggregate_by=office-state&election_year=2022&election_full=true&is_active_candidate=true&per_page=100&office=H
2)aggregate_by=office-state-district; office=H; election_year=2022; state=CA
sample endpoint url:
/candidates/totals/aggregates/?aggregate_by=office-state-district&election_year=2022&election_full=true&is_active_candidate=true&per_page=100&office=H&state=CA
local url:
http://127.0.0.1:5000/v1/candidates/totals/aggregates/?aggregate_by=office-state-district&election_year=2022&election_full=true&is_active_candidate=true&per_page=100&office=H&state=CA
Page Three (one endpoint call)
![P3_state_district_table](https://user-images.githubusercontent.com/24395751/160324713-9eb7b7e7-e9dc-4f8a-8b6c-ddd16d4e0f7f.png)
1)aggregate_by=office-state-district; election_year=2022; office=H
sample endpoint url:
/candidates/totals/aggregates/?aggregate_by=office-state-district&election_year=2022&election_full=true&is_active_candidate=true&per_page=100&office=H
local url
http://127.0.0.1:5000/v1/candidates/totals/aggregates/?aggregate_by=office-state-district&election_year=2022&election_full=true&is_active_candidate=true&per_page=100&office=H
Required reviewers
1-2 devs
Impacted areas of the application
/candidate/total/by_office/
/candidate/total/by_office/by_party/
How to test
pytest
1)no aggregate_by, no election_year
http://127.0.0.1:5000/v1/candidates/totals/aggregates/?election_full=true&per_page=100
(2)aggregate_by=office
http://127.0.0.1:5000/v1/candidates/totals/aggregates/?election_year=2022&election_full=true&per_page=100&aggregate_by=office
(3)aggregate_by=office-state
http://127.0.0.1:5000/v1/candidates/totals/aggregates/?election_year=2022&election_full=true&per_page=100&aggregate_by=office-state&state=CA
(4)aggregate_by=office-office-state-district
http://127.0.0.1:5000/v1/candidates/totals/aggregates/?election_year=2022&election_full=true&per_page=100&aggregate_by=office-state-district
http://127.0.0.1:5000/v1/candidates/totals/aggregates/?page=1&aggregate_by=office-state-district&election_year=2022&election_full=true&sort_null_only=false&sort_nulls_last=false&sort_hide_null=false&per_page=100&state=CA
(5)aggregate_by=office-party
http://127.0.0.1:5000/v1/candidates/totals/aggregates/?election_year=2022&election_full=true&per_page=100&aggregate_by=office-party