Files
fluxer/fluxer_app/src/features/app/constants/Endpoints.ts
T

241 lines
15 KiB
TypeScript

// SPDX-License-Identifier: AGPL-3.0-or-later
import {ME} from '@fluxer/constants/src/AppConstants';
export const Endpoints = {
INSTANCE: '/instance',
AUTH_LOGIN: '/auth/login',
AUTH_LOGIN_MFA_TOTP: '/auth/login/mfa/totp',
AUTH_LOGIN_MFA_WEBAUTHN_OPTIONS: '/auth/login/mfa/webauthn/authentication-options',
AUTH_LOGIN_MFA_WEBAUTHN: '/auth/login/mfa/webauthn',
AUTH_WEBAUTHN_OPTIONS: '/auth/webauthn/authentication-options',
AUTH_WEBAUTHN_AUTHENTICATE: '/auth/webauthn/authenticate',
AUTH_LOGOUT: '/auth/logout',
AUTH_REGISTER: '/auth/register',
AUTH_USERNAME_SUGGESTIONS: '/auth/username-suggestions',
AUTH_SESSIONS: '/auth/sessions',
AUTH_SESSIONS_LOGOUT: '/auth/sessions/logout',
AUTH_HANDOFF_INITIATE: '/auth/handoff/initiate',
AUTH_HANDOFF_COMPLETE: '/auth/handoff/complete',
AUTH_HANDOFF_INFO: (code: string) => `/auth/handoff/${code}/info`,
AUTH_HANDOFF_STATUS: (code: string) => `/auth/handoff/${code}/status`,
AUTH_HANDOFF_CANCEL: (code: string) => `/auth/handoff/${code}`,
AUTH_FORGOT_PASSWORD: '/auth/forgot',
AUTH_RESET_PASSWORD: '/auth/reset',
AUTH_VALIDATE_RESET_PASSWORD_TOKEN: (token: string) => `/auth/reset/${encodeURIComponent(token)}`,
AUTH_EMAIL_REVERT: '/auth/email-revert',
AUTH_VERIFY_EMAIL: '/auth/verify',
AUTH_RESEND_VERIFICATION: '/auth/verify/resend',
AUTH_AUTHORIZE_IP: '/auth/authorize-ip',
AUTH_IP_AUTHORIZATION_RESEND: '/auth/ip-authorization/resend',
AUTH_IP_AUTHORIZATION_POLL: (ticket: string) => {
const params = new URLSearchParams({ticket});
return `/auth/ip-authorization/poll?${params}`;
},
AUTH_SSO_START: '/auth/sso/start',
AUTH_SSO_COMPLETE: '/auth/sso/complete',
ADMIN_INSTANCE_CONFIG: '/admin/instance/config',
ADMIN_INSTANCE_CONFIG_BRANDING_ASSETS: '/admin/instance/config/branding-assets',
ADMIN_INSTANCE_CONFIG_SMTP_TESTS: '/admin/instance/config/smtp-tests',
SUDO_WEBAUTHN_OPTIONS: '/users/@me/sudo/webauthn/authentication-options',
OAUTH_AUTHORIZE: '/oauth2/authorize',
OAUTH_CONSENT: '/oauth2/authorize/consent',
OAUTH_APPLICATIONS: '/oauth2/applications',
OAUTH_APPLICATIONS_LIST: '/oauth2/applications/@me',
OAUTH_APPLICATION: (applicationId: string) => `/oauth2/applications/${applicationId}`,
OAUTH_APPLICATION_BOT_TOKEN_RESET: (applicationId: string) => `/oauth2/applications/${applicationId}/bot/reset-token`,
OAUTH_APPLICATION_CLIENT_SECRET_RESET: (applicationId: string) =>
`/oauth2/applications/${applicationId}/client-secret/reset`,
OAUTH_APPLICATION_BOT_PROFILE: (applicationId: string) => `/oauth2/applications/${applicationId}/bot`,
OAUTH_PUBLIC_APPLICATION: (applicationId: string) => `/oauth2/applications/${applicationId}/public`,
OAUTH_AUTHORIZATIONS: '/oauth2/@me/authorizations',
OAUTH_AUTHORIZATIONS_REVOKE: '/oauth2/@me/authorizations/revoke',
OAUTH_AUTHORIZATION: (applicationId: string) => `/oauth2/@me/authorizations/${applicationId}`,
CHANNEL: (channelId: string) => `/channels/${channelId}`,
CHANNEL_ATTACHMENTS: (channelId: string) => `/channels/${channelId}/attachments`,
CHANNEL_ATTACHMENTS_COMPLETE: (channelId: string) => `/channels/${channelId}/attachments/complete`,
CHANNEL_INVITES: (channelId: string) => `/channels/${channelId}/invites`,
CHANNEL_RECIPIENT: (channelId: string, userId: string) => `/channels/${channelId}/recipients/${userId}`,
CHANNEL_MESSAGES: (channelId: string) => `/channels/${channelId}/messages`,
CHANNEL_MESSAGES_BULK: '/channels/messages/bulk',
CHANNEL_MESSAGE: (channelId: string, messageId: string) => `/channels/${channelId}/messages/${messageId}`,
CHANNEL_MESSAGE_ATTACHMENT: (channelId: string, messageId: string, attachmentId: string) =>
`/channels/${channelId}/messages/${messageId}/attachments/${attachmentId}`,
CHANNEL_MESSAGE_ACK: (channelId: string, messageId: string) => `/channels/${channelId}/messages/${messageId}/ack`,
CHANNEL_MESSAGE_REACTION: (channelId: string, messageId: string, emoji: string) =>
`/channels/${channelId}/messages/${messageId}/reactions/${emoji}`,
CHANNEL_MESSAGE_REACTION_USERS: (channelId: string, messageId: string, emoji: string) =>
`/channels/${channelId}/messages/${messageId}/reactions/${emoji}/users`,
CHANNEL_MESSAGE_REACTION_QUERY: (channelId: string, messageId: string, emoji: string, query = ME) =>
`/channels/${channelId}/messages/${messageId}/reactions/${emoji}/${query}`,
CHANNEL_MESSAGE_REACTIONS: (channelId: string, messageId: string) =>
`/channels/${channelId}/messages/${messageId}/reactions`,
CHANNEL_MESSAGES_PURGE: (channelId: string) => `/channels/${channelId}/messages/purge`,
CHANNEL_PIN: (channelId: string, messageId: string) => `/channels/${channelId}/pins/${messageId}`,
CHANNEL_PINS: (channelId: string) => `/channels/${channelId}/messages/pins`,
CHANNEL_PINS_ACK: (channelId: string) => `/channels/${channelId}/pins/ack`,
CHANNEL_TYPING: (channelId: string) => `/channels/${channelId}/typing`,
CHANNEL_WEBHOOKS: (channelId: string) => `/channels/${channelId}/webhooks`,
CHANNEL_RTC_REGIONS: (channelId: string) => `/channels/${channelId}/rtc-regions`,
CHANNEL_SLOWMODE: (channelId: string) => `/channels/${channelId}/slowmode`,
CHANNEL_CALL: (channelId: string) => `/channels/${channelId}/call`,
CHANNEL_CALL_RING: (channelId: string) => `/channels/${channelId}/call/ring`,
CHANNEL_CALL_STOP_RINGING: (channelId: string) => `/channels/${channelId}/call/stop-ringing`,
GUILDS: '/guilds',
GUILD: (guildId: string) => `/guilds/${guildId}`,
GUILD_CHANNELS: (guildId: string) => `/guilds/${guildId}/channels`,
GUILD_MEMBER: (guildId: string, query = ME) => `/guilds/${guildId}/members/${query}`,
GUILD_MEMBERS: (guildId: string) => `/guilds/${guildId}/members`,
GUILD_MEMBERS_SEARCH: (guildId: string) => `/guilds/${guildId}/members-search`,
GUILD_MEMBER_ROLE: (guildId: string, userId: string, roleId: string) =>
`/guilds/${guildId}/members/${userId}/roles/${roleId}`,
GUILD_BAN: (guildId: string, userId: string) => `/guilds/${guildId}/bans/${userId}`,
GUILD_BANS: (guildId: string) => `/guilds/${guildId}/bans`,
GUILD_ROLE: (guildId: string, roleId: string) => `/guilds/${guildId}/roles/${roleId}`,
GUILD_ROLES: (guildId: string) => `/guilds/${guildId}/roles`,
GUILD_ROLE_HOIST_POSITIONS: (guildId: string) => `/guilds/${guildId}/roles/hoist-positions`,
GUILD_DELETE: (guildId: string) => `/guilds/${guildId}/delete`,
GUILD_TRANSFER_OWNERSHIP: (guildId: string) => `/guilds/${guildId}/transfer-ownership`,
GUILD_EMOJI: (guildId: string, emojiId: string) => `/guilds/${guildId}/emojis/${emojiId}`,
GUILD_EMOJIS: (guildId: string) => `/guilds/${guildId}/emojis`,
GUILD_EMOJIS_CLONE: (guildId: string) => `/guilds/${guildId}/emojis/clone`,
GUILD_STICKER: (guildId: string, stickerId: string) => `/guilds/${guildId}/stickers/${stickerId}`,
GUILD_STICKERS: (guildId: string) => `/guilds/${guildId}/stickers`,
GUILD_STICKERS_CLONE: (guildId: string) => `/guilds/${guildId}/stickers/clone`,
EMOJI_METADATA: (emojiId: string) => `/emojis/${emojiId}/metadata`,
STICKER_METADATA: (stickerId: string) => `/stickers/${stickerId}/metadata`,
GUILD_INVITES: (guildId: string) => `/guilds/${guildId}/invites`,
GUILD_VANITY_URL: (guildId: string) => `/guilds/${guildId}/vanity-url`,
GUILD_WEBHOOKS: (guildId: string) => `/guilds/${guildId}/webhooks`,
GUILD_AUDIT_LOGS: (guildId: string) => `/guilds/${guildId}/audit-logs`,
INVITE: (code: string) => `/invites/${code}`,
GIFT: (code: string) => `/gifts/${code}`,
GIFT_REDEEM: (code: string) => `/gifts/${code}/redeem`,
USER_GIFTS: '/users/@me/gifts',
PREMIUM_VISIONARY_REJOIN: '/premium/visionary/rejoin',
PREMIUM_PRICE_IDS: '/premium/price-ids',
PREMIUM_STATE: '/premium/state',
PREMIUM_PERKS_DISABLED: '/premium/perks-disabled',
PREMIUM_CURRENT_SUBSCRIPTION_PRICE: '/premium/current-subscription-price',
PREMIUM_CUSTOMER_PORTAL: '/premium/customer-portal',
PREMIUM_CANCEL_SUBSCRIPTION: '/premium/cancel-subscription',
PREMIUM_REACTIVATE_SUBSCRIPTION: '/premium/reactivate-subscription',
PREMIUM_CHANGE_SUBSCRIPTION: '/premium/change-subscription',
PREMIUM_CANCEL_PENDING_SUBSCRIPTION_CHANGE: '/premium/cancel-pending-subscription-change',
PREMIUM_GRACE_END: '/premium/grace/end',
PREMIUM_REFUND_ELIGIBILITY: '/premium/refund-eligibility',
PREMIUM_REFUND_LATEST: '/premium/refund-latest',
STRIPE_CHECKOUT_SUBSCRIPTION: '/stripe/checkout/subscription',
STRIPE_CHECKOUT_SUBSCRIPTION_PREAPPROVAL: '/stripe/checkout/subscription/preapproval',
STRIPE_CHECKOUT_SUBSCRIPTION_PREAPPROVAL_CONTINUE: '/stripe/checkout/subscription/preapproval/continue',
STRIPE_CHECKOUT_GIFT: '/stripe/checkout/gift',
AGE_VERIFICATION: '/users/@me/age-verification',
SWISH_AVAILABLE: '/swish/available',
SWISH_PRICES: '/swish/prices',
SWISH_CHECKOUT: '/swish/checkout',
SWISH_PAYMENT: (paymentId: string) => `/swish/payments/${paymentId}`,
SWISH_PAYMENTS: '/swish/payments',
READ_STATES_ACK_BULK: '/read-states/ack-bulk',
READ_STATES_ACK: '/read-states/ack',
DSA_REPORT_EMAIL_SEND: '/reports/dsa/email/send',
DSA_REPORT_EMAIL_VERIFY: '/reports/dsa/email/verify',
DSA_REPORT_CREATE: '/reports/dsa',
GIFS_FEATURED: '/gifs/featured',
GIFS_REGISTER_SHARE: '/gifs/register-share',
GIFS_SEARCH: '/gifs/search',
GIFS_SUGGEST: '/gifs/suggest',
GIFS_TRENDING: '/gifs/trending',
UNFURL: '/unfurl',
USER_CHANNELS: '/users/@me/channels',
USER_CHANNEL_PIN: (channelId: string) => `/users/@me/channels/${channelId}/pin`,
USER_GUILDS_LIST: '/users/@me/guilds',
USER_GUILDS: (guildId: string) => `/users/@me/guilds/${guildId}`,
USER_GUILD_BULK_DELETE_MY_MESSAGES: (guildId: string) => `/users/@me/guilds/${guildId}/messages/bulk-delete-mine`,
CHANNEL_BULK_DELETE_MY_MESSAGES: (channelId: string) => `/channels/${channelId}/messages/bulk-delete-mine`,
USER_ME: '/users/@me',
USER_TERMS_ACCEPTANCE: '/users/@me/terms-acceptance',
USER_MENTION: (messageId: string) => `/users/@me/mentions/${messageId}`,
USER_MENTIONS: '/users/@me/mentions',
USER_MENTIONS_READ: '/users/@me/mentions/read',
USER_MFA_BACKUP_CODES: '/users/@me/mfa/backup-codes',
USER_MFA_BACKUP_CODES_CHALLENGE_START: '/users/@me/mfa/backup-codes/challenge',
USER_MFA_BACKUP_CODES_CHALLENGE_RESEND: '/users/@me/mfa/backup-codes/challenge/resend',
USER_MFA_BACKUP_CODES_CHALLENGE_VERIFY: '/users/@me/mfa/backup-codes/challenge/verify',
USER_MFA_BACKUP_CODES_CHALLENGE_REGENERATE: '/users/@me/mfa/backup-codes/challenge/regenerate',
USER_MFA_TOTP_DISABLE: '/users/@me/mfa/totp/disable',
USER_MFA_TOTP_ENABLE: '/users/@me/mfa/totp/enable',
USER_AUTHORIZED_IPS: '/users/@me/authorized-ips',
USER_MFA_WEBAUTHN_CREDENTIALS: '/users/@me/mfa/webauthn/credentials',
USER_MFA_WEBAUTHN_REGISTRATION_OPTIONS: '/users/@me/mfa/webauthn/credentials/registration-options',
USER_MFA_WEBAUTHN_CREDENTIAL: (credentialId: string) => `/users/@me/mfa/webauthn/credentials/${credentialId}`,
USER_PHONE_SEND_VERIFICATION: '/users/@me/phone/send-verification',
USER_PHONE_INBOUND_CHALLENGE: '/users/@me/phone/inbound-challenge',
USER_PHONE_VERIFY: '/users/@me/phone/verify',
USER_REQUIRED_ACTION_PHONE_GATE_ESCAPE: '/users/@me/required-actions/phone-gate-escape',
USER_EMAIL_CHANGE_START: '/users/@me/email-change/start',
USER_EMAIL_CHANGE_RESEND_ORIGINAL: '/users/@me/email-change/resend-original',
USER_EMAIL_CHANGE_VERIFY_ORIGINAL: '/users/@me/email-change/verify-original',
USER_EMAIL_CHANGE_REQUEST_NEW: '/users/@me/email-change/request-new',
USER_EMAIL_CHANGE_RESEND_NEW: '/users/@me/email-change/resend-new',
USER_EMAIL_CHANGE_VERIFY_NEW: '/users/@me/email-change/verify-new',
USER_EMAIL_CHANGE_APPLY: '/users/@me/email-change/apply',
USER_EMAIL_CHANGE_BOUNCED_REQUEST_NEW: '/users/@me/email-change/bounced/request-new',
USER_EMAIL_CHANGE_BOUNCED_RESEND_NEW: '/users/@me/email-change/bounced/resend-new',
USER_EMAIL_CHANGE_BOUNCED_VERIFY_NEW: '/users/@me/email-change/bounced/verify-new',
USER_PASSWORD_CHANGE_START: '/users/@me/password-change/start',
USER_PASSWORD_CHANGE_RESEND: '/users/@me/password-change/resend',
USER_PASSWORD_CHANGE_VERIFY: '/users/@me/password-change/verify',
USER_PASSWORD_CHANGE_COMPLETE: '/users/@me/password-change/complete',
USER_DISABLE: '/users/@me/disable',
USER_DELETE: '/users/@me/delete',
USER_BULK_DELETE_MY_MESSAGES: '/users/@me/messages/bulk-delete-mine',
USER_PREMIUM_RESET: '/users/@me/premium/reset',
USER_HARVEST: '/users/@me/harvest',
USER_HARVEST_FILTERED: '/users/@me/harvest/filtered',
USER_HARVEST_LATEST: '/users/@me/harvest/latest',
USER_HARVEST_STATUS: (harvestId: string) => `/users/@me/harvest/${harvestId}`,
USER_PRELOAD_MESSAGES: '/users/@me/preload-messages',
USER_NOTE: (userId: string) => `/users/@me/notes/${userId}`,
USER_CHECK_TAG: '/users/check-tag',
USER_PROFILE: (query = ME) => `/users/${query}/profile`,
USER_RELATIONSHIP: (userId: string) => `/users/@me/relationships/${userId}`,
USER_RELATIONSHIPS: '/users/@me/relationships',
USER_RELATIONSHIPS_BULK_IGNORE: '/users/@me/relationships/bulk-ignore',
USER_THEMES: '/users/@me/themes',
USER_SAVED_MESSAGE: (messageId: string) => `/users/@me/saved-messages/${messageId}`,
USER_SAVED_MESSAGES: '/users/@me/saved-messages',
USER_ENTRANCE_SOUNDS: '/users/@me/entrance-sounds',
USER_ENTRANCE_SOUND: (soundId: string) => `/users/@me/entrance-sounds/${soundId}`,
USER_ENTRANCE_SOUND_SELECTIONS: '/users/@me/entrance-sound-selections',
VOICE_CHANNEL_ENTRANCE_SOUND: (channelId: string) => `/voice/channels/${channelId}/entrance-sound`,
USER_FAVORITE_MEMES: (query = ME) => `/users/${query}/memes`,
USER_FAVORITE_MEME: (query = ME, memeId: string) => `/users/${query}/memes/${memeId}`,
USER_FAVORITE_GIFS_RESOLVE: (query = ME) => `/users/${query}/favorite-gifs/resolve`,
CHANNEL_MESSAGE_FAVORITE_MEMES: (channelId: string, messageId: string) =>
`/channels/${channelId}/messages/${messageId}/memes`,
STREAM_PREVIEW: (streamKey: string) => `/streams/${streamKey}/preview`,
STREAM_PREVIEW_UPLOAD_URL: (streamKey: string) => `/streams/${streamKey}/preview/upload-url`,
USER_SETTINGS: '/users/@me/settings',
USER_VOICE_ACTIVITY_SHARING: '/users/@me/settings/voice-activity-sharing',
USER_GUILD_SETTINGS_ME: '/users/@me/guilds/@me/settings',
USER_GUILD_SETTINGS: (guildId: string) => `/users/@me/guilds/${guildId}/settings`,
USER_PUSH_SUBSCRIBE: '/users/@me/push/subscribe',
USER_PUSH_ROTATE: '/users/@me/push/rotate',
USER_PUSH_SUBSCRIPTIONS: '/users/@me/push/subscriptions',
USER_PUSH_SUBSCRIPTION: (subscriptionId: string) => `/users/@me/push/subscriptions/${subscriptionId}`,
WEBHOOK: (webhookId: string) => `/webhooks/${webhookId}`,
REPORT_MESSAGE: '/reports/message',
REPORT_USER: '/reports/user',
REPORT_GUILD: '/reports/guild',
DISCOVERY_GUILDS: '/discovery/guilds',
DISCOVERY_CATEGORIES: '/discovery/categories',
DISCOVERY_JOIN: (guildId: string) => `/discovery/guilds/${guildId}/join`,
GUILD_DISCOVERY: (guildId: string) => `/guilds/${guildId}/discovery`,
CONNECTIONS: '/users/@me/connections',
CONNECTIONS_VERIFY_AND_CREATE: '/users/@me/connections/verify',
BLUESKY_AUTHORIZE: '/users/@me/connections/bluesky/authorize',
CONNECTION: (type: string, connectionId: string) => `/users/@me/connections/${type}/${connectionId}`,
CONNECTION_VERIFY: (type: string, connectionId: string) => `/users/@me/connections/${type}/${connectionId}/verify`,
CONNECTIONS_REORDER: '/users/@me/connections/reorder',
} as const;