Add hashing for link password and update link update service method
This commit is contained in:
parent
a01f540a29
commit
f4684be37d
4 changed files with 79 additions and 32 deletions
|
|
@ -92,33 +92,20 @@ func updateHandler(ctx echo.Context, serv Service) error {
|
|||
return echo.NewHTTPError(http.StatusBadRequest, "Invalid data format.")
|
||||
}
|
||||
|
||||
updatingLink, err := serv.GetById(linkId)
|
||||
var parsedUrl *url.URL
|
||||
parsedUrl, err := url.Parse(model.RedirectURL)
|
||||
if err != nil {
|
||||
return echo.NewHTTPError(http.StatusBadRequest, "Invalid URL value.")
|
||||
}
|
||||
|
||||
if err := serv.UpdateById(linkId, struct {
|
||||
Name string
|
||||
Password string
|
||||
RedirectURL *url.URL
|
||||
}{Name: model.Name, Password: model.Password, RedirectURL: parsedUrl}); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
hasChanges := false
|
||||
switch {
|
||||
case model.Name != "" && model.Name != updatingLink.Name:
|
||||
updatingLink.Name = model.Name
|
||||
|
||||
hasChanges = true
|
||||
case model.RedirectURL != "" && model.RedirectURL != updatingLink.RedirectURL.String():
|
||||
if parsedUrl, err := url.Parse(model.RedirectURL); err != nil {
|
||||
return echo.NewHTTPError(http.StatusBadRequest, "Invalid URL value.")
|
||||
} else {
|
||||
updatingLink.RedirectURL = *parsedUrl
|
||||
}
|
||||
|
||||
hasChanges = true
|
||||
}
|
||||
|
||||
if hasChanges {
|
||||
if err = serv.Update(updatingLink); err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
|
||||
return ctx.NoContent(http.StatusOK)
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue