Deletes obsolete question/answer/vote persistence and the compatibility answer endpoint. Existing databases drop the legacy tables through migration 009. Plumber replies now notify the root homeowner even when nested beneath another plumber reply. Post and reply forms prevent duplicate submissions and show progress while posting. Reviewed-on: #7 Co-authored-by: codegirl-007 <s.raide@gmail.com>
41 lines
1.5 KiB
Go
41 lines
1.5 KiB
Go
package store
|
|
|
|
import "context"
|
|
|
|
// List row caps keep hunt/profile/admin pages bounded.
|
|
const (
|
|
HuntListLimit = 100
|
|
ProfileListLimit = 50
|
|
AdminUsersLimit = 50
|
|
)
|
|
|
|
// ListUsersQuery is a paginated admin user search.
|
|
type ListUsersQuery struct {
|
|
Search string
|
|
CursorCreated string
|
|
CursorID string
|
|
Limit int
|
|
}
|
|
|
|
// Store is the application persistence API used by the web layer.
|
|
type Store interface {
|
|
CreateUser(ctx context.Context, u *User) error
|
|
UserByID(ctx context.Context, id string) (*User, error)
|
|
UserByUsername(ctx context.Context, username string) (*User, error)
|
|
ListUsers(ctx context.Context, q ListUsersQuery) (users []User, nextCursorCreated, nextCursorID string, err error)
|
|
CountAdmins(ctx context.Context) (int, error)
|
|
SetUserRole(ctx context.Context, id string, role Role) error
|
|
SaveUserProfile(ctx context.Context, u *User) error
|
|
|
|
CreatePost(ctx context.Context, post *Post) error
|
|
GetPost(ctx context.Context, id string) (*Post, error)
|
|
GetPostThread(ctx context.Context, rootID string) (*Post, error)
|
|
GetPostThreadForViewer(ctx context.Context, rootID, viewerID string) (*Post, error)
|
|
UpdatePost(ctx context.Context, post *Post) error
|
|
ListRootPosts(ctx context.Context, postDate, viewerID string) ([]Post, error)
|
|
ListRootPostsByAuthor(ctx context.Context, authorID string) ([]Post, error)
|
|
ListRootPostsAnsweredBy(ctx context.Context, adminID string) ([]Post, error)
|
|
SetRootPostState(ctx context.Context, id string, state PostState) error
|
|
VotePost(ctx context.Context, userID, postID string, value int) error
|
|
}
|