From 2fd9d0da2ec6812c5167ee81cef9dcdd5cae64a8 Mon Sep 17 00:00:00 2001 From: Matei Adriel Date: Thu, 2 Jan 2020 13:00:02 +0200 Subject: [PATCH] fsharp(todolist-api): chore: added a db Signed-off-by: prescientmoon --- fsharp/todolist-api/db/Dockerfile | 2 ++ fsharp/todolist-api/db/create.sql | 20 ++++++++++++++++++++ fsharp/todolist-api/src/App.fs | 7 +++++-- 3 files changed, 27 insertions(+), 2 deletions(-) create mode 100644 fsharp/todolist-api/db/Dockerfile create mode 100644 fsharp/todolist-api/db/create.sql diff --git a/fsharp/todolist-api/db/Dockerfile b/fsharp/todolist-api/db/Dockerfile new file mode 100644 index 0000000..7595416 --- /dev/null +++ b/fsharp/todolist-api/db/Dockerfile @@ -0,0 +1,2 @@ +FROM postgres +COPY create.sql /docker-entrypoint-initdb.d/postgres_create.sql \ No newline at end of file diff --git a/fsharp/todolist-api/db/create.sql b/fsharp/todolist-api/db/create.sql new file mode 100644 index 0000000..68127af --- /dev/null +++ b/fsharp/todolist-api/db/create.sql @@ -0,0 +1,20 @@ +CREATE DATABASE "todo_api_db"; + +\connect "todo_api_db" + +DROP TABLE IF EXISTS "todos" CASCADE; + +CREATE TABLE "todos" ( + "id" SERIAL PRIMARY KEY NOT NULL, + "name" varchar(120) NULL, + "description" varchar(4000) NULL); + +INSERT INTO "todos" ("name", "description") VALUES ('Example', 'I wonder if you are reading this.'); + +CREATE USER suave WITH ENCRYPTED Password '1234'; +GRANT USAGE ON SCHEMA public to suave; +ALTER DEFAULT PRIVILEGES IN SCHEMA public GRANT SELECT ON TABLES TO suave; + +GRANT CONNECT ON DATABASE "todo_api_db" to suave; +GRANT USAGE, SELECT ON ALL SEQUENCES IN SCHEMA public TO suave; +GRANT SELECT, INSERT, UPDATE, DELETE ON ALL TABLES IN SCHEMA public TO suave; diff --git a/fsharp/todolist-api/src/App.fs b/fsharp/todolist-api/src/App.fs index a42769a..f33e6b9 100644 --- a/fsharp/todolist-api/src/App.fs +++ b/fsharp/todolist-api/src/App.fs @@ -1,8 +1,11 @@ // Learn more about F# at http://fsharp.org - +open Suave +open Suave.Successful [] let main argv = - printfn "Hello World from F#!" + + startWebServer defaultConfig (OK "hello world") + 0 // return an integer exit code