From ab78cbd720442005cb574560a4efec755dc5dc87 Mon Sep 17 00:00:00 2001 From: meskio <meskio@sindominio.net> Date: Wed, 23 Dec 2020 17:21:47 +0100 Subject: [PATCH] Add invite mail feature into /api/member PUT Remove batch member add, as it will not be needed anymore. --- api/api.go | 1 - api/db/member.go | 3 +++ api/member.go | 47 +++++++++-------------------------------------- 3 files changed, 12 insertions(+), 39 deletions(-) diff --git a/api/api.go b/api/api.go index a392615..bfab481 100644 --- a/api/api.go +++ b/api/api.go @@ -34,7 +34,6 @@ func Init(dbPath string, signKey string, mail *Mail, r *mux.Router) error { r.HandleFunc("/member", a.authAdmin(a.ListMembers)).Methods("GET") r.HandleFunc("/member", a.authAdmin(a.AddMember)).Methods("POST") - r.HandleFunc("/member/batch", a.authAdmin(a.AddBatchMember)).Methods("POST") r.HandleFunc("/member/me", a.authNum(a.getMemberNum)).Methods("GET") r.HandleFunc("/member/me", a.authNum(a.UpdateMemberMe)).Methods("PUT") r.HandleFunc("/member/{num:[0-9]+}", a.authAdmin(a.GetMember)).Methods("GET") diff --git a/api/db/member.go b/api/db/member.go index 81ae300..7d11ae8 100644 --- a/api/db/member.go +++ b/api/db/member.go @@ -105,6 +105,9 @@ func (d DB) UpdateMember(num int, member MemberReq, checkPass bool) (Member, err if member.Email != "" { dbMember.Email = member.Email } + if member.Phone != "" { + dbMember.Phone = member.Phone + } if member.Role != "" { dbMember.Role = member.Role } diff --git a/api/member.go b/api/member.go index eaf227e..ef81866 100644 --- a/api/member.go +++ b/api/member.go @@ -26,53 +26,24 @@ func (a *api) AddMember(w http.ResponseWriter, req *http.Request) { return } - w.Header().Set("Content-Type", "application/json") - w.WriteHeader(http.StatusCreated) - err = json.NewEncoder(w).Encode(member) - if err != nil { - log.Printf("Can't encode added member: %v", err) - w.WriteHeader(http.StatusInternalServerError) - return - } -} - -func (a *api) AddBatchMember(w http.ResponseWriter, req *http.Request) { - var memberReq []db.MemberReq - err := json.NewDecoder(req.Body).Decode(&memberReq) - if err != nil { - log.Printf("Can't create member: %v", err) - w.WriteHeader(http.StatusInternalServerError) - return - } - - members := make([]db.Member, len(memberReq)) - for i, m := range memberReq { - members[i], err = a.db.AddMember(&m) + if memberReq.Password == "" { + _, token, err := a.db.NewPasswordReset(memberReq.Email) if err != nil { - log.Printf("Can't create member: %v\n%v", err, m) + log.Printf("Can't create the password reset for %s: %v", memberReq.Email, err) w.WriteHeader(http.StatusInternalServerError) return } - - if m.Password == "" { - _, token, err := a.db.NewPasswordReset(m.Email) - if err != nil { - log.Printf("Can't create the password reset for %s: %v", m.Email, err) - w.WriteHeader(http.StatusInternalServerError) - return - } - err = a.mail.sendNewMember(members[i], "/nreset/"+token) - if err != nil { - log.Printf("Can't send the pass/login reset email to %s: %v", m.Email, err) - w.WriteHeader(http.StatusInternalServerError) - return - } + err = a.mail.sendNewMember(memberReq.Member, "/nreset/"+token) + if err != nil { + log.Printf("Can't send the pass/login reset email to %s: %v", memberReq.Email, err) + w.WriteHeader(http.StatusInternalServerError) + return } } w.Header().Set("Content-Type", "application/json") w.WriteHeader(http.StatusCreated) - err = json.NewEncoder(w).Encode(members) + err = json.NewEncoder(w).Encode(member) if err != nil { log.Printf("Can't encode added member: %v", err) w.WriteHeader(http.StatusInternalServerError) -- GitLab