7 changed files with 130 additions and 3 deletions
@ -0,0 +1,14 @@
@@ -0,0 +1,14 @@
|
||||
package handlers |
||||
|
||||
import ( |
||||
"fmt" |
||||
"net/http" |
||||
) |
||||
|
||||
func (h *Handler) Hackathon(w http.ResponseWriter, r *http.Request) { |
||||
fmt.Println("I hit the hackathon route...") |
||||
err := h.Template.ExecuteTemplate(w, "hackathon.html", nil) |
||||
if err != nil { |
||||
http.Error(w, "Template rendering error", http.StatusInternalServerError) |
||||
} |
||||
} |
||||
@ -0,0 +1,42 @@
@@ -0,0 +1,42 @@
|
||||
package database |
||||
|
||||
import ( |
||||
"database/sql" |
||||
"fmt" |
||||
"github.com/jmoiron/sqlx" |
||||
_ "github.com/tursodatabase/libsql-client-go/libsql" |
||||
"os" |
||||
) |
||||
|
||||
type Database interface { |
||||
Query(query string, args ...interface{}) (*sqlx.Rows, error) |
||||
Exec(query string, args ...interface{}) (sql.Result, error) |
||||
Close() error |
||||
} |
||||
|
||||
type DBClient struct { |
||||
db *sqlx.DB |
||||
} |
||||
|
||||
func NewDbClient() (*DBClient, error) { |
||||
dsn := os.Getenv("DATABASE_URL") + "?authToken=" + os.Getenv("DATABASE_TOKEN") |
||||
db, err := sqlx.Open("libsql", dsn) |
||||
if err != nil { |
||||
fmt.Printf("error connecting to database: %v", err) |
||||
return nil, fmt.Errorf("failed to open db: %w", err) |
||||
} |
||||
|
||||
return &DBClient{db: db}, nil |
||||
} |
||||
|
||||
func (c *DBClient) Query(query string, args ...interface{}) (*sqlx.Rows, error) { |
||||
return c.db.Queryx(query, args...) |
||||
} |
||||
|
||||
func (c *DBClient) Exec(query string, args ...interface{}) (sql.Result, error) { |
||||
return c.db.Exec(query, args...) |
||||
} |
||||
|
||||
func (c *DBClient) Close() error { |
||||
return c.db.Close() |
||||
} |
||||
Loading…
Reference in new issue