Documentation
¶
Index ¶
- Constants
- Variables
- func AccountIDFromCtx(ctx context.Context) (uuid.UUID, bool)
- func CheckPasswordHash(password []byte, passwordHash string) (bool, error)
- func CtxWithAccountID(parent context.Context, accountID uuid.UUID) context.Context
- func CtxWithID(parent context.Context, id uuid.UUID) context.Context
- func CtxWithSessionID(parent context.Context, accountID uuid.UUID) context.Context
- func IDFromCtx(ctx context.Context) (uuid.UUID, bool)
- func JSONError(rw http.ResponseWriter, r *http.Request, msg string, code int)
- func NewPasswordHash(password, salt []byte) string
- func RequireRequestBody(next http.Handler) http.Handler
- func SessionIDFromCtx(ctx context.Context) (uuid.UUID, bool)
- func WithUUIDFromURL(next http.Handler) http.Handler
- type AccountDeleteResponse
- type AccountGetResponse
- type AccountPostResponse
- type AccountPutRequest
- type AccountPutResponse
- type Configuration
- type EmojiDeleteResponse
- type EmojiGetResponse
- type EmojiPostResponse
- type EmojiPutRequest
- type EmojiPutResponse
- type FileDeleteResponse
- type FileGetResponse
- type FilePostResponse
- type FilePutRequest
- type FilePutResponse
- type FilterDeleteResponse
- type FilterGetResponse
- type FilterPostResponse
- type FilterPutRequest
- type FilterPutResponse
- type GroupDeleteResponse
- type GroupGetResponse
- type GroupPostResponse
- type GroupPutRequest
- type GroupPutResponse
- type InstanceDeleteResponse
- type InstanceGetResponse
- type InstancePostResponse
- type InstancePutRequest
- type InstancePutResponse
- type JSONResponse
- type PollDeleteResponse
- type PollGetResponse
- type PollPostResponse
- type PollPutRequest
- type PollPutResponse
- type PostDeleteResponse
- type PostGetResponse
- type PostPostResponse
- type PostPutRequest
- type PostPutResponse
- type ProfileDeleteResponse
- type ProfileGetResponse
- type ProfilePostResponse
- type ProfilePutRequest
- type ProfilePutResponse
- type ReportDeleteResponse
- type ReportGetResponse
- type ReportPostResponse
- type ReportPutRequest
- type ReportPutResponse
- type Server
- func (server *Server) APIv1Router(r chi.Router)
- func (server *Server) AccountDelete(rw http.ResponseWriter, r *http.Request)
- func (server *Server) AccountGet(rw http.ResponseWriter, r *http.Request)
- func (server *Server) AccountHead(rw http.ResponseWriter, r *http.Request)
- func (server *Server) AccountPost(rw http.ResponseWriter, r *http.Request)
- func (server *Server) AccountPut(rw http.ResponseWriter, r *http.Request)
- func (server *Server) AutoCleanupExpiredSessions(every time.Duration)
- func (server *Server) Close()
- func (server *Server) Conn(ctx context.Context) (conn *pgx.Conn, release func(), err error)
- func (server *Server) EmojiDelete(rw http.ResponseWriter, r *http.Request)
- func (server *Server) EmojiGet(rw http.ResponseWriter, r *http.Request)
- func (server *Server) EmojiHead(rw http.ResponseWriter, r *http.Request)
- func (server *Server) EmojiPost(rw http.ResponseWriter, r *http.Request)
- func (server *Server) EmojiPut(rw http.ResponseWriter, r *http.Request)
- func (server *Server) FileDelete(rw http.ResponseWriter, r *http.Request)
- func (server *Server) FileGet(rw http.ResponseWriter, r *http.Request)
- func (server *Server) FileHead(rw http.ResponseWriter, r *http.Request)
- func (server *Server) FilePost(rw http.ResponseWriter, r *http.Request)
- func (server *Server) FilePut(rw http.ResponseWriter, r *http.Request)
- func (server *Server) FilterDelete(rw http.ResponseWriter, r *http.Request)
- func (server *Server) FilterGet(rw http.ResponseWriter, r *http.Request)
- func (server *Server) FilterHead(rw http.ResponseWriter, r *http.Request)
- func (server *Server) FilterPost(rw http.ResponseWriter, r *http.Request)
- func (server *Server) FilterPut(rw http.ResponseWriter, r *http.Request)
- func (server *Server) GroupDelete(rw http.ResponseWriter, r *http.Request)
- func (server *Server) GroupGet(rw http.ResponseWriter, r *http.Request)
- func (server *Server) GroupHead(rw http.ResponseWriter, r *http.Request)
- func (server *Server) GroupPost(rw http.ResponseWriter, r *http.Request)
- func (server *Server) GroupPut(rw http.ResponseWriter, r *http.Request)
- func (server *Server) InstanceDelete(rw http.ResponseWriter, r *http.Request)
- func (server *Server) InstanceGet(rw http.ResponseWriter, r *http.Request)
- func (server *Server) InstanceHead(rw http.ResponseWriter, r *http.Request)
- func (server *Server) InstancePost(rw http.ResponseWriter, r *http.Request)
- func (server *Server) InstancePut(rw http.ResponseWriter, r *http.Request)
- func (server *Server) PollDelete(rw http.ResponseWriter, r *http.Request)
- func (server *Server) PollGet(rw http.ResponseWriter, r *http.Request)
- func (server *Server) PollHead(rw http.ResponseWriter, r *http.Request)
- func (server *Server) PollPost(rw http.ResponseWriter, r *http.Request)
- func (server *Server) PollPut(rw http.ResponseWriter, r *http.Request)
- func (server *Server) PostDelete(rw http.ResponseWriter, r *http.Request)
- func (server *Server) PostGet(rw http.ResponseWriter, r *http.Request)
- func (server *Server) PostHead(rw http.ResponseWriter, r *http.Request)
- func (server *Server) PostPost(rw http.ResponseWriter, r *http.Request)
- func (server *Server) PostPut(rw http.ResponseWriter, r *http.Request)
- func (server *Server) ProfileDelete(rw http.ResponseWriter, r *http.Request)
- func (server *Server) ProfileGet(rw http.ResponseWriter, r *http.Request)
- func (server *Server) ProfileHead(rw http.ResponseWriter, r *http.Request)
- func (server *Server) ProfilePost(rw http.ResponseWriter, r *http.Request)
- func (server *Server) ProfilePut(rw http.ResponseWriter, r *http.Request)
- func (server *Server) ReportDelete(rw http.ResponseWriter, r *http.Request)
- func (server *Server) ReportGet(rw http.ResponseWriter, r *http.Request)
- func (server *Server) ReportHead(rw http.ResponseWriter, r *http.Request)
- func (server *Server) ReportPost(rw http.ResponseWriter, r *http.Request)
- func (server *Server) ReportPut(rw http.ResponseWriter, r *http.Request)
- func (server *Server) SessionDelete(rw http.ResponseWriter, r *http.Request)
- func (server *Server) SessionPut(rw http.ResponseWriter, r *http.Request)
- func (server *Server) SetLocalInstance(create bool) (created bool, err error)
- func (server *Server) Setup(create bool) error
- func (server *Server) TimelineDelete(rw http.ResponseWriter, r *http.Request)
- func (server *Server) TimelineGet(rw http.ResponseWriter, r *http.Request)
- func (server *Server) TimelineHead(rw http.ResponseWriter, r *http.Request)
- func (server *Server) TimelinePost(rw http.ResponseWriter, r *http.Request)
- func (server *Server) TimelinePut(rw http.ResponseWriter, r *http.Request)
- func (server *Server) Transaction(fn func(ctx context.Context, tx pgx.Tx) error) error
- func (server *Server) ValidateSession(next http.Handler) http.Handler
- type SessionDeleteResponse
- type SessionPutRequest
- type SessionPutResponse
- type TimelineDeleteResponse
- type TimelineGetResponse
- type TimelinePostResponse
- type TimelinePutRequest
- type TimelinePutResponse
Constants ¶
View Source
const ( Argon2Memory = 64 * 1024 Argon2Time = 2 Argon2Threads = 4 Argon2KeyLength = 32 )
Variables ¶
View Source
var JSONResponseOK = JSONResponse{Status: "ok"}
Functions ¶
func CtxWithAccountID ¶
func CtxWithSessionID ¶
func NewPasswordHash ¶
Types ¶
type AccountDeleteResponse ¶
type AccountDeleteResponse struct {
JSONResponse
}
type AccountGetResponse ¶
type AccountPostResponse ¶
type AccountPostResponse struct {
JSONResponse
}
type AccountPutRequest ¶
type AccountPutResponse ¶
type AccountPutResponse struct {
JSONResponse
ID uuid.UUID `json:"id"`
}
type Configuration ¶
type Configuration struct {
Address *netip.AddrPort `toml:"address"`
Host string `toml:"host"`
Sessions struct {
PublicKey string `toml:"public_key"`
PrivateKey string `toml:"private_key"`
} `toml:"sessions"`
Database struct {
Type string `toml:"type"`
DSN string `toml:"dsn"`
} `toml:"database"`
DisableWebUI bool `toml:"disable_web_ui"`
}
type EmojiDeleteResponse ¶
type EmojiDeleteResponse struct {
JSONResponse
}
type EmojiGetResponse ¶
type EmojiGetResponse struct {
JSONResponse
}
type EmojiPostResponse ¶
type EmojiPostResponse struct {
JSONResponse
}
type EmojiPutRequest ¶
type EmojiPutRequest struct{}
type EmojiPutResponse ¶
type EmojiPutResponse struct {
JSONResponse
}
type FileDeleteResponse ¶
type FileDeleteResponse struct {
JSONResponse
}
type FileGetResponse ¶
type FileGetResponse struct {
JSONResponse
}
type FilePostResponse ¶
type FilePostResponse struct {
JSONResponse
}
type FilePutRequest ¶
type FilePutRequest struct{}
type FilePutResponse ¶
type FilePutResponse struct {
JSONResponse
}
type FilterDeleteResponse ¶
type FilterDeleteResponse struct {
JSONResponse
}
type FilterGetResponse ¶
type FilterGetResponse struct {
JSONResponse
}
type FilterPostResponse ¶
type FilterPostResponse struct {
JSONResponse
}
type FilterPutRequest ¶
type FilterPutRequest struct{}
type FilterPutResponse ¶
type FilterPutResponse struct {
JSONResponse
}
type GroupDeleteResponse ¶
type GroupDeleteResponse struct {
JSONResponse
}
type GroupGetResponse ¶
type GroupGetResponse struct {
JSONResponse
}
type GroupPostResponse ¶
type GroupPostResponse struct {
JSONResponse
}
type GroupPutRequest ¶
type GroupPutRequest struct{}
type GroupPutResponse ¶
type GroupPutResponse struct {
JSONResponse
}
type InstanceDeleteResponse ¶
type InstanceDeleteResponse struct {
JSONResponse
}
type InstanceGetResponse ¶
type InstanceGetResponse struct {
JSONResponse
}
type InstancePostResponse ¶
type InstancePostResponse struct {
JSONResponse
}
type InstancePutRequest ¶
type InstancePutRequest struct{}
type InstancePutResponse ¶
type InstancePutResponse struct {
JSONResponse
}
type JSONResponse ¶
type PollDeleteResponse ¶
type PollDeleteResponse struct {
JSONResponse
}
type PollGetResponse ¶
type PollGetResponse struct {
JSONResponse
}
type PollPostResponse ¶
type PollPostResponse struct {
JSONResponse
}
type PollPutRequest ¶
type PollPutRequest struct{}
type PollPutResponse ¶
type PollPutResponse struct {
JSONResponse
}
type PostDeleteResponse ¶
type PostDeleteResponse struct {
JSONResponse
}
type PostGetResponse ¶
type PostGetResponse struct {
JSONResponse
ID uuid.UUID `json:"id"`
ProfileID uuid.UUID `json:"profile_id"`
ReplyToID *uuid.UUID `json:"reply_to_id,omitempty"`
Subject *string `json:"subject,omitempty"`
Content string `json:"content"`
Tags []string `json:"tags,omitempty"`
PollID *uuid.UUID `json:"poll_id,omitempty"`
GroupIDs []uuid.UUID `json:"group_ids,omitempty"`
FileIDs []uuid.UUID `json:"file_ids,omitempty"`
}
type PostPostResponse ¶
type PostPostResponse struct {
JSONResponse
}
type PostPutRequest ¶
type PostPutRequest struct {
ProfileID uuid.UUID `json:"profile_id"`
ReplyToID *uuid.UUID `json:"reply_to_id"`
Subject *string `json:"subject"`
Content string `json:"content"`
Tags []string `json:"tags"`
PollID *uuid.UUID `json:"poll_id"`
GroupIDs []uuid.UUID `json:"group_ids"`
FileIDs []uuid.UUID `json:"file_ids"`
}
type PostPutResponse ¶
type PostPutResponse struct {
JSONResponse
ID uuid.UUID `json:"id"`
Version uint `json:"version"`
}
type ProfileDeleteResponse ¶
type ProfileDeleteResponse struct {
JSONResponse
}
type ProfileGetResponse ¶
type ProfileGetResponse struct {
JSONResponse
ID uuid.UUID `json:"id"`
AccountID uuid.UUID `json:"account_id"`
Name string `json:"name"`
DisplayName *string `json:"display_name"`
Description *string `json:"description"`
AvatarFileID *uuid.UUID `json:"avatar_file_id"`
HeaderFileID *uuid.UUID `json:"header_file_id"`
BackgroundFileID *uuid.UUID `json:"background_file_id"`
AccentColor *schema.Color `json:"accent_color"`
CreatedAt time.Time `json:"created_at"`
}
type ProfilePostResponse ¶
type ProfilePostResponse struct {
JSONResponse
}
type ProfilePutRequest ¶
type ProfilePutResponse ¶
type ProfilePutResponse struct {
JSONResponse
ID uuid.UUID `json:"id"`
AccountID uuid.UUID `json:"account_id"`
}
type ReportDeleteResponse ¶
type ReportDeleteResponse struct {
JSONResponse
}
type ReportGetResponse ¶
type ReportGetResponse struct {
JSONResponse
}
type ReportPostResponse ¶
type ReportPostResponse struct {
JSONResponse
}
type ReportPutRequest ¶
type ReportPutRequest struct{}
type ReportPutResponse ¶
type ReportPutResponse struct {
JSONResponse
}
type Server ¶
type Server struct {
Config *Configuration
// contains filtered or unexported fields
}
func NewServerFromFile ¶
func (*Server) APIv1Router ¶
func (*Server) AccountDelete ¶
func (server *Server) AccountDelete(rw http.ResponseWriter, r *http.Request)
func (*Server) AccountGet ¶
func (server *Server) AccountGet(rw http.ResponseWriter, r *http.Request)
func (*Server) AccountHead ¶
func (server *Server) AccountHead(rw http.ResponseWriter, r *http.Request)
func (*Server) AccountPost ¶
func (server *Server) AccountPost(rw http.ResponseWriter, r *http.Request)
func (*Server) AccountPut ¶
func (server *Server) AccountPut(rw http.ResponseWriter, r *http.Request)
func (*Server) AutoCleanupExpiredSessions ¶
func (*Server) EmojiDelete ¶
func (server *Server) EmojiDelete(rw http.ResponseWriter, r *http.Request)
TODO.
func (*Server) EmojiGet ¶
func (server *Server) EmojiGet(rw http.ResponseWriter, r *http.Request)
TODO.
func (*Server) EmojiHead ¶
func (server *Server) EmojiHead(rw http.ResponseWriter, r *http.Request)
TODO.
func (*Server) EmojiPost ¶
func (server *Server) EmojiPost(rw http.ResponseWriter, r *http.Request)
TODO.
func (*Server) EmojiPut ¶
func (server *Server) EmojiPut(rw http.ResponseWriter, r *http.Request)
TODO.
func (*Server) FileDelete ¶
func (server *Server) FileDelete(rw http.ResponseWriter, r *http.Request)
TODO.
func (*Server) FileGet ¶
func (server *Server) FileGet(rw http.ResponseWriter, r *http.Request)
TODO.
func (*Server) FileHead ¶
func (server *Server) FileHead(rw http.ResponseWriter, r *http.Request)
TODO.
func (*Server) FilePost ¶
func (server *Server) FilePost(rw http.ResponseWriter, r *http.Request)
TODO.
func (*Server) FilePut ¶
func (server *Server) FilePut(rw http.ResponseWriter, r *http.Request)
TODO.
func (*Server) FilterDelete ¶
func (server *Server) FilterDelete(rw http.ResponseWriter, r *http.Request)
TODO.
func (*Server) FilterGet ¶
func (server *Server) FilterGet(rw http.ResponseWriter, r *http.Request)
TODO.
func (*Server) FilterHead ¶
func (server *Server) FilterHead(rw http.ResponseWriter, r *http.Request)
TODO.
func (*Server) FilterPost ¶
func (server *Server) FilterPost(rw http.ResponseWriter, r *http.Request)
TODO.
func (*Server) FilterPut ¶
func (server *Server) FilterPut(rw http.ResponseWriter, r *http.Request)
TODO.
func (*Server) GroupDelete ¶
func (server *Server) GroupDelete(rw http.ResponseWriter, r *http.Request)
TODO.
func (*Server) GroupGet ¶
func (server *Server) GroupGet(rw http.ResponseWriter, r *http.Request)
TODO.
func (*Server) GroupHead ¶
func (server *Server) GroupHead(rw http.ResponseWriter, r *http.Request)
TODO.
func (*Server) GroupPost ¶
func (server *Server) GroupPost(rw http.ResponseWriter, r *http.Request)
TODO.
func (*Server) GroupPut ¶
func (server *Server) GroupPut(rw http.ResponseWriter, r *http.Request)
TODO.
func (*Server) InstanceDelete ¶
func (server *Server) InstanceDelete(rw http.ResponseWriter, r *http.Request)
TODO.
func (*Server) InstanceGet ¶
func (server *Server) InstanceGet(rw http.ResponseWriter, r *http.Request)
TODO.
func (*Server) InstanceHead ¶
func (server *Server) InstanceHead(rw http.ResponseWriter, r *http.Request)
TODO.
func (*Server) InstancePost ¶
func (server *Server) InstancePost(rw http.ResponseWriter, r *http.Request)
TODO.
func (*Server) InstancePut ¶
func (server *Server) InstancePut(rw http.ResponseWriter, r *http.Request)
TODO.
func (*Server) PollDelete ¶
func (server *Server) PollDelete(rw http.ResponseWriter, r *http.Request)
TODO.
func (*Server) PollGet ¶
func (server *Server) PollGet(rw http.ResponseWriter, r *http.Request)
TODO.
func (*Server) PollHead ¶
func (server *Server) PollHead(rw http.ResponseWriter, r *http.Request)
TODO.
func (*Server) PollPost ¶
func (server *Server) PollPost(rw http.ResponseWriter, r *http.Request)
TODO.
func (*Server) PollPut ¶
func (server *Server) PollPut(rw http.ResponseWriter, r *http.Request)
TODO.
func (*Server) PostDelete ¶
func (server *Server) PostDelete(rw http.ResponseWriter, r *http.Request)
TODO.
func (*Server) PostHead ¶
func (server *Server) PostHead(rw http.ResponseWriter, r *http.Request)
TODO.
func (*Server) PostPost ¶
func (server *Server) PostPost(rw http.ResponseWriter, r *http.Request)
TODO.
func (*Server) ProfileDelete ¶
func (server *Server) ProfileDelete(rw http.ResponseWriter, r *http.Request)
TODO.
func (*Server) ProfileGet ¶
func (server *Server) ProfileGet(rw http.ResponseWriter, r *http.Request)
func (*Server) ProfileHead ¶
func (server *Server) ProfileHead(rw http.ResponseWriter, r *http.Request)
func (*Server) ProfilePost ¶
func (server *Server) ProfilePost(rw http.ResponseWriter, r *http.Request)
TODO.
func (*Server) ProfilePut ¶
func (server *Server) ProfilePut(rw http.ResponseWriter, r *http.Request)
func (*Server) ReportDelete ¶
func (server *Server) ReportDelete(rw http.ResponseWriter, r *http.Request)
TODO.
func (*Server) ReportGet ¶
func (server *Server) ReportGet(rw http.ResponseWriter, r *http.Request)
TODO.
func (*Server) ReportHead ¶
func (server *Server) ReportHead(rw http.ResponseWriter, r *http.Request)
TODO.
func (*Server) ReportPost ¶
func (server *Server) ReportPost(rw http.ResponseWriter, r *http.Request)
TODO.
func (*Server) ReportPut ¶
func (server *Server) ReportPut(rw http.ResponseWriter, r *http.Request)
TODO.
func (*Server) SessionDelete ¶
func (server *Server) SessionDelete(rw http.ResponseWriter, r *http.Request)
func (*Server) SessionPut ¶
func (server *Server) SessionPut(rw http.ResponseWriter, r *http.Request)
func (*Server) SetLocalInstance ¶
func (*Server) TimelineDelete ¶
func (server *Server) TimelineDelete(rw http.ResponseWriter, r *http.Request)
TODO.
func (*Server) TimelineGet ¶
func (server *Server) TimelineGet(rw http.ResponseWriter, r *http.Request)
TODO.
func (*Server) TimelineHead ¶
func (server *Server) TimelineHead(rw http.ResponseWriter, r *http.Request)
TODO.
func (*Server) TimelinePost ¶
func (server *Server) TimelinePost(rw http.ResponseWriter, r *http.Request)
TODO.
func (*Server) TimelinePut ¶
func (server *Server) TimelinePut(rw http.ResponseWriter, r *http.Request)
TODO.
func (*Server) Transaction ¶
type SessionDeleteResponse ¶
type SessionDeleteResponse struct {
JSONResponse
}
type SessionPutRequest ¶
type SessionPutResponse ¶
type SessionPutResponse struct {
JSONResponse
ID uuid.UUID `json:"id"`
Token string `json:"token"`
}
type TimelineDeleteResponse ¶
type TimelineDeleteResponse struct {
JSONResponse
}
type TimelineGetResponse ¶
type TimelineGetResponse struct {
JSONResponse
}
type TimelinePostResponse ¶
type TimelinePostResponse struct {
JSONResponse
}
type TimelinePutRequest ¶
type TimelinePutRequest struct{}
type TimelinePutResponse ¶
type TimelinePutResponse struct {
JSONResponse
}
Click to show internal directories.
Click to hide internal directories.