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) }