/
elysium.go
103 lines (85 loc) · 1.93 KB
/
elysium.go
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
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
package elysium
import (
"database/sql"
"encoding/json"
_ "github.com/go-sql-driver/mysql"
"io/ioutil"
"log"
)
const (
TOPICS_PER_PAGE = 10
)
type xOrganization struct {
}
type Config struct {
Name string `json:"name"`
File string `json:"filename"`
Database ConfigDatabase `json:"database"`
Dev ConfigDev `json:"dev"`
Stage ConfigStage `json:"stage"`
Prod ConfigProd `json:"production"`
AWS ConfigAWS `json:"aws"`
}
type ConfigDatabase struct {
Type string `json:"type"`
Host string `json:"host"`
Port string `json:"port"`
User string `json:"user"`
Pass string `json:"pass"`
Database string `json:"database"`
}
type ConfigAWS struct {
From string `json:"from"`
Host string `json:"host"`
User string `json:"user"`
Pass string `json:"pass"`
}
type ConfigDev struct {
ConfigEnvironment string `json:"env"`
}
type ConfigStage struct {
ConfigEnvironment string `json:"env"`
}
type ConfigProd struct {
ConfigEnvironment string `json:"env"`
}
type ConfigEnvironment struct {
Port string `json:"port"`
}
var (
Configuration Config
DB *sql.DB
)
func Foo() {
}
func Init(filename string) {
Configuration.File = filename
loadConfiguration(filename)
connectDB()
}
func loadConfiguration(filename string) {
cf, err := ioutil.ReadFile(filename)
if err != nil {
log.Fatal("uga")
}
json.Unmarshal(cf, &Configuration)
log.Println(Configuration)
}
func getConnectString() string {
cs := Configuration.Database.User + ":" + Configuration.Database.Pass + "@" + Configuration.Database.Host + "/" + Configuration.Database.Database + "?charset=utf8mb4"
return cs
}
func connectDB() {
log.Println("Connecting to", getConnectString())
db, err := sql.Open(Configuration.Database.Type, getConnectString())
if err != nil {
log.Fatal("EAAAAAHHHH")
}
DB = db
if err := DB.Ping(); err != nil {
log.Fatal(err)
}
}
func Elysium() {
log.Println("UH")
}