databag/net/server/internal/api_getAccountUsername.go

43 lines
840 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-17 21:42:17 +00:00
_, err := BearerAccountToken(r);
2022-01-16 07:25:43 +00:00
if err != nil {
LogMsg("authentication failed")
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)
}
}