An atproto PDS written in Go

get email from rq

+8
server/common.go
···
return &repo, nil
}
func (s *Server) getRepoActorByDid(did string) (*models.RepoActor, error) {
var repo models.RepoActor
if err := s.db.Raw("SELECT r.*, a.* FROM repos r LEFT JOIN actors a ON r.did = a.did WHERE r.did = ?", did).Scan(&repo).Error; err != nil {
···
return &repo, nil
}
+
func (s *Server) getRepoActorByEmail(email string) (*models.RepoActor, error) {
+
var repo models.RepoActor
+
if err := s.db.Raw("SELECT r.*, a.* FROM repos r LEFT JOIN actors a ON r.did = a.did WHERE r.email= ?", email).Scan(&repo).Error; err != nil {
+
return nil, err
+
}
+
return &repo, nil
+
}
+
func (s *Server) getRepoActorByDid(did string) (*models.RepoActor, error) {
var repo models.RepoActor
if err := s.db.Raw("SELECT r.*, a.* FROM repos r LEFT JOIN actors a ON r.did = a.did WHERE r.did = ?", did).Scan(&repo).Error; err != nil {
+22 -1
server/handle_server_request_password_reset.go
···
"github.com/labstack/echo/v4"
)
func (s *Server) handleServerRequestPasswordReset(e echo.Context) error {
-
urepo := e.Get("repo").(*models.RepoActor)
code := fmt.Sprintf("%s-%s", helpers.RandomVarchar(5), helpers.RandomVarchar(5))
eat := time.Now().Add(10 * time.Minute).UTC()
···
"github.com/labstack/echo/v4"
)
+
type ComAtprotoServerRequestPasswordResetRequest struct {
+
Email string `json:"email" validate:"required"`
+
}
+
func (s *Server) handleServerRequestPasswordReset(e echo.Context) error {
+
urepo, ok := e.Get("repo").(*models.RepoActor)
+
if !ok {
+
var req ComAtprotoServerRequestPasswordResetRequest
+
if err := e.Bind(&req); err != nil {
+
return err
+
}
+
+
if err := e.Validate(req); err != nil {
+
return err
+
}
+
+
murepo, err := s.getRepoActorByEmail(req.Email)
+
if err != nil {
+
return err
+
}
+
+
urepo = murepo
+
}
code := fmt.Sprintf("%s-%s", helpers.RandomVarchar(5), helpers.RandomVarchar(5))
eat := time.Now().Add(10 * time.Minute).UTC()