use object instead of plain token for create response + handler test

This commit is contained in:
Pascal Fischer
2023-03-28 14:47:15 +02:00
parent 6a75ec4ab7
commit 514403db37
5 changed files with 265 additions and 24 deletions
+22 -4
View File
@@ -81,7 +81,18 @@ func (h *PATHandler) GetToken(w http.ResponseWriter, r *http.Request) {
return
}
pat := account.Users[userID].PATs[tokenID]
user = account.Users[userID]
if user == nil {
util.WriteError(status.Errorf(status.NotFound, "user not found"), w)
return
}
pat := user.PATs[tokenID]
if pat == nil {
util.WriteError(status.Errorf(status.NotFound, "PAT not found"), w)
return
}
util.WriteJSONObject(w, toPATResponse(pat))
}
@@ -121,14 +132,14 @@ func (h *PATHandler) CreateToken(w http.ResponseWriter, r *http.Request) {
return
}
pat, plainToken, err := server.CreateNewPAT(req.Name, req.ExpiresIn, user.Id)
err = h.accountManager.AddPATToUser(account.Id, userID, pat)
pat, err := server.CreateNewPAT(req.Name, req.ExpiresIn, user.Id)
err = h.accountManager.AddPATToUser(account.Id, userID, &pat.PersonalAccessToken)
if err != nil {
util.WriteError(err, w)
return
}
util.WriteJSONObject(w, plainToken)
util.WriteJSONObject(w, toPATGeneratedResponse(pat))
}
func (h *PATHandler) DeleteToken(w http.ResponseWriter, r *http.Request) {
@@ -175,3 +186,10 @@ func toPATResponse(pat *server.PersonalAccessToken) *api.PersonalAccessToken {
LastUsed: pat.LastUsed,
}
}
func toPATGeneratedResponse(pat *server.PersonalAccessTokenGenerated) *api.PersonalAccessTokenGenerated {
return &api.PersonalAccessTokenGenerated{
PlainToken: pat.PlainToken,
PersonalAccessToken: *toPATResponse(&pat.PersonalAccessToken),
}
}