+18
-10
server/handle_server_request_email_update.go
+18
-10
server/handle_server_request_email_update.go
···
9
9
"github.com/labstack/echo/v4"
10
10
)
11
11
12
+
type ComAtprotoRequestEmailUpdateResponse struct {
13
+
TokenRequired bool `json:"tokenRequired"`
14
+
}
15
+
12
16
func (s *Server) handleServerRequestEmailUpdate(e echo.Context) error {
13
17
urepo := e.Get("repo").(*models.RepoActor)
14
18
15
-
code := fmt.Sprintf("%s-%s", helpers.RandomVarchar(6), helpers.RandomVarchar(6))
16
-
eat := time.Now().Add(10 * time.Minute).UTC()
19
+
if urepo.EmailConfirmedAt != nil {
20
+
code := fmt.Sprintf("%s-%s", helpers.RandomVarchar(6), helpers.RandomVarchar(6))
21
+
eat := time.Now().Add(10 * time.Minute).UTC()
17
22
18
-
if err := s.db.Exec("UPDATE repos SET email_update_code = ?, email_update_code_expires_at = ? WHERE did = ?", code, eat, urepo.Repo.Did).Error; err != nil {
19
-
s.logger.Error("error updating repo", "error", err)
20
-
return helpers.ServerError(e, nil)
21
-
}
23
+
if err := s.db.Exec("UPDATE repos SET email_update_code = ?, email_update_code_expires_at = ? WHERE did = ?", code, eat, urepo.Repo.Did).Error; err != nil {
24
+
s.logger.Error("error updating repo", "error", err)
25
+
return helpers.ServerError(e, nil)
26
+
}
22
27
23
-
if err := s.sendEmailUpdate(urepo.Email, urepo.Handle, code); err != nil {
24
-
s.logger.Error("error sending email", "error", err)
25
-
return helpers.ServerError(e, nil)
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
+
}
26
32
}
27
33
28
-
return e.NoContent(200)
34
+
return e.JSON(200, ComAtprotoRequestEmailUpdateResponse{
35
+
TokenRequired: urepo.EmailConfirmedAt != nil,
36
+
})
29
37
}
+1
-1
server/handle_server_update_email.go
+1
-1
server/handle_server_update_email.go
···
40
40
return helpers.InputError(e, to.StringPtr("ExpiredToken"))
41
41
}
42
42
43
-
if err := s.db.Exec("UPDATE repos SET email_update_code = NULL, email_update_code_expires_at = NULL, email = ? WHERE did = ?", req.Email, urepo.Repo.Did).Error; err != nil {
43
+
if err := s.db.Exec("UPDATE repos SET email_update_code = NULL, email_update_code_expires_at = NULL, email_confirmed_at = NULL, email = ? WHERE did = ?", req.Email, urepo.Repo.Did).Error; err != nil {
44
44
s.logger.Error("error updating repo", "error", err)
45
45
return helpers.ServerError(e, nil)
46
46
}