TTime/backend/internal/handlers/global_state.go
2024-03-20 11:23:24 +01:00

51 lines
2.2 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
// UpdateProject(c *fiber.Ctx) error // To update a project // WIP
DeleteProject(c *fiber.Ctx) error // To delete a project // WIP
// CreateTask(c *fiber.Ctx) error // To create a new task // WIP
// GetTasks(c *fiber.Ctx) error // To get all tasks // WIP
// GetTask(c *fiber.Ctx) error // To get a specific task // WIP
// UpdateTask(c *fiber.Ctx) error // To update a task // WIP
// DeleteTask(c *fiber.Ctx) error // To delete a task // WIP
// CreateCollection(c *fiber.Ctx) error // To create a new collection // WIP
// GetCollections(c *fiber.Ctx) error // To get all collections // WIP
// GetCollection(c *fiber.Ctx) error // To get a specific collection // WIP
// UpdateCollection(c *fiber.Ctx) error // To update a collection // WIP
// DeleteCollection(c *fiber.Ctx) error // To delete a collection // WIP
// SignCollection(c *fiber.Ctx) error // To sign a collection // 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
}
// "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
}