diff --git a/api/api.go b/api/api.go index a39261547d2342f9d6d10d7d082154cd43f5844e..bfab481407057ab183c3b89250cc3e914c729294 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 81ae30098c3b11f3d99ed74db2be8b3178d2abb7..7d11ae886aceb379be333de44a77df4a3f0350c4 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 eaf227e332f18efda431b4a40a89339e2d5d26d1..ef81866931129b7598cd71f13a2edd9c125d1108 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)