diff --git a/README.md b/README.md index d9be1c2..b40de1a 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,3 @@ # beep-permissions -Beep backend handling user permissions \ No newline at end of file +Beep backend handling user permissions. Currently, permissions are defined as user-scope (i.e. userid in conversationid). If no such pairing exists, permission is denied. Might consider moving to searchms style user-scope-action system later. diff --git a/main.go b/main.go new file mode 100644 index 0000000..1ea73aa --- /dev/null +++ b/main.go @@ -0,0 +1,40 @@ +package main + +import ( + "database/sql" + "log" + "net/http" + "os" + + "github.com/joho/godotenv" + "github.com/julienschmidt/httprouter" + _ "github.com/lib/pq" +) + +var listen string +var postgres string + +func main() { + // Load .env + err := godotenv.Load() + if err != nil { + log.Fatal("Error loading .env file") + } + listen = os.Getenv("LISTEN") + postgres = os.Getenv("POSTGRES") + + // Postgres + log.Printf("connecting to postgres %s", postgres) + db, err := sql.Open("postgres", postgres) + if err != nil { + log.Fatal(err) + } + defer db.Close() + + // Routes + router := httprouter.New() + + // Serve + log.Printf("starting server on %s", listen) + log.Fatal(http.ListenAndServe(listen, router)) +}