aboutsummaryrefslogtreecommitdiff
path: root/api/internal/controllers
diff options
context:
space:
mode:
authorZach Berwaldt <zberwaldt@tutamail.com>2024-03-07 23:16:22 -0500
committerZach Berwaldt <zberwaldt@tutamail.com>2024-03-07 23:16:22 -0500
commit8fab2d03bce82e4dee798ebffb1e93c557f62a4b (patch)
tree3d1c769e5f0a1791f45b549b96df30e7f66b7a67 /api/internal/controllers
parent831b6f0167b9c1747d128b4a5a648d4de42ff0a9 (diff)
feat: Update authentication route and add comments to exported members
- The authentication route in the API has been updated to use a new router setup function. - Comments have been added to all exported members of the `auth.go` module in the internal controllers package.
Diffstat (limited to 'api/internal/controllers')
-rw-r--r--api/internal/controllers/auth.go11
-rw-r--r--api/internal/controllers/stats.go6
2 files changed, 15 insertions, 2 deletions
diff --git a/api/internal/controllers/auth.go b/api/internal/controllers/auth.go
index de9ed05..58653d0 100644
--- a/api/internal/controllers/auth.go
+++ b/api/internal/controllers/auth.go
@@ -14,6 +14,11 @@ import (
14 "water/api/internal/database" 14 "water/api/internal/database"
15) 15)
16 16
17
18
19// AuthHandler is a function that handles users' authentication. It checks if the request
20// has valid credentials, authenticates the user and sets the user's session.
21// If the authentication is successful, it will allow the user to access protected routes.
17func AuthHandler (c *gin.Context) { 22func AuthHandler (c *gin.Context) {
18 username, password, ok := c.Request.BasicAuth() 23 username, password, ok := c.Request.BasicAuth()
19 if !ok { 24 if !ok {
@@ -55,7 +60,11 @@ func AuthHandler (c *gin.Context) {
55 c.JSON(http.StatusOK, gin.H{"token": apiToken, "user": user, "preferences": preference}) 60 c.JSON(http.StatusOK, gin.H{"token": apiToken, "user": user, "preferences": preference})
56} 61}
57 62
58// generatToken will g 63
64// generateToken is a helper function used in the AuthHandler. It generates a random token for API authentication.
65// This function creates an empty byte slice of length 32 and fills it with cryptographic random data using the rand.Read function.
66// If an error occurs during the generation, it will return an empty string.
67// The generated cryptographic random data is then encoded into a base64 string and returned.
59func generateToken() string { 68func generateToken() string {
60 token := make([]byte, 32) 69 token := make([]byte, 32)
61 _, err := rand.Read(token) 70 _, err := rand.Read(token)
diff --git a/api/internal/controllers/stats.go b/api/internal/controllers/stats.go
index d8ed434..2234787 100644
--- a/api/internal/controllers/stats.go
+++ b/api/internal/controllers/stats.go
@@ -8,6 +8,10 @@ import (
8 "water/api/internal/models" 8 "water/api/internal/models"
9) 9)
10 10
11// TODO: add comments to all exported members of package.
12
13// GetAllStatistics connects to the database and queries for all statistics in the database.
14// If none have been found it will return an error, otherwise a 200 code is sent along with the list of statistics.
11func GetAllStatistics(c *gin.Context) { 15func GetAllStatistics(c *gin.Context) {
12 db := database.EstablishDBConnection() 16 db := database.EstablishDBConnection()
13 defer func(db *sql.DB) { 17 defer func(db *sql.DB) {
@@ -78,7 +82,7 @@ func PostNewStatistic(c *gin.Context) {
78 c.JSON(http.StatusCreated, gin.H{"status": "created", "id": id}) 82 c.JSON(http.StatusCreated, gin.H{"status": "created", "id": id})
79} 83}
80 84
81func GetWeeklyStatistics (c *gin.Context) { 85func GetWeeklyStatistics(c *gin.Context) {
82 db := database.EstablishDBConnection() 86 db := database.EstablishDBConnection()
83 defer func(db *sql.DB) { 87 defer func(db *sql.DB) {
84 err := db.Close() 88 err := db.Close()