func MapSchemaClientToClient(sc Client) (client.Client, error) { c := client.Client{ Credentials: oidc.ClientCredentials{ ID: sc.Id, Secret: sc.Secret, }, Metadata: oidc.ClientMetadata{ RedirectURIs: make([]url.URL, len(sc.RedirectURIs)), }, Public: sc.Public, } for i, ru := range sc.RedirectURIs { if ru == "" { return client.Client{}, ErrorNoRedirectURI } u, err := url.Parse(ru) if err != nil { return client.Client{}, ErrorInvalidRedirectURI } c.Metadata.RedirectURIs[i] = *u } c.Metadata.ClientName = sc.ClientName if sc.LogoURI != "" { logoURI, err := url.Parse(sc.LogoURI) if err != nil { return client.Client{}, ErrorInvalidLogoURI } c.Metadata.LogoURI = logoURI } if sc.ClientURI != "" { clientURI, err := url.Parse(sc.ClientURI) if err != nil { return client.Client{}, ErrorInvalidClientURI } c.Metadata.ClientURI = clientURI } c.Admin = sc.IsAdmin return c, nil }