Documentation
¶
Overview ¶
Package api provides HTTP handlers for the Uncord REST API. Each handler is a thin adapter that parses a protocol request type from the request body, delegates business logic to the service or repository layer, and writes a protocol response type using the httputil envelope helpers. Handlers receive fiber.Ctx by value and map service errors to HTTP status codes via dedicated error mapping functions.
Index ¶
- type AttachmentHandler
- type AuditHandler
- type AuthHandler
- func (h *AuthHandler) GatewayTicket(c fiber.Ctx) error
- func (h *AuthHandler) Login(c fiber.Ctx) error
- func (h *AuthHandler) Logout(c fiber.Ctx) error
- func (h *AuthHandler) MFAVerify(c fiber.Ctx) error
- func (h *AuthHandler) Refresh(c fiber.Ctx) error
- func (h *AuthHandler) Register(c fiber.Ctx) error
- func (h *AuthHandler) ResendVerification(c fiber.Ctx) error
- func (h *AuthHandler) VerifyEmail(c fiber.Ctx) error
- func (h *AuthHandler) VerifyPassword(c fiber.Ctx) error
- type CategoryHandler
- type ChannelHandler
- type DMHandler
- func (h *DMHandler) AddParticipant(c fiber.Ctx) error
- func (h *DMHandler) CreateDMChannel(c fiber.Ctx) error
- func (h *DMHandler) GetDMChannel(c fiber.Ctx) error
- func (h *DMHandler) ListDMChannels(c fiber.Ctx) error
- func (h *DMHandler) ListMessages(c fiber.Ctx) error
- func (h *DMHandler) RemoveParticipant(c fiber.Ctx) error
- func (h *DMHandler) RequireParticipant(c fiber.Ctx) error
- func (h *DMHandler) SendMessage(c fiber.Ctx) error
- type E2EEHandler
- func (h *E2EEHandler) FetchKeyBundle(c fiber.Ctx) error
- func (h *E2EEHandler) GetKeyCount(c fiber.Ctx) error
- func (h *E2EEHandler) ListDevices(c fiber.Ctx) error
- func (h *E2EEHandler) RegisterDevice(c fiber.Ctx) error
- func (h *E2EEHandler) RemoveDevice(c fiber.Ctx) error
- func (h *E2EEHandler) UpdateIdentityKey(c fiber.Ctx) error
- func (h *E2EEHandler) UploadOneTimePreKeys(c fiber.Ctx) error
- func (h *E2EEHandler) UploadSignedPreKey(c fiber.Ctx) error
- type EmojiHandler
- type GatewayHandler
- type HealthHandler
- type ImageUploadHandler
- func (h *ImageUploadHandler) DeleteServerBanner(c fiber.Ctx) error
- func (h *ImageUploadHandler) DeleteServerIcon(c fiber.Ctx) error
- func (h *ImageUploadHandler) DeleteUserAvatar(c fiber.Ctx) error
- func (h *ImageUploadHandler) DeleteUserBanner(c fiber.Ctx) error
- func (h *ImageUploadHandler) UploadServerBanner(c fiber.Ctx) error
- func (h *ImageUploadHandler) UploadServerIcon(c fiber.Ctx) error
- func (h *ImageUploadHandler) UploadUserAvatar(c fiber.Ctx) error
- func (h *ImageUploadHandler) UploadUserBanner(c fiber.Ctx) error
- type InviteHandler
- type MFAHandler
- type MemberHandler
- func (h *MemberHandler) AssignRole(c fiber.Ctx) error
- func (h *MemberHandler) BanMember(c fiber.Ctx) error
- func (h *MemberHandler) ClearTimeout(c fiber.Ctx) error
- func (h *MemberHandler) GetMember(c fiber.Ctx) error
- func (h *MemberHandler) GetSelf(c fiber.Ctx) error
- func (h *MemberHandler) KickMember(c fiber.Ctx) error
- func (h *MemberHandler) Leave(c fiber.Ctx) error
- func (h *MemberHandler) ListBans(c fiber.Ctx) error
- func (h *MemberHandler) ListChannelMembers(c fiber.Ctx) error
- func (h *MemberHandler) ListMembers(c fiber.Ctx) error
- func (h *MemberHandler) RemoveRole(c fiber.Ctx) error
- func (h *MemberHandler) SetTimeout(c fiber.Ctx) error
- func (h *MemberHandler) UnbanMember(c fiber.Ctx) error
- func (h *MemberHandler) UpdateMember(c fiber.Ctx) error
- func (h *MemberHandler) UpdateSelf(c fiber.Ctx) error
- type MessageHandler
- type OnboardingHandler
- func (h *OnboardingHandler) AcceptOnboarding(c fiber.Ctx) error
- func (h *OnboardingHandler) GetAcceptance(c fiber.Ctx) error
- func (h *OnboardingHandler) GetOnboarding(c fiber.Ctx) error
- func (h *OnboardingHandler) GetOnboardingStatus(c fiber.Ctx) error
- func (h *OnboardingHandler) JoinServer(c fiber.Ctx) error
- func (h *OnboardingHandler) UpdateOnboarding(c fiber.Ctx) error
- type PermissionHandler
- type PinHandler
- type Pinger
- type ReactionHandler
- type ReadStateHandler
- type RoleHandler
- type SearchHandler
- type ServerHandler
- type SettingSyncHandler
- type ThreadHandler
- func (h *ThreadHandler) CreateThread(c fiber.Ctx) error
- func (h *ThreadHandler) CreateThreadMessage(c fiber.Ctx) error
- func (h *ThreadHandler) GetThread(c fiber.Ctx) error
- func (h *ThreadHandler) ListThreadMessages(c fiber.Ctx) error
- func (h *ThreadHandler) ListThreads(c fiber.Ctx) error
- func (h *ThreadHandler) UpdateThread(c fiber.Ctx) error
- type TypingHandler
- type UserHandler
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type AttachmentHandler ¶
type AttachmentHandler struct {
// contains filtered or unexported fields
}
AttachmentHandler serves file upload endpoints.
func NewAttachmentHandler ¶
func NewAttachmentHandler( attachments attachment.Repository, storage media.StorageProvider, rdb *redis.Client, maxSizeBytes int64, logger zerolog.Logger, ) *AttachmentHandler
NewAttachmentHandler creates a new attachment handler.
type AuditHandler ¶
type AuditHandler struct {
// contains filtered or unexported fields
}
AuditHandler serves the audit log endpoint.
func NewAuditHandler ¶
func NewAuditHandler(repo audit.Repository, logger zerolog.Logger) *AuditHandler
NewAuditHandler creates a new audit log handler.
type AuthHandler ¶
type AuthHandler struct {
// contains filtered or unexported fields
}
AuthHandler serves authentication endpoints.
func NewAuthHandler ¶
NewAuthHandler creates a new authentication handler.
func (*AuthHandler) GatewayTicket ¶
func (h *AuthHandler) GatewayTicket(c fiber.Ctx) error
GatewayTicket handles POST /api/v1/auth/gateway-ticket. It creates a single-use ticket that web clients present in the WebSocket Identify frame instead of a JWT access token.
func (*AuthHandler) Login ¶
func (h *AuthHandler) Login(c fiber.Ctx) error
Login handles POST /api/v1/auth/login.
func (*AuthHandler) Logout ¶
func (h *AuthHandler) Logout(c fiber.Ctx) error
Logout handles POST /api/v1/auth/logout. It revokes all refresh tokens for the authenticated user and clears auth cookies from the response.
func (*AuthHandler) MFAVerify ¶
func (h *AuthHandler) MFAVerify(c fiber.Ctx) error
MFAVerify handles POST /api/v1/auth/mfa/verify.
func (*AuthHandler) Refresh ¶
func (h *AuthHandler) Refresh(c fiber.Ctx) error
Refresh handles POST /api/v1/auth/refresh.
func (*AuthHandler) Register ¶
func (h *AuthHandler) Register(c fiber.Ctx) error
Register handles POST /api/v1/auth/register.
func (*AuthHandler) ResendVerification ¶
func (h *AuthHandler) ResendVerification(c fiber.Ctx) error
ResendVerification handles POST /api/v1/auth/resend-verification.
func (*AuthHandler) VerifyEmail ¶
func (h *AuthHandler) VerifyEmail(c fiber.Ctx) error
VerifyEmail handles POST /api/v1/auth/verify-email.
func (*AuthHandler) VerifyPassword ¶
func (h *AuthHandler) VerifyPassword(c fiber.Ctx) error
VerifyPassword handles POST /api/v1/auth/verify-password.
type CategoryHandler ¶
type CategoryHandler struct {
// contains filtered or unexported fields
}
CategoryHandler serves category endpoints.
func NewCategoryHandler ¶
func NewCategoryHandler(categories category.Repository, maxCategories int, auditLogger *audit.Logger, logger zerolog.Logger) *CategoryHandler
NewCategoryHandler creates a new category handler.
func (*CategoryHandler) CreateCategory ¶
func (h *CategoryHandler) CreateCategory(c fiber.Ctx) error
CreateCategory handles POST /api/v1/server/categories.
func (*CategoryHandler) DeleteCategory ¶
func (h *CategoryHandler) DeleteCategory(c fiber.Ctx) error
DeleteCategory handles DELETE /api/v1/categories/:categoryID.
func (*CategoryHandler) ListCategories ¶
func (h *CategoryHandler) ListCategories(c fiber.Ctx) error
ListCategories handles GET /api/v1/server/categories.
func (*CategoryHandler) UpdateCategory ¶
func (h *CategoryHandler) UpdateCategory(c fiber.Ctx) error
UpdateCategory handles PATCH /api/v1/categories/:categoryID.
type ChannelHandler ¶
type ChannelHandler struct {
// contains filtered or unexported fields
}
ChannelHandler serves channel endpoints.
func NewChannelHandler ¶
func NewChannelHandler( channels channel.Repository, members member.Repository, onboardingRepo onboarding.Repository, resolver *permission.Resolver, gw *gateway.Publisher, maxChannels int, auditLogger *audit.Logger, logger zerolog.Logger, ) *ChannelHandler
NewChannelHandler creates a new channel handler.
func (*ChannelHandler) CreateChannel ¶
func (h *ChannelHandler) CreateChannel(c fiber.Ctx) error
CreateChannel handles POST /api/v1/server/channels.
func (*ChannelHandler) DeleteChannel ¶
func (h *ChannelHandler) DeleteChannel(c fiber.Ctx) error
DeleteChannel handles DELETE /api/v1/channels/:channelID.
func (*ChannelHandler) GetChannel ¶
func (h *ChannelHandler) GetChannel(c fiber.Ctx) error
GetChannel handles GET /api/v1/channels/:channelID.
func (*ChannelHandler) ListChannels ¶
func (h *ChannelHandler) ListChannels(c fiber.Ctx) error
ListChannels handles GET /api/v1/server/channels. Active and timed-out members see all channels they have permission to view. Pending members see only the welcome channel (if configured). Non-members see an empty list.
func (*ChannelHandler) UpdateChannel ¶
func (h *ChannelHandler) UpdateChannel(c fiber.Ctx) error
UpdateChannel handles PATCH /api/v1/channels/:channelID.
type DMHandler ¶
type DMHandler struct {
// contains filtered or unexported fields
}
DMHandler serves DM channel endpoints.
func NewDMHandler ¶
func NewDMHandler( dms dm.Repository, messages message.Repository, e2eeKeys e2ee.Repository, gw *gateway.Publisher, maxContent int, logger zerolog.Logger, ) *DMHandler
NewDMHandler creates a new DM handler.
func (*DMHandler) AddParticipant ¶
AddParticipant handles POST /api/v1/dm/:channelID/participants.
func (*DMHandler) CreateDMChannel ¶
CreateDMChannel handles POST /api/v1/users/@me/channels.
func (*DMHandler) GetDMChannel ¶
GetDMChannel handles GET /api/v1/dm/:channelID.
func (*DMHandler) ListDMChannels ¶
ListDMChannels handles GET /api/v1/users/@me/channels.
func (*DMHandler) ListMessages ¶
ListMessages handles GET /api/v1/dm/:channelID/messages.
func (*DMHandler) RemoveParticipant ¶
RemoveParticipant handles DELETE /api/v1/dm/:channelID/participants/:userID.
func (*DMHandler) RequireParticipant ¶
RequireParticipant is a middleware that verifies the requesting user is a participant of the DM channel identified by the :channelID route parameter.
type E2EEHandler ¶
type E2EEHandler struct {
// contains filtered or unexported fields
}
E2EEHandler serves device and key management endpoints for end-to-end encryption.
func NewE2EEHandler ¶
func NewE2EEHandler(keys e2ee.Repository, dms dm.Repository, gw *gateway.Publisher, opkThreshold int, logger zerolog.Logger) *E2EEHandler
NewE2EEHandler creates a new E2EE handler.
func (*E2EEHandler) FetchKeyBundle ¶
func (h *E2EEHandler) FetchKeyBundle(c fiber.Ctx) error
FetchKeyBundle handles GET /api/v1/users/:userID/keys.
func (*E2EEHandler) GetKeyCount ¶
func (h *E2EEHandler) GetKeyCount(c fiber.Ctx) error
GetKeyCount handles GET /api/v1/users/@me/devices/:deviceID/one-time-pre-keys/count.
func (*E2EEHandler) ListDevices ¶
func (h *E2EEHandler) ListDevices(c fiber.Ctx) error
ListDevices handles GET /api/v1/users/@me/devices.
func (*E2EEHandler) RegisterDevice ¶
func (h *E2EEHandler) RegisterDevice(c fiber.Ctx) error
RegisterDevice handles POST /api/v1/users/@me/devices.
func (*E2EEHandler) RemoveDevice ¶
func (h *E2EEHandler) RemoveDevice(c fiber.Ctx) error
RemoveDevice handles DELETE /api/v1/users/@me/devices/:deviceID.
func (*E2EEHandler) UpdateIdentityKey ¶
func (h *E2EEHandler) UpdateIdentityKey(c fiber.Ctx) error
UpdateIdentityKey handles PUT /api/v1/users/@me/devices/:deviceID/identity-key.
func (*E2EEHandler) UploadOneTimePreKeys ¶
func (h *E2EEHandler) UploadOneTimePreKeys(c fiber.Ctx) error
UploadOneTimePreKeys handles POST /api/v1/users/@me/devices/:deviceID/one-time-pre-keys.
func (*E2EEHandler) UploadSignedPreKey ¶
func (h *E2EEHandler) UploadSignedPreKey(c fiber.Ctx) error
UploadSignedPreKey handles PUT /api/v1/users/@me/devices/:deviceID/signed-pre-key.
type EmojiHandler ¶
type EmojiHandler struct {
// contains filtered or unexported fields
}
EmojiHandler serves custom emoji endpoints.
func NewEmojiHandler ¶
func NewEmojiHandler( emojiRepo emoji.Repository, storage media.StorageProvider, gw *gateway.Publisher, maxSize int64, maxDim int, limit int, auditLogger *audit.Logger, logger zerolog.Logger, ) *EmojiHandler
NewEmojiHandler creates a new emoji handler.
func (*EmojiHandler) CreateEmoji ¶
func (h *EmojiHandler) CreateEmoji(c fiber.Ctx) error
CreateEmoji handles POST /api/v1/server/emoji.
func (*EmojiHandler) DeleteEmoji ¶
func (h *EmojiHandler) DeleteEmoji(c fiber.Ctx) error
DeleteEmoji handles DELETE /api/v1/server/emoji/:emojiID.
func (*EmojiHandler) ListEmoji ¶
func (h *EmojiHandler) ListEmoji(c fiber.Ctx) error
ListEmoji handles GET /api/v1/server/emoji.
func (*EmojiHandler) UpdateEmoji ¶
func (h *EmojiHandler) UpdateEmoji(c fiber.Ctx) error
UpdateEmoji handles PATCH /api/v1/server/emoji/:emojiID.
type GatewayHandler ¶
type GatewayHandler struct {
// contains filtered or unexported fields
}
GatewayHandler serves the WebSocket upgrade endpoint for the real-time gateway.
func NewGatewayHandler ¶
func NewGatewayHandler(hub *gateway.Hub) *GatewayHandler
NewGatewayHandler creates a new gateway handler.
type HealthHandler ¶
type HealthHandler struct {
// contains filtered or unexported fields
}
HealthHandler serves the health check endpoint.
func NewHealthHandler ¶
func NewHealthHandler(db, valkey Pinger) *HealthHandler
NewHealthHandler creates a new health check handler.
type ImageUploadHandler ¶
type ImageUploadHandler struct {
// contains filtered or unexported fields
}
ImageUploadHandler serves avatar, banner, and server icon upload and delete endpoints.
func NewImageUploadHandler ¶
func NewImageUploadHandler( users user.Repository, servers server.Repository, storage media.StorageProvider, gw *gateway.Publisher, maxAvatarBytes int64, maxAvatarDim int, maxBannerW, maxBannerH int, logger zerolog.Logger, ) *ImageUploadHandler
NewImageUploadHandler creates a new handler for image upload and delete operations.
func (*ImageUploadHandler) DeleteServerBanner ¶
func (h *ImageUploadHandler) DeleteServerBanner(c fiber.Ctx) error
DeleteServerBanner handles DELETE /api/v1/server/banner.
func (*ImageUploadHandler) DeleteServerIcon ¶
func (h *ImageUploadHandler) DeleteServerIcon(c fiber.Ctx) error
DeleteServerIcon handles DELETE /api/v1/server/icon.
func (*ImageUploadHandler) DeleteUserAvatar ¶
func (h *ImageUploadHandler) DeleteUserAvatar(c fiber.Ctx) error
DeleteUserAvatar handles DELETE /api/v1/users/@me/avatar.
func (*ImageUploadHandler) DeleteUserBanner ¶
func (h *ImageUploadHandler) DeleteUserBanner(c fiber.Ctx) error
DeleteUserBanner handles DELETE /api/v1/users/@me/banner.
func (*ImageUploadHandler) UploadServerBanner ¶
func (h *ImageUploadHandler) UploadServerBanner(c fiber.Ctx) error
UploadServerBanner handles PUT /api/v1/server/banner.
func (*ImageUploadHandler) UploadServerIcon ¶
func (h *ImageUploadHandler) UploadServerIcon(c fiber.Ctx) error
UploadServerIcon handles PUT /api/v1/server/icon.
func (*ImageUploadHandler) UploadUserAvatar ¶
func (h *ImageUploadHandler) UploadUserAvatar(c fiber.Ctx) error
UploadUserAvatar handles PUT /api/v1/users/@me/avatar.
func (*ImageUploadHandler) UploadUserBanner ¶
func (h *ImageUploadHandler) UploadUserBanner(c fiber.Ctx) error
UploadUserBanner handles PUT /api/v1/users/@me/banner.
type InviteHandler ¶
type InviteHandler struct {
// contains filtered or unexported fields
}
InviteHandler serves invite endpoints.
func NewInviteHandler ¶
func NewInviteHandler(invites invite.Repository, onboardingRepo onboarding.Repository, members member.Repository, users user.Repository, gw *gateway.Publisher, auditLogger *audit.Logger, logger zerolog.Logger) *InviteHandler
NewInviteHandler creates a new invite handler.
func (*InviteHandler) CreateInvite ¶
func (h *InviteHandler) CreateInvite(c fiber.Ctx) error
CreateInvite handles POST /api/v1/server/invites.
func (*InviteHandler) DeleteInvite ¶
func (h *InviteHandler) DeleteInvite(c fiber.Ctx) error
DeleteInvite handles DELETE /api/v1/invites/:code.
func (*InviteHandler) JoinViaInvite ¶
func (h *InviteHandler) JoinViaInvite(c fiber.Ctx) error
JoinViaInvite handles POST /api/v1/invites/:code/join.
func (*InviteHandler) ListInvites ¶
func (h *InviteHandler) ListInvites(c fiber.Ctx) error
ListInvites handles GET /api/v1/server/invites.
type MFAHandler ¶
type MFAHandler struct {
// contains filtered or unexported fields
}
MFAHandler serves authenticated MFA management endpoints under /api/v1/users/@me/mfa/.
func NewMFAHandler ¶
func NewMFAHandler(svc *auth.Service, logger zerolog.Logger) *MFAHandler
NewMFAHandler creates a new MFA handler.
func (*MFAHandler) Confirm ¶
func (h *MFAHandler) Confirm(c fiber.Ctx) error
Confirm handles POST /api/v1/users/@me/mfa/confirm.
func (*MFAHandler) Disable ¶
func (h *MFAHandler) Disable(c fiber.Ctx) error
Disable handles POST /api/v1/users/@me/mfa/disable.
func (*MFAHandler) Enable ¶
func (h *MFAHandler) Enable(c fiber.Ctx) error
Enable handles POST /api/v1/users/@me/mfa/enable.
func (*MFAHandler) RegenerateCodes ¶
func (h *MFAHandler) RegenerateCodes(c fiber.Ctx) error
RegenerateCodes handles POST /api/v1/users/@me/mfa/recovery-codes.
type MemberHandler ¶
type MemberHandler struct {
// contains filtered or unexported fields
}
MemberHandler serves member and ban endpoints.
func NewMemberHandler ¶
func NewMemberHandler(members member.Repository, roles role.Repository, perms permission.Store, resolver *permission.Resolver, pub *permission.Publisher, gw *gateway.Publisher, auditLogger *audit.Logger, logger zerolog.Logger) *MemberHandler
NewMemberHandler creates a new member handler.
func (*MemberHandler) AssignRole ¶
func (h *MemberHandler) AssignRole(c fiber.Ctx) error
AssignRole handles PUT /api/v1/server/members/:userID/roles/:roleID.
func (*MemberHandler) BanMember ¶
func (h *MemberHandler) BanMember(c fiber.Ctx) error
BanMember handles PUT /api/v1/server/bans/:userID.
func (*MemberHandler) ClearTimeout ¶
func (h *MemberHandler) ClearTimeout(c fiber.Ctx) error
ClearTimeout handles DELETE /api/v1/server/members/:userID/timeout.
func (*MemberHandler) GetMember ¶
func (h *MemberHandler) GetMember(c fiber.Ctx) error
GetMember handles GET /api/v1/server/members/:userID.
func (*MemberHandler) GetSelf ¶
func (h *MemberHandler) GetSelf(c fiber.Ctx) error
GetSelf handles GET /api/v1/server/members/@me. Unlike other member endpoints, this includes pending members so they can check their own onboarding status.
func (*MemberHandler) KickMember ¶
func (h *MemberHandler) KickMember(c fiber.Ctx) error
KickMember handles DELETE /api/v1/server/members/:userID.
func (*MemberHandler) Leave ¶
func (h *MemberHandler) Leave(c fiber.Ctx) error
Leave handles DELETE /api/v1/server/members/@me.
func (*MemberHandler) ListBans ¶
func (h *MemberHandler) ListBans(c fiber.Ctx) error
ListBans handles GET /api/v1/server/bans.
func (*MemberHandler) ListChannelMembers ¶
func (h *MemberHandler) ListChannelMembers(c fiber.Ctx) error
ListChannelMembers handles GET /api/v1/channels/:channelID/members. It returns only members who have the ViewChannels permission on the specified channel, with cursor-based pagination.
func (*MemberHandler) ListMembers ¶
func (h *MemberHandler) ListMembers(c fiber.Ctx) error
ListMembers handles GET /api/v1/server/members.
func (*MemberHandler) RemoveRole ¶
func (h *MemberHandler) RemoveRole(c fiber.Ctx) error
RemoveRole handles DELETE /api/v1/server/members/:userID/roles/:roleID.
func (*MemberHandler) SetTimeout ¶
func (h *MemberHandler) SetTimeout(c fiber.Ctx) error
SetTimeout handles PUT /api/v1/server/members/:userID/timeout.
func (*MemberHandler) UnbanMember ¶
func (h *MemberHandler) UnbanMember(c fiber.Ctx) error
UnbanMember handles DELETE /api/v1/server/bans/:userID.
func (*MemberHandler) UpdateMember ¶
func (h *MemberHandler) UpdateMember(c fiber.Ctx) error
UpdateMember handles PATCH /api/v1/server/members/:userID.
func (*MemberHandler) UpdateSelf ¶
func (h *MemberHandler) UpdateSelf(c fiber.Ctx) error
UpdateSelf handles PATCH /api/v1/server/members/@me.
type MessageHandler ¶
type MessageHandler struct {
// contains filtered or unexported fields
}
MessageHandler serves message endpoints.
func NewMessageHandler ¶
func NewMessageHandler( messages message.Repository, attachments attachment.Repository, reactions reaction.Repository, storage media.StorageProvider, resolver *permission.Resolver, indexer *typesense.Indexer, gw *gateway.Publisher, presenceStore *presence.Store, maxContent int, maxAttachments int, auditLogger *audit.Logger, logger zerolog.Logger, ) *MessageHandler
NewMessageHandler creates a new message handler.
func (*MessageHandler) CreateMessage ¶
func (h *MessageHandler) CreateMessage(c fiber.Ctx) error
CreateMessage handles POST /api/v1/channels/:channelID/messages.
func (*MessageHandler) DeleteMessage ¶
func (h *MessageHandler) DeleteMessage(c fiber.Ctx) error
DeleteMessage handles DELETE /api/v1/messages/:messageID.
func (*MessageHandler) EditMessage ¶
func (h *MessageHandler) EditMessage(c fiber.Ctx) error
EditMessage handles PATCH /api/v1/messages/:messageID.
func (*MessageHandler) ListMessages ¶
func (h *MessageHandler) ListMessages(c fiber.Ctx) error
ListMessages handles GET /api/v1/channels/:channelID/messages.
type OnboardingHandler ¶
type OnboardingHandler struct {
// contains filtered or unexported fields
}
OnboardingHandler serves onboarding endpoints.
func NewOnboardingHandler ¶
func NewOnboardingHandler( onboardingRepo onboarding.Repository, documents *onboarding.DocumentStore, members member.Repository, users user.Repository, servers server.Repository, gw *gateway.Publisher, auditLogger *audit.Logger, logger zerolog.Logger, ) *OnboardingHandler
NewOnboardingHandler creates a new onboarding handler.
func (*OnboardingHandler) AcceptOnboarding ¶
func (h *OnboardingHandler) AcceptOnboarding(c fiber.Ctx) error
AcceptOnboarding handles POST /api/v1/onboarding/accept. Validates that the client has accepted all required documents, then activates the pending member.
func (*OnboardingHandler) GetAcceptance ¶
func (h *OnboardingHandler) GetAcceptance(c fiber.Ctx) error
GetAcceptance handles GET /api/v1/onboarding/acceptance. Returns the document acceptance records for the authenticated user.
func (*OnboardingHandler) GetOnboarding ¶
func (h *OnboardingHandler) GetOnboarding(c fiber.Ctx) error
GetOnboarding handles GET /api/v1/onboarding. Returns the onboarding config and all documents. No verified or active member check is required so clients can discover the onboarding requirements before completing them.
func (*OnboardingHandler) GetOnboardingStatus ¶
func (h *OnboardingHandler) GetOnboardingStatus(c fiber.Ctx) error
GetOnboardingStatus handles GET /api/v1/onboarding/status. Returns the next step the authenticated user must complete in the onboarding flow as a single computed string. Only requires authentication so it works at any onboarding stage.
func (*OnboardingHandler) JoinServer ¶
func (h *OnboardingHandler) JoinServer(c fiber.Ctx) error
JoinServer handles POST /api/v1/server/join. Allows users to join the server without an invite when open_join is enabled.
func (*OnboardingHandler) UpdateOnboarding ¶
func (h *OnboardingHandler) UpdateOnboarding(c fiber.Ctx) error
UpdateOnboarding handles PATCH /api/v1/onboarding. Only the server owner may update the onboarding configuration. Documents are managed on the filesystem, not via this endpoint.
type PermissionHandler ¶
type PermissionHandler struct {
// contains filtered or unexported fields
}
PermissionHandler serves permission override endpoints.
func NewPermissionHandler ¶
func NewPermissionHandler(overrides permission.OverrideStore, resolver *permission.Resolver, perms *permission.Publisher, auditLogger *audit.Logger, logger zerolog.Logger) *PermissionHandler
NewPermissionHandler creates a new permission handler.
func (*PermissionHandler) DeleteOverride ¶
func (h *PermissionHandler) DeleteOverride(c fiber.Ctx) error
DeleteOverride handles DELETE /api/v1/channels/:channelID/overrides/:targetID.
func (*PermissionHandler) GetMyPermissions ¶
func (h *PermissionHandler) GetMyPermissions(c fiber.Ctx) error
GetMyPermissions handles GET /api/v1/channels/:channelID/permissions/@me.
func (*PermissionHandler) SetOverride ¶
func (h *PermissionHandler) SetOverride(c fiber.Ctx) error
SetOverride handles PUT /api/v1/channels/:channelID/overrides/:targetID.
type PinHandler ¶
type PinHandler struct {
// contains filtered or unexported fields
}
PinHandler serves message pin/unpin endpoints.
func NewPinHandler ¶
func NewPinHandler( messages message.Repository, attachments attachment.Repository, reactions reaction.Repository, storage media.StorageProvider, resolver *permission.Resolver, gw *gateway.Publisher, auditLogger *audit.Logger, logger zerolog.Logger, ) *PinHandler
NewPinHandler creates a new pin handler.
func (*PinHandler) ListPins ¶
func (h *PinHandler) ListPins(c fiber.Ctx) error
ListPins handles GET /api/v1/channels/:channelID/pins.
func (*PinHandler) PinMessage ¶
func (h *PinHandler) PinMessage(c fiber.Ctx) error
PinMessage handles PUT /api/v1/messages/:messageID/pin.
func (*PinHandler) UnpinMessage ¶
func (h *PinHandler) UnpinMessage(c fiber.Ctx) error
UnpinMessage handles DELETE /api/v1/messages/:messageID/pin.
type ReactionHandler ¶
type ReactionHandler struct {
// contains filtered or unexported fields
}
ReactionHandler serves reaction endpoints.
func NewReactionHandler ¶
func NewReactionHandler( reactions reaction.Repository, messages message.Repository, emojiRepo emoji.Repository, gw *gateway.Publisher, logger zerolog.Logger, ) *ReactionHandler
NewReactionHandler creates a new reaction handler.
func (*ReactionHandler) AddReaction ¶
func (h *ReactionHandler) AddReaction(c fiber.Ctx) error
AddReaction handles PUT /api/v1/channels/:channelID/messages/:messageID/reactions/:emoji.
func (*ReactionHandler) ListReactionUsers ¶
func (h *ReactionHandler) ListReactionUsers(c fiber.Ctx) error
ListReactionUsers handles GET /api/v1/channels/:channelID/messages/:messageID/reactions/:emoji.
func (*ReactionHandler) ListReactions ¶
func (h *ReactionHandler) ListReactions(c fiber.Ctx) error
ListReactions handles GET /api/v1/channels/:channelID/messages/:messageID/reactions.
func (*ReactionHandler) RemoveReaction ¶
func (h *ReactionHandler) RemoveReaction(c fiber.Ctx) error
RemoveReaction handles DELETE /api/v1/channels/:channelID/messages/:messageID/reactions/:emoji.
type ReadStateHandler ¶
type ReadStateHandler struct {
// contains filtered or unexported fields
}
ReadStateHandler serves channel read state endpoints.
func NewReadStateHandler ¶
func NewReadStateHandler(readStates readstate.Repository, gw *gateway.Publisher, logger zerolog.Logger) *ReadStateHandler
NewReadStateHandler creates a new read state handler.
type RoleHandler ¶
type RoleHandler struct {
// contains filtered or unexported fields
}
RoleHandler serves role endpoints.
func NewRoleHandler ¶
func NewRoleHandler(roles role.Repository, perms *permission.Publisher, gw *gateway.Publisher, maxRoles int, auditLogger *audit.Logger, logger zerolog.Logger) *RoleHandler
NewRoleHandler creates a new role handler.
func (*RoleHandler) CreateRole ¶
func (h *RoleHandler) CreateRole(c fiber.Ctx) error
CreateRole handles POST /api/v1/server/roles.
func (*RoleHandler) DeleteRole ¶
func (h *RoleHandler) DeleteRole(c fiber.Ctx) error
DeleteRole handles DELETE /api/v1/server/roles/:roleID.
func (*RoleHandler) ListRoles ¶
func (h *RoleHandler) ListRoles(c fiber.Ctx) error
ListRoles handles GET /api/v1/server/roles.
func (*RoleHandler) UpdateRole ¶
func (h *RoleHandler) UpdateRole(c fiber.Ctx) error
UpdateRole handles PATCH /api/v1/server/roles/:roleID.
type SearchHandler ¶
type SearchHandler struct {
// contains filtered or unexported fields
}
SearchHandler serves message search endpoints.
func NewSearchHandler ¶
func NewSearchHandler(service *search.Service, logger zerolog.Logger) *SearchHandler
NewSearchHandler creates a new search handler.
func (*SearchHandler) SearchMessages ¶
func (h *SearchHandler) SearchMessages(c fiber.Ctx) error
SearchMessages handles GET /api/v1/search/messages. It returns messages matching the query, scoped to channels the authenticated user has permission to view.
type ServerHandler ¶
type ServerHandler struct {
// contains filtered or unexported fields
}
ServerHandler serves server configuration endpoints.
func NewServerHandler ¶
func NewServerHandler(servers server.Repository, gw *gateway.Publisher, auditLogger *audit.Logger, logger zerolog.Logger) *ServerHandler
NewServerHandler creates a new server handler.
func (*ServerHandler) Get ¶
func (h *ServerHandler) Get(c fiber.Ctx) error
Get handles GET /api/v1/server.
func (*ServerHandler) GetPublicInfo ¶
func (h *ServerHandler) GetPublicInfo(c fiber.Ctx) error
GetPublicInfo handles GET /api/v1/server/info (unauthenticated).
type SettingSyncHandler ¶
type SettingSyncHandler struct {
// contains filtered or unexported fields
}
SettingSyncHandler serves the encrypted settings sync endpoints.
func NewSettingSyncHandler ¶
func NewSettingSyncHandler(repo settingsync.Repository, logger zerolog.Logger) *SettingSyncHandler
NewSettingSyncHandler creates a new settings sync handler.
func (*SettingSyncHandler) Delete ¶
func (h *SettingSyncHandler) Delete(c fiber.Ctx) error
Delete handles DELETE /api/v1/users/@me/synced-settings.
type ThreadHandler ¶
type ThreadHandler struct {
// contains filtered or unexported fields
}
ThreadHandler serves thread endpoints.
func NewThreadHandler ¶
func NewThreadHandler( threads thread.Repository, messages message.Repository, channels channel.Repository, attachments attachment.Repository, reactions reaction.Repository, storage media.StorageProvider, resolver *permission.Resolver, gw *gateway.Publisher, presenceStore *presence.Store, maxContent int, maxAttachments int, logger zerolog.Logger, ) *ThreadHandler
NewThreadHandler creates a new thread handler.
func (*ThreadHandler) CreateThread ¶
func (h *ThreadHandler) CreateThread(c fiber.Ctx) error
CreateThread handles POST /api/v1/messages/:messageID/threads.
func (*ThreadHandler) CreateThreadMessage ¶
func (h *ThreadHandler) CreateThreadMessage(c fiber.Ctx) error
CreateThreadMessage handles POST /api/v1/threads/:threadID/messages.
func (*ThreadHandler) GetThread ¶
func (h *ThreadHandler) GetThread(c fiber.Ctx) error
GetThread handles GET /api/v1/threads/:threadID.
func (*ThreadHandler) ListThreadMessages ¶
func (h *ThreadHandler) ListThreadMessages(c fiber.Ctx) error
ListThreadMessages handles GET /api/v1/threads/:threadID/messages.
func (*ThreadHandler) ListThreads ¶
func (h *ThreadHandler) ListThreads(c fiber.Ctx) error
ListThreads handles GET /api/v1/channels/:channelID/threads.
func (*ThreadHandler) UpdateThread ¶
func (h *ThreadHandler) UpdateThread(c fiber.Ctx) error
UpdateThread handles PATCH /api/v1/threads/:threadID.
type TypingHandler ¶
type TypingHandler struct {
// contains filtered or unexported fields
}
TypingHandler serves the typing indicator endpoint.
func NewTypingHandler ¶
func NewTypingHandler(presenceStore *presence.Store, gw *gateway.Publisher, logger zerolog.Logger) *TypingHandler
NewTypingHandler creates a new typing handler.
func (*TypingHandler) StartTyping ¶
func (h *TypingHandler) StartTyping(c fiber.Ctx) error
StartTyping handles POST /api/v1/channels/:channelID/typing. It records a typing indicator for the authenticated user, deduplicating rapid calls via a short-lived Valkey key. When the key is newly created, a TYPING_START dispatch event is published to the gateway.
func (*TypingHandler) StopTyping ¶
func (h *TypingHandler) StopTyping(c fiber.Ctx) error
StopTyping handles DELETE /api/v1/channels/:channelID/typing. It clears the typing indicator for the authenticated user and publishes a TYPING_STOP dispatch event when the key existed.
type UserHandler ¶
type UserHandler struct {
// contains filtered or unexported fields
}
UserHandler serves user profile endpoints.
func NewUserHandler ¶
func NewUserHandler(users user.Repository, authSvc *auth.Service, logger zerolog.Logger) *UserHandler
NewUserHandler creates a new user handler.
func (*UserHandler) DeleteMe ¶
func (h *UserHandler) DeleteMe(c fiber.Ctx) error
DeleteMe handles DELETE /api/v1/users/@me.
func (*UserHandler) GetMe ¶
func (h *UserHandler) GetMe(c fiber.Ctx) error
GetMe handles GET /api/v1/users/@me.
func (*UserHandler) GetProfile ¶
func (h *UserHandler) GetProfile(c fiber.Ctx) error
GetProfile handles GET /api/v1/users/:userID.