aboutsummaryrefslogtreecommitdiff
path: root/api/internal/database/database.go
diff options
context:
space:
mode:
authorZach Berwaldt <zberwaldt@tutamail.com>2024-03-07 19:16:07 -0500
committerZach Berwaldt <zberwaldt@tutamail.com>2024-03-07 19:16:07 -0500
commit6651daca670664f3de8af9c7bcb74b1e7c6c6be9 (patch)
treef1bb35ef8b0e1d498842a17b84c87c6ee996274e /api/internal/database/database.go
parent5fa57845052655883120ba4d19a85d8756fb8d8c (diff)
Add CORS middleware and authentication middleware to the API server.
The `setupRouter` function in `main.go` now includes a CORS middleware and a token authentication middleware. The CORS middleware allows cross-origin resource sharing by setting the appropriate response headers. The token authentication middleware checks for the presence of an `Authorization` header with a valid bearer token. If the token is missing or invalid, an unauthorized response is returned. In addition to these changes, a new test file `main_test.go` has been added to test the `/api/v1/auth` route. This test suite includes two test cases: one for successful authentication and one for failed authentication. Update go.mod to include new dependencies. The `go.mod` file has been modified to include two new dependencies: `github.com/spf13/viper` and `github.com/stretchr/testify`. Ignore go.sum changes. Ignore changes in the `go.sum` file, as they only include updates to existing dependencies.
Diffstat (limited to 'api/internal/database/database.go')
-rw-r--r--api/internal/database/database.go22
1 files changed, 22 insertions, 0 deletions
diff --git a/api/internal/database/database.go b/api/internal/database/database.go
new file mode 100644
index 0000000..e313af5
--- /dev/null
+++ b/api/internal/database/database.go
@@ -0,0 +1,22 @@
1package database
2
3import (
4 "database/sql"
5 _ "github.com/mattn/go-sqlite3"
6 "log"
7)
8
9func SetupDatabase() {
10 _, err := sql.Open("sqlite3", "water.db")
11 if err != nil {
12 log.Fatal(err)
13 }
14}
15
16func EstablishDBConnection() *sql.DB {
17 db, err := sql.Open("sqlite3", "../db/water.sqlite3")
18 if err != nil {
19 panic(err)
20 }
21 return db
22} \ No newline at end of file