dndex/server/auth/register.go

32 lines
753 B
Go

package auth
import (
"context"
"errors"
"local/dndex/storage"
"local/dndex/storage/entity"
"net/http"
)
func Register(g storage.RateLimitedGraph, r *http.Request) error {
namespaceRequested := readRequestedNamespace(r)
keyRequested := readRequestedKey(r)
_, err := getKeyForNamespace(r.Context(), g, namespaceRequested)
if err == nil {
return errors.New("namespace already exists")
}
return makeNamespace(r.Context(), g, namespaceRequested, keyRequested)
}
func readRequestedKey(r *http.Request) string {
return readRequested(r, AuthKey)
}
func makeNamespace(ctx context.Context, g storage.RateLimitedGraph, namespace, key string) error {
one := entity.One{
ID: UserKey,
Title: key,
}
return g.Insert(ctx, namespace, one)
}