diff --git a/conf/app.conf b/conf/app.conf new file mode 100644 index 0000000..f1b2016 --- /dev/null +++ b/conf/app.conf @@ -0,0 +1,8 @@ +appname = DataHouse +httpport = 8080 +runmode = dev + +mysqluser = "root" +mysqlpass = "toto" +mysqlurls = "127.0.0.1" +mysqldb = "orm_test" diff --git a/controllers/default.go b/controllers/default.go new file mode 100644 index 0000000..cb492f2 --- /dev/null +++ b/controllers/default.go @@ -0,0 +1,19 @@ +package controllers + +import ( + "github.com/astaxie/beego" + + // "datahouse/models/temperature" +) + +type MainController struct { + beego.Controller +} + +func (c *MainController) Get() { + // temperature.AddData(5) + + c.Data["Website"] = "beego.me" + c.Data["Email"] = "astaxie@gmail.com" + c.TplNames = "index.tpl" +} diff --git a/main.go b/main.go new file mode 100644 index 0000000..feda934 --- /dev/null +++ b/main.go @@ -0,0 +1,39 @@ +package main + +import ( + _ "datahouse/routers" + "datahouse/models/database" + _ "datahouse/models/temperature" + + "github.com/astaxie/beego" + "github.com/astaxie/beego/logs" + "github.com/astaxie/beego/orm" + _ "github.com/go-sql-driver/mysql" +) + +var ( + log = logs.NewLogger(10000) +) + +func init() { + log.SetLogger("console", "") + + orm.RegisterDriver("mysql", orm.DR_MySQL) + url := database.UserDB+":"+database.PwdDB+"@/"+database.DataBase+"?charset=utf8" + err := orm.RegisterDataBase(database.Alias, "mysql", url) + if err != nil { + log.Error("Failed to register database", err) + } + + force := false + verbose := true + err = orm.RunSyncdb(database.Alias, force, verbose) + if err != nil { + log.Error("Failed to initialize database", err) + } +} + +func main() { + + beego.Run() +} diff --git a/models/database/constantes.go b/models/database/constantes.go new file mode 100644 index 0000000..9ec47ce --- /dev/null +++ b/models/database/constantes.go @@ -0,0 +1,13 @@ +package database + +import ( + "github.com/astaxie/beego" +) + +var ( + Alias = "default" + UserDB = beego.AppConfig.String("mysqluser") + PwdDB = beego.AppConfig.String("mysqlpass") + HostDB = beego.AppConfig.String("mysqlurls") + DataBase = beego.AppConfig.String("mysqldb") +) diff --git a/models/temperature/temperature.go b/models/temperature/temperature.go new file mode 100644 index 0000000..343645b --- /dev/null +++ b/models/temperature/temperature.go @@ -0,0 +1,32 @@ +package temperature + +import ( + "github.com/astaxie/beego/orm" + + "datahouse/models/database" + + "time" +) + +type tempTable struct { + Id int64 + HorodateGMT time.Time `orm:"auto_now;type(datetime)"` + Value int64 +} + +func init() { + orm.RegisterModel(new(tempTable)) +} + + +/** + * Add the value into the database. + */ +func AddData(value int64) { + o := orm.NewOrm() + o.Using(database.Alias) + + tmpTable := new(tempTable) + tmpTable.Value = value + o.Insert(tmpTable) +} diff --git a/routers/router.go b/routers/router.go new file mode 100644 index 0000000..37f19eb --- /dev/null +++ b/routers/router.go @@ -0,0 +1,10 @@ +package routers + +import ( + "datahouse/controllers" + "github.com/astaxie/beego" +) + +func init() { + beego.Router("/", &controllers.MainController{}) +} diff --git a/tests/default_test.go b/tests/default_test.go new file mode 100644 index 0000000..a1edc23 --- /dev/null +++ b/tests/default_test.go @@ -0,0 +1,39 @@ +package test + +import ( + "net/http" + "net/http/httptest" + "testing" + "runtime" + "path/filepath" + + _ "datahouse/routers" + + "github.com/astaxie/beego" + . "github.com/smartystreets/goconvey/convey" +) + +func init() { + _, file, _, _ := runtime.Caller(1) + apppath, _ := filepath.Abs(filepath.Dir(filepath.Join(file, ".." + string(filepath.Separator)))) + beego.TestBeegoInit(apppath) +} + + +// TestMain is a sample to run an endpoint test +func TestMain(t *testing.T) { + r, _ := http.NewRequest("GET", "/", nil) + w := httptest.NewRecorder() + beego.BeeApp.Handlers.ServeHTTP(w, r) + + beego.Trace("testing", "TestMain", "Code[%d]\n%s", w.Code, w.Body.String()) + + Convey("Subject: Test Station Endpoint\n", t, func() { + Convey("Status Code Should Be 200", func() { + So(w.Code, ShouldEqual, 200) + }) + Convey("The Result Should Not Be Empty", func() { + So(w.Body.Len(), ShouldBeGreaterThan, 0) + }) + }) +} diff --git a/views/index.tpl b/views/index.tpl new file mode 100644 index 0000000..294fa2f --- /dev/null +++ b/views/index.tpl @@ -0,0 +1,93 @@ + + + +
+