tangled
alpha
login
or
join now
willdot.net
/
cocoon
forked from
hailey.at/cocoon
0
fork
atom
An atproto PDS written in Go
0
fork
atom
overview
issues
pulls
pipelines
fix response
hailey.at
11 months ago
bab45af0
9a610af4
+19
-11
2 changed files
expand all
collapse all
unified
split
server
handle_server_request_email_update.go
handle_server_update_email.go
+18
-10
server/handle_server_request_email_update.go
···
9
9
"github.com/labstack/echo/v4"
10
10
)
11
11
12
12
+
type ComAtprotoRequestEmailUpdateResponse struct {
13
13
+
TokenRequired bool `json:"tokenRequired"`
14
14
+
}
15
15
+
12
16
func (s *Server) handleServerRequestEmailUpdate(e echo.Context) error {
13
17
urepo := e.Get("repo").(*models.RepoActor)
14
18
15
15
-
code := fmt.Sprintf("%s-%s", helpers.RandomVarchar(6), helpers.RandomVarchar(6))
16
16
-
eat := time.Now().Add(10 * time.Minute).UTC()
19
19
+
if urepo.EmailConfirmedAt != nil {
20
20
+
code := fmt.Sprintf("%s-%s", helpers.RandomVarchar(6), helpers.RandomVarchar(6))
21
21
+
eat := time.Now().Add(10 * time.Minute).UTC()
17
22
18
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
19
-
s.logger.Error("error updating repo", "error", err)
20
20
-
return helpers.ServerError(e, nil)
21
21
-
}
23
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
24
+
s.logger.Error("error updating repo", "error", err)
25
25
+
return helpers.ServerError(e, nil)
26
26
+
}
22
27
23
23
-
if err := s.sendEmailUpdate(urepo.Email, urepo.Handle, code); err != nil {
24
24
-
s.logger.Error("error sending email", "error", err)
25
25
-
return helpers.ServerError(e, nil)
28
28
+
if err := s.sendEmailUpdate(urepo.Email, urepo.Handle, code); err != nil {
29
29
+
s.logger.Error("error sending email", "error", err)
30
30
+
return helpers.ServerError(e, nil)
31
31
+
}
26
32
}
27
33
28
28
-
return e.NoContent(200)
34
34
+
return e.JSON(200, ComAtprotoRequestEmailUpdateResponse{
35
35
+
TokenRequired: urepo.EmailConfirmedAt != nil,
36
36
+
})
29
37
}
+1
-1
server/handle_server_update_email.go
···
40
40
return helpers.InputError(e, to.StringPtr("ExpiredToken"))
41
41
}
42
42
43
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
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
}