main.go 1.74 KB
Newer Older
zauberstuhl's avatar
zauberstuhl committed
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58
/*
 * Unmappd - Visualize your Untappd checkins
 * Copyright (C) 2019 Lukas Matt <lukas@matt.wf>
 *
 * This program is free software: you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program.  If not, see <https://www.gnu.org/licenses/>.
 */

package main

import (
  "net/http"
  "log"

  "github.com/spf13/viper"
  _ "github.com/jinzhu/gorm/dialects/sqlite"
)

var CLIENTID, CLIENTSECRET, REDIRECTURL string

func init() {
  viper.SetConfigName("config")
  viper.AddConfigPath(".")
  err := viper.ReadInConfig()
  if err != nil {
    panic(err.Error())
  }

  db, err := openDatabase()
  if err != nil {
    panic(err.Error())
  }
  defer db.Close()

  log.Print("Run migrations..")
  db.AutoMigrate(&Location{})
  db.AutoMigrate(&User{})

  CLIENTID = viper.GetString("clientID")
  CLIENTSECRET = viper.GetString("clientSecret")
  REDIRECTURL = viper.GetString("redirectUrl")
}

func main() {
  server := http.Server{
    Addr: "0.0.0.0:8080",
  }

zauberstuhl's avatar
zauberstuhl committed
59 60 61
  http.HandleFunc("/", index_handler)
  http.HandleFunc("/users/", user_handler)
  http.HandleFunc("/auth", auth_handler)
zauberstuhl's avatar
zauberstuhl committed
62 63 64 65 66 67 68
  // assets directory
  fs := http.FileServer(http.Dir("public"))
  http.Handle("/assets/", http.StripPrefix("/assets/", fs))

  log.Print("Listening on 0.0.0.0:8080 ..")
  server.ListenAndServe()
}