make server automatically create DB schema if not exists (#5)
* add default values for CLI args * add development docker compose file * prevent crash if userdata dir does not exist * accounts, acccountStats * account stats and create db indices * compensations and daily runs * ensure uniqueness of daily seed * start on port 8001 by default for client parity * make generated schema match production * sort imports
This commit is contained in:
7 files changed
+108
-20
No files matched your search
+11
-11
@@ -61,22 +61,27 @@ func Init() error {
|
||||
secret = newSecret
|
||||
}
|
||||
|
||||
err = recordNewDaily()
|
||||
seed, err := recordNewDaily()
|
||||
if err != nil {
|
||||
log.Print(err)
|
||||
}
|
||||
|
||||
log.Printf("Daily Run Seed: %s", Seed())
|
||||
log.Printf("Daily Run Seed: %s", seed)
|
||||
|
||||
scheduler.AddFunc("@daily", func() {
|
||||
_, err = scheduler.AddFunc("@daily", func() {
|
||||
time.Sleep(time.Second)
|
||||
|
||||
err := recordNewDaily()
|
||||
seed, err = recordNewDaily()
|
||||
log.Printf("Daily Run Seed: %s", seed)
|
||||
if err != nil {
|
||||
log.Printf("error while recording new daily: %s", err)
|
||||
}
|
||||
})
|
||||
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
scheduler.Start()
|
||||
|
||||
return nil
|
||||
@@ -95,11 +100,6 @@ func deriveSeed(seedTime time.Time) []byte {
|
||||
return hashedSeed[:]
|
||||
}
|
||||
|
||||
func recordNewDaily() error {
|
||||
err := db.TryAddDailyRun(Seed())
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
return nil
|
||||
func recordNewDaily() (string, error) {
|
||||
return db.TryAddDailyRun(Seed())
|
||||
}
|
||||
+23
-2
@@ -19,6 +19,7 @@ package api
|
||||
|
||||
import (
|
||||
"database/sql"
|
||||
"encoding/base64"
|
||||
"encoding/json"
|
||||
"fmt"
|
||||
"net/http"
|
||||
@@ -303,7 +304,13 @@ func handleSaveData(w http.ResponseWriter, r *http.Request) {
|
||||
}
|
||||
|
||||
// doesn't return a save, but it works
|
||||
save, err = savedata.Clear(uuid, slot, daily.Seed(), s)
|
||||
var seed string
|
||||
seed, err = db.GetDailyRunSeed()
|
||||
if err != nil {
|
||||
httpError(w, r, err, http.StatusInternalServerError)
|
||||
return
|
||||
}
|
||||
save, err = savedata.Clear(uuid, slot, seed, s)
|
||||
}
|
||||
if err != nil {
|
||||
httpError(w, r, err, http.StatusInternalServerError)
|
||||
@@ -327,7 +334,21 @@ func handleSaveData(w http.ResponseWriter, r *http.Request) {
|
||||
// daily
|
||||
|
||||
func handleDailySeed(w http.ResponseWriter, r *http.Request) {
|
||||
w.Write([]byte(daily.Seed()))
|
||||
seed, err := db.GetDailyRunSeed()
|
||||
if err != nil {
|
||||
httpError(w, r, err, http.StatusInternalServerError)
|
||||
return
|
||||
}
|
||||
bytes, err := base64.StdEncoding.DecodeString(seed)
|
||||
if err != nil {
|
||||
httpError(w, r, err, http.StatusInternalServerError)
|
||||
return
|
||||
}
|
||||
_, err = w.Write(bytes)
|
||||
if err != nil {
|
||||
httpError(w, r, err, http.StatusInternalServerError)
|
||||
return
|
||||
}
|
||||
}
|
||||
|
||||
func handleDailyRankings(w http.ResponseWriter, r *http.Request) {
|
||||
|
||||
Reference in new issue
Block a user