43 lines
1.5 KiB
Go
43 lines
1.5 KiB
Go
package handlers
|
|
|
|
import (
|
|
"ttime/internal/database"
|
|
|
|
"github.com/gofiber/fiber/v2"
|
|
)
|
|
|
|
// The actual interface that we will use
|
|
type GlobalState interface {
|
|
Register(c *fiber.Ctx) error // To register a new user
|
|
UserDelete(c *fiber.Ctx) error // To delete a user
|
|
Login(c *fiber.Ctx) error // To get the token
|
|
LoginRenew(c *fiber.Ctx) error // To renew the token
|
|
CreateProject(c *fiber.Ctx) error // To create a new project
|
|
GetUserProjects(c *fiber.Ctx) error // To get all projects
|
|
SubmitWeeklyReport(c *fiber.Ctx) error
|
|
GetWeeklyReport(c *fiber.Ctx) error
|
|
SignReport(c *fiber.Ctx) error
|
|
GetProject(c *fiber.Ctx) error
|
|
AddUserToProjectHandler(c *fiber.Ctx) error
|
|
PromoteToAdmin(c *fiber.Ctx) error
|
|
GetWeeklyReportsUserHandler(c *fiber.Ctx) error
|
|
IsProjectManagerHandler(c *fiber.Ctx) error
|
|
DeleteProject(c *fiber.Ctx) error // To delete a project // WIP
|
|
ListAllUsers(c *fiber.Ctx) error // To get a list of all users in the application database
|
|
ListAllUsersProject(c *fiber.Ctx) error // To get a list of all users for a specific project
|
|
ProjectRoleChange(c *fiber.Ctx) error // To change a users role in a project
|
|
ChangeUserName(c *fiber.Ctx) error // WIP
|
|
GetAllUsersProject(c *fiber.Ctx) error // WIP
|
|
GetUnsignedReports(c *fiber.Ctx) error //
|
|
UpdateWeeklyReport(c *fiber.Ctx) error
|
|
}
|
|
|
|
// "Constructor"
|
|
func NewGlobalState(db database.Database) GlobalState {
|
|
return &GState{Db: db}
|
|
}
|
|
|
|
// The global state, which implements all the handlers
|
|
type GState struct {
|
|
Db database.Database
|
|
}
|