func CreateOidc()

in dex/oidc.go [16:50]


func CreateOidc(clientId string, clientSecret string, redirectUris []string, trustedPeers []string, public bool, name string, logoUrl string) error {
	conn, err := newGrpcConnection()
	if err != nil {
		return getApiClientError(err)
	}
	defer conn.Close()

	client := api.NewDexClient(conn)

	c := api.Client{
		Id:           clientId,
		Secret:       clientSecret,
		RedirectUris: redirectUris,
		TrustedPeers: trustedPeers,
		Public:       public,
		Name:         name,
		LogoUrl:      logoUrl,
	}

	req := &api.CreateClientReq{
		Client: &c,
	}

	if resp, err := client.CreateClient(context.TODO(), req); err != nil || (resp != nil && resp.AlreadyExists) {
		if resp != nil && resp.AlreadyExists {
			err = fmt.Errorf("oauth client %s already exists", clientId)
			return getError(err)
		}

		err = fmt.Errorf("failed to create oauth client %s", err)
		return getError(err)
	}

	return nil
}