databag/net/server/internal/api_getAccountUsername.go

43 lines
899 B
Go
Raw Normal View History

2022-01-16 07:25:43 +00:00
package databag
import (
"net/http"
"databag/internal/store"
)
type accountUsername struct {
Username string
}
func GetAccountUsername(w http.ResponseWriter, r *http.Request) {
2022-01-18 05:48:42 +00:00
token, err := BearerAccountToken(r);
if err != nil || (token.TokenType != "create" && token.TokenType != "reset") {
LogMsg("invalid token")
2022-01-16 07:25:43 +00:00
w.WriteHeader(http.StatusUnauthorized)
return
}
username := r.URL.Query().Get("username")
if username == "" {
LogMsg("invalid username")
w.WriteHeader(http.StatusBadRequest)
return
}
var accounts []accountUsername;
err = store.DB.Model(&store.Account{}).Where("username = ?", username).Find(&accounts).Error
if err != nil {
LogMsg("failed to query accounts")
w.WriteHeader(http.StatusInternalServerError)
return
}
if len(accounts) == 0 {
WriteResponse(w, true)
} else {
WriteResponse(w, false)
}
}