diff --git a/db/db.go b/db/db.go index f43e49f..0d43c40 100644 --- a/db/db.go +++ b/db/db.go @@ -15,19 +15,9 @@ func New(path string) (*Database, error) { } func (d *Database) MakeDB() error { - q := `create table if not exists users ( + q := `create table if not exists tags ( id integer primary key, - email text unique, - verification integer not null, - dateCreated integer, - lastLogin integer - )` - if _, err := d.Exec(q); err != nil { - return err - } - q = `create table if not exists tags ( - id integer primary key, - tag text, + tag text )` if _, err := d.Exec(q); err != nil { return err @@ -38,24 +28,12 @@ func (d *Database) MakeDB() error { return err } if count == 0 { - return d.populateMoods() + return d.populate() } return nil } -func (d *Database) populateMoods() error { +func (d *Database) populate() error { tx := d.MustBegin() - res := tx.MustExec(`insert into mood_categories (name) values ('happy')`) - id, err := res.LastInsertId() - if err != nil { - tx.Rollback() - return err - } - tx.MustExec(`insert into mood_category_texts (mood_category_id,key,value) values (?,?,?)`, - id, "😄", 1) - tx.MustExec(`insert into mood_category_texts (mood_category_id,key,value) values (?,?,?)`, - id, "😐", 0) - tx.MustExec(`insert into mood_category_texts (mood_category_id,key,value) values (?,?,?)`, - id, "😟", -1) return tx.Commit() } diff --git a/idea b/idea new file mode 100755 index 0000000..0ca5eb4 Binary files /dev/null and b/idea differ diff --git a/main.go b/main.go index 3892c59..5059a5c 100644 --- a/main.go +++ b/main.go @@ -3,7 +3,6 @@ package main import ( "flag" "os" - "strconv" "code.chrissexton.org/cws/idea/web" "code.chrissexton.org/cws/idea/db" @@ -39,6 +38,6 @@ func main() { Msg("could not connect to database") } - s := web.New(*httpAddr, "pub", db, *salt, h, box) + s := web.New(*httpAddr, "pub", db, box) s.Serve() } diff --git a/web/routes.go b/web/routes.go index 478c0f3..a10e409 100644 --- a/web/routes.go +++ b/web/routes.go @@ -3,7 +3,6 @@ package web import ( "time" - "code.chrissexton.org/cws/idea/user" "code.chrissexton.org/cws/idea/db" packr "github.com/gobuffalo/packr/v2" @@ -22,36 +21,26 @@ type Web struct { salt string h *hashids.HashID box *packr.Box - uf *user.UserFactory - mood *mood.Mood } -func New(addr, assetPath string, db *db.Database, salt string, h *hashids.HashID, box *packr.Box, email *email.EMailClient) *Web { +func New(addr, assetPath string, db *db.Database, box *packr.Box) *Web { w := &Web{ addr: addr, assetPath: assetPath, db: db, box: box, - uf: user.NewFactory(db, salt, h), - mood: mood.New(db), } if err := db.MakeDB(); err != nil { log.Fatal(). Err(err). Msg("could not create database") } - if email != nil { - u, _ := w.uf.NewUser() - w.email.SendNewUserMail("chris@chrissexton.org", u, "http://happy.chrissexton.org") - } return w } func (web *Web) routeSetup() *mux.Router { r := mux.NewRouter() - api := r.PathPrefix("/v1/").Subrouter() - api.HandleFunc("/user/code", web.handlerRegisterCode).Methods("GET") - api.HandleFunc("/user/info", web.checkUser).Methods("GET") + //api := r.PathPrefix("/v1/").Subrouter() r.PathPrefix("/").HandlerFunc(web.indexHandler("/index.html")) return r } diff --git a/web/user_handlers.go b/web/user_handlers.go deleted file mode 100644 index d15b394..0000000 --- a/web/user_handlers.go +++ /dev/null @@ -1,72 +0,0 @@ -package web - -import ( - "encoding/json" - "fmt" - "net/http" - - "github.com/rs/zerolog/log" -) - -var Develop = false - -type RegisterResponse struct { - ID string - DateCreated int64 - Verification string `json:",omitempty"` -} - -func (web *Web) handlerRegisterCode(w http.ResponseWriter, r *http.Request) { - uid, err := web.uf.NewUser() - if err != nil { - w.WriteHeader(500) - log.Error().Err(err).Msg("error from NewUserID") - fmt.Fprintf(w, "Error registering user: %s", err) - return - } - if err != nil { - w.WriteHeader(500) - log.Error().Err(err).Msg("error converting date") - fmt.Fprintf(w, "Error registering user: %s", err) - return - } - resp := RegisterResponse{ - ID: uid.String(), - DateCreated: uid.DateCreated.Int64, - } - if Develop { - resp.Verification, _ = web.h.EncodeInt64([]int64{uid.Verification}) - } - out, err := json.Marshal(resp) - if err != nil { - w.WriteHeader(500) - log.Error().Err(err).Msg("error from json.Marshal") - fmt.Fprintf(w, "Error registering user: %s", err) - return - } - fmt.Fprintf(w, "%s", string(out)) -} - -func (web *Web) checkUser(w http.ResponseWriter, r *http.Request) { - uid := r.Header.Get("X-user-id") - verify := r.Header.Get("X-user-verification") - log.Debug(). - Str("uid", uid). - Str("verify", verify). - Msg("checkUser") - user, err := web.uf.FromStr(uid, verify) - if err != nil { - log.Error().Err(err).Msg("user not known") - w.WriteHeader(http.StatusUnauthorized) - fmt.Fprint(w, "User not known") - return - } - j, err := json.Marshal(user) - if err != nil { - w.WriteHeader(500) - log.Error().Err(err).Msg("could not marshal user") - fmt.Fprintf(w, "%s", err) - return - } - w.Write(j) -}