refactored and added unit test

This commit is contained in:
Matthew R Kasun
2021-10-14 16:36:14 -04:00
parent 2bf2e65736
commit 1c1637b75e
4 changed files with 52 additions and 12 deletions

View File

@@ -341,17 +341,8 @@ func createAdmin(w http.ResponseWriter, r *http.Request) {
var admin models.User
//get node from body of request
_ = json.NewDecoder(r.Body).Decode(&admin)
hasadmin, err := HasAdmin()
if err != nil {
returnErrorResponse(w, r, formatError(err, "internal"))
return
}
if hasadmin {
returnErrorResponse(w, r, formatError(errors.New("admin user already exists"), "unauthorized"))
return
}
admin.IsAdmin = true
admin, err = CreateUser(admin)
admin, err := CreateAdmin(admin)
if err != nil {
returnErrorResponse(w, r, formatError(err, "badrequest"))
@@ -361,6 +352,18 @@ func createAdmin(w http.ResponseWriter, r *http.Request) {
json.NewEncoder(w).Encode(admin)
}
func CreateAdmin(admin models.User) (models.User, error) {
hasadmin, err := HasAdmin()
if err != nil {
return models.User{}, err
}
if hasadmin {
return models.User{}, errors.New("admin user already exists")
}
admin.IsAdmin = true
return CreateUser(admin)
}
func createUser(w http.ResponseWriter, r *http.Request) {
w.Header().Set("Content-Type", "application/json")