@follow-app/client-sdk
Version:
TypeScript client SDK for Follow RSS Server API
56 lines (46 loc) • 1.44 kB
text/typescript
import { defineModule, defineRoute } from "../../shared/define-module"
import type {
InboxCreateRequest,
InboxCreateResponse,
InboxDeleteRequest,
InboxDeleteResponse,
InboxEmailRequest,
InboxEmailResponse,
InboxGetQuery,
InboxGetResponse,
InboxListResponse,
InboxUpdateRequest,
InboxUpdateResponse,
InboxWebhookRequest,
InboxWebhookResponse,
} from "./types"
/**
* Inboxes module definition - Email inboxes management
*/
export const inboxesModule = defineModule({
name: "inboxes",
prefix: "/inboxes",
routes: {
// Get specific inbox by handle
get: defineRoute<InboxGetQuery, InboxGetResponse>("GET", "/"),
// List user's inboxes
list: defineRoute<never, InboxListResponse>("GET", "/list"),
// Create new inbox
post: defineRoute<InboxCreateRequest, InboxCreateResponse>("POST", "/"),
// Update inbox
put: defineRoute<InboxUpdateRequest, InboxUpdateResponse>("PUT", "/"),
// Delete inbox
delete: defineRoute<InboxDeleteRequest, InboxDeleteResponse>("DELETE", "/"),
// Email operations
email: defineRoute<InboxEmailRequest, InboxEmailResponse>("POST", "/email"),
// Webhook operations
webhook: defineRoute<InboxWebhookRequest, InboxWebhookResponse>(
"POST",
"/webhook",
),
},
})
// Export the API type
export type InboxesAPI = typeof inboxesModule.api
// Re-export types for external consumption
export type * from "./types"