import { apiRequestPost, apiRequestGet, apiRequestDelete, apiRequestPatch, } from 'mastodon/api'; import type { ApiAccountJSON, ApiFamiliarFollowersJSON, } from 'mastodon/api_types/accounts'; import type { ApiRelationshipJSON } from 'mastodon/api_types/relationships'; import type { ApiFeaturedTagJSON, ApiHashtagJSON, } from 'mastodon/api_types/tags'; import type { ApiProfileJSON, ApiProfileUpdateParams, } from '../api_types/profile'; export const apiSubmitAccountNote = (id: string, value: string) => apiRequestPost(`v1/accounts/${id}/note`, { comment: value, }); export const apiFollowAccount = ( id: string, params?: { reblogs: boolean; }, ) => apiRequestPost(`v1/accounts/${id}/follow`, { ...params, }); export const apiUnfollowAccount = (id: string) => apiRequestPost(`v1/accounts/${id}/unfollow`); export const apiRemoveAccountFromFollowers = (id: string) => apiRequestPost( `v1/accounts/${id}/remove_from_followers`, ); export const apiGetFeaturedTags = (id: string) => apiRequestGet(`v1/accounts/${id}/featured_tags`); export const apiGetCurrentFeaturedTags = () => apiRequestGet(`v1/featured_tags`); export const apiPostFeaturedTag = (name: string) => apiRequestPost('v1/featured_tags', { name }); export const apiDeleteFeaturedTag = (id: string) => apiRequestDelete(`v1/featured_tags/${id}`); export const apiGetTagSuggestions = () => apiRequestGet('v1/featured_tags/suggestions'); export const apiGetEndorsedAccounts = (id: string) => apiRequestGet(`v1/accounts/${id}/endorsements`); export const apiGetFamiliarFollowers = (id: string) => apiRequestGet('v1/accounts/familiar_followers', { id, }); export const apiGetProfile = () => apiRequestGet('v1/profile'); export const apiPatchProfile = (params: ApiProfileUpdateParams | FormData) => apiRequestPatch('v1/profile', params); export const apiDeleteProfileAvatar = () => apiRequestDelete('v1/profile/avatar'); export const apiDeleteProfileHeader = () => apiRequestDelete('v1/profile/header');