Skip to content

Commit

Permalink
Merge pull request #19 from ob-vss-ss18/refactor
Browse files Browse the repository at this point in the history
Restructure files
  • Loading branch information
MarEliSeg committed Jun 13, 2018
2 parents 724ef34 + 5fc03b6 commit 862e1e9
Show file tree
Hide file tree
Showing 6 changed files with 87 additions and 54 deletions.
25 changes: 25 additions & 0 deletions api/api.go
@@ -0,0 +1,25 @@
package api

import (
"log"

"github.com/graphql-go/graphql"
"github.com/graphql-go/handler"
)

var ApiHandler *handler.Handler

func init() {
schema, err := graphql.NewSchema(graphql.SchemaConfig{
Query: QueryType,
// Mutation: MutationType,
})
if err != nil {
log.Fatal(err)
}

ApiHandler = handler.New(&handler.Config{
Schema: &schema,
GraphiQL: true,
})
}
5 changes: 3 additions & 2 deletions query.go → api/query.go
@@ -1,9 +1,10 @@
package main
package api

import (
"strconv"

"github.com/graphql-go/graphql"
"github.com/ob-vss-ss18/ppl-auth/backend"
)

var QueryType = graphql.NewObject(graphql.ObjectConfig{
Expand All @@ -23,7 +24,7 @@ var QueryType = graphql.NewObject(graphql.ObjectConfig{
if err != nil {
return nil, err
}
return GetUserByID(id)
return backend.GetUserByID(id)
},
},
},
Expand Down
2 changes: 1 addition & 1 deletion user_type.go → api/user_type.go
@@ -1,4 +1,4 @@
package main
package api

import (
"github.com/graphql-go/graphql"
Expand Down
51 changes: 51 additions & 0 deletions backend/backend.go
@@ -0,0 +1,51 @@
package backend

import (
"database/sql"
"log"
"os"

"github.com/golang-migrate/migrate"
"github.com/golang-migrate/migrate/database/postgres"
_ "github.com/golang-migrate/migrate/source/file"
_ "github.com/lib/pq"
)

var db *sql.DB

func ConnectDb() {
var err error
log.Printf("Connecting to database '%s'\n", os.Getenv("DATABASE_URL"))
db, err = sql.Open("postgres", os.Getenv("DATABASE_URL"))
if err != nil {
log.Fatal(err)
}
}

func MigrateDb() {
driver, err := postgres.WithInstance(db, &postgres.Config{})
if err != nil {
log.Fatal(err)
}
m, err := migrate.NewWithDatabaseInstance(
"file://../migrations/",
"postgres", driver)
if err != nil {
log.Fatal(err)
}
m.Log = migrationLogger{false}
log.Printf("Running needed migrations\n")
m.Up()
}

type migrationLogger struct {
verbose bool
}

func (m migrationLogger) Printf(format string, v ...interface{}) {
log.Printf(format, v...)
}

func (m migrationLogger) Verbose() bool {
return m.verbose
}
2 changes: 1 addition & 1 deletion user.go → backend/user.go
@@ -1,4 +1,4 @@
package main
package backend

type User struct {
ID int `json:"id"`
Expand Down
56 changes: 6 additions & 50 deletions main.go
Expand Up @@ -7,71 +7,27 @@ import (

"os"

"github.com/golang-migrate/migrate"
"github.com/golang-migrate/migrate/database/postgres"
_ "github.com/golang-migrate/migrate/source/file"
_ "github.com/lib/pq"

"github.com/graphql-go/graphql"
"github.com/graphql-go/handler"
"github.com/ob-vss-ss18/ppl-auth/api"
"github.com/ob-vss-ss18/ppl-auth/backend"
)

var db *sql.DB

func main() {
log.Printf("Initializing...\n")
log.Printf("Connecting to database '%s'\n", os.Getenv("DATABASE_URL"))
db, _ = sql.Open("postgres", os.Getenv("DATABASE_URL"))
//if err != nil {
// log.Fatal(err)
//}
driver, err := postgres.WithInstance(db, &postgres.Config{})
if err != nil {
log.Fatal(err)
}
m, err := migrate.NewWithDatabaseInstance(
"file://migrations/",
"postgres", driver)
if err != nil {
log.Fatal(err)
}
m.Log = migrationLogger{false}
log.Printf("Running needed migrations\n")
m.Up()

schema, err := graphql.NewSchema(graphql.SchemaConfig{
Query: QueryType,
// Mutation: MutationType,
})
if err != nil {
log.Fatal(err)
}
backend.ConnectDb()
backend.MigrateDb()

handler := handler.New(&handler.Config{
Schema: &schema,
GraphiQL: true,
})
http.Handle("/graphql", api.ApiHandler)

port := os.Getenv("PORT")
if port == "" {
port = "8080"
}
http.Handle("/graphql", handler)
log.Printf("Starting listener on port %s\n", port)
err = http.ListenAndServe(":"+port, nil)
err := http.ListenAndServe(":"+port, nil)
if err != nil {
log.Fatal(err)
}
}

type migrationLogger struct {
verbose bool
}

func (m migrationLogger) Printf(format string, v ...interface{}) {
log.Printf(format, v...)
}

func (m migrationLogger) Verbose() bool {
return m.verbose
}

0 comments on commit 862e1e9

Please sign in to comment.