api/v0.1/activities - GET, DELETE * api/v0.1/activities/{id} - GET, DELETE * api/v0.1/activities/{id}/flag - POST, DELETE * api/v0.1/activities/{id}/pin - POST - e.g { 'what': 'connect' } * api/v0.1/activities/{id}/vote - POST - e.g { 'choice': 43 } * api/v0.1/activities/{id}/favorite - POST, DELETE * api/v0.1/activities/{id}/like - POST, DELETE * api/v0.1/activities/{id}/award - POST api/v0.1/comments/?activity={id} - GET * api/v0.1/comments - POST * api/v0.1/comments/{id} - GET, DELETE * api/v0.1/comments/{id}/like - POST, DELETE pagination -> frontend can specify a page size * api/v0.1/activities/?page_size={size} filtering -> allow filtering by all foreignkeys * api/v0.1/activities?(bounty|grant|hackathonevent|project|profile|kudos|kudos_transfer|tip|subscription)=58 * for example, we can query a bounty with id=58 by fetching api/v0.1/activities?bounty=58 db query optimizations (number of queries) * comments endpoint - 8 -> 5 -> ?? * activity endpoint - 108 -> 96 -> 73 -> ?? ## PERMISSIONS * IsOwnerOrReadOnly * CanPinPost ## FIELD EXPANSIONS FOR ACTIVITY grant -> url, title, logo, logo.url, id, description bounty -> title, value_true, value_in_usdt_now, token_name, network, funding_organisation, bounty_owner_github_username hackathonevent -> slug, id, name, relative_url kudos -> artist, url, ui_name, from_username, preview_img_url, description, img_url kudos_transfer -> username, id profile -> handle, organizations, name, type, match_this_round, default_match_estimate, id, keywords, avatar_url, github_url project -> name, hackathon.slug, hackathon.name, id, logo, bounty.avatar_url, bounty.org_name, bounty.funding_organisation, bounty.bounty_owner_github_username tip -> tip_count_eth tip_count_usd redemption -> redemption_requester.handle ptoken -> token_owner_profile.handle, token_symbol EXEMPTED PERSONAL TOKENS because -> https://gitcoincore.slack.com/archives/C01H9H320CV/p1626764201398800 properties -> show_token_info, token_name, humanized_activity_type, secondary_avatar_url, created_human_time ## CHORE * remove activities field from bounties endpoint