+8
server/common.go
+8
server/common.go
···
20
20
return &repo, nil
21
21
}
22
22
23
+
func (s *Server) getRepoActorByEmail(email string) (*models.RepoActor, error) {
24
+
var repo models.RepoActor
25
+
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 {
26
+
return nil, err
27
+
}
28
+
return &repo, nil
29
+
}
30
+
23
31
func (s *Server) getRepoActorByDid(did string) (*models.RepoActor, error) {
24
32
var repo models.RepoActor
25
33
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
+22
-1
server/handle_server_request_password_reset.go
···
9
9
"github.com/labstack/echo/v4"
10
10
)
11
11
12
+
type ComAtprotoServerRequestPasswordResetRequest struct {
13
+
Email string `json:"email" validate:"required"`
14
+
}
15
+
12
16
func (s *Server) handleServerRequestPasswordReset(e echo.Context) error {
13
-
urepo := e.Get("repo").(*models.RepoActor)
17
+
urepo, ok := e.Get("repo").(*models.RepoActor)
18
+
if !ok {
19
+
var req ComAtprotoServerRequestPasswordResetRequest
20
+
if err := e.Bind(&req); err != nil {
21
+
return err
22
+
}
23
+
24
+
if err := e.Validate(req); err != nil {
25
+
return err
26
+
}
27
+
28
+
murepo, err := s.getRepoActorByEmail(req.Email)
29
+
if err != nil {
30
+
return err
31
+
}
32
+
33
+
urepo = murepo
34
+
}
14
35
15
36
code := fmt.Sprintf("%s-%s", helpers.RandomVarchar(5), helpers.RandomVarchar(5))
16
37
eat := time.Now().Add(10 * time.Minute).UTC()