An atproto PDS written in Go
103
fork

Configure Feed

Select the types of activity you want to include in your feed.

at 0.4.4 37 lines 1.1 kB view raw
1package server 2 3import ( 4 "fmt" 5 "time" 6 7 "github.com/haileyok/cocoon/internal/helpers" 8 "github.com/haileyok/cocoon/models" 9 "github.com/labstack/echo/v4" 10) 11 12type ComAtprotoRequestEmailUpdateResponse struct { 13 TokenRequired bool `json:"tokenRequired"` 14} 15 16func (s *Server) handleServerRequestEmailUpdate(e echo.Context) error { 17 urepo := e.Get("repo").(*models.RepoActor) 18 19 if urepo.EmailConfirmedAt != nil { 20 code := fmt.Sprintf("%s-%s", helpers.RandomVarchar(5), helpers.RandomVarchar(5)) 21 eat := time.Now().Add(10 * time.Minute).UTC() 22 23 if err := s.db.Exec("UPDATE repos SET email_update_code = ?, email_update_code_expires_at = ? WHERE did = ?", nil, code, eat, urepo.Repo.Did).Error; err != nil { 24 s.logger.Error("error updating repo", "error", err) 25 return helpers.ServerError(e, nil) 26 } 27 28 if err := s.sendEmailUpdate(urepo.Email, urepo.Handle, code); err != nil { 29 s.logger.Error("error sending email", "error", err) 30 return helpers.ServerError(e, nil) 31 } 32 } 33 34 return e.JSON(200, ComAtprotoRequestEmailUpdateResponse{ 35 TokenRequired: urepo.EmailConfirmedAt != nil, 36 }) 37}