Major changes related to reports
This commit is contained in:
parent
3526decbad
commit
d99de54c5d
12 changed files with 81 additions and 98 deletions
|
@ -18,6 +18,7 @@ type GlobalState interface {
|
|||
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
|
||||
// GetProject(c *fiber.Ctx) error // To get a specific project
|
||||
// UpdateProject(c *fiber.Ctx) error // To update a project
|
||||
// DeleteProject(c *fiber.Ctx) error // To delete a project
|
||||
|
@ -77,12 +78,17 @@ func (gs *GState) Register(c *fiber.Ctx) error {
|
|||
// This path should obviously be protected in the future
|
||||
// UserDelete deletes a user from the database
|
||||
func (gs *GState) UserDelete(c *fiber.Ctx) error {
|
||||
u := new(types.User)
|
||||
if err := c.BodyParser(u); err != nil {
|
||||
return c.Status(400).SendString(err.Error())
|
||||
// Read from path parameters
|
||||
username := c.Params("username")
|
||||
|
||||
// Read username from Locals
|
||||
auth_username := c.Locals("user").(*jwt.Token).Claims.(jwt.MapClaims)["name"].(string)
|
||||
|
||||
if username != auth_username {
|
||||
return c.Status(403).SendString("You can only delete yourself")
|
||||
}
|
||||
|
||||
if err := gs.Db.RemoveUser(u.Username); err != nil {
|
||||
if err := gs.Db.RemoveUser(username); err != nil {
|
||||
return c.Status(500).SendString(err.Error())
|
||||
}
|
||||
|
||||
|
@ -247,3 +253,21 @@ func (gs *GState) GetProject(c *fiber.Ctx) error {
|
|||
// Return the project as JSON
|
||||
return c.JSON(project)
|
||||
}
|
||||
|
||||
func (gs *GState) SubmitWeeklyReport(c *fiber.Ctx) error {
|
||||
// Extract the necessary parameters from the token
|
||||
user := c.Locals("user").(*jwt.Token)
|
||||
claims := user.Claims.(jwt.MapClaims)
|
||||
username := claims["name"].(string)
|
||||
|
||||
report := new(types.NewWeeklyReport)
|
||||
if err := c.BodyParser(report); err != nil {
|
||||
return c.Status(400).SendString(err.Error())
|
||||
}
|
||||
|
||||
if err := gs.Db.AddWeeklyReport(report.ProjectName, username, report.Week, report.DevelopmentTime, report.MeetingTime, report.AdminTime, report.OwnWorkTime, report.StudyTime, report.TestingTime); err != nil {
|
||||
return c.Status(500).SendString(err.Error())
|
||||
}
|
||||
|
||||
return c.Status(200).SendString("Time report added")
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue