Skip to content

Conversation

rdyv
Copy link
Contributor

@rdyv rdyv commented Jul 5, 2025

We have listener API which is public but is not supported by Go client. This PR adds support for it.

This change was tested locally with this Go program:

package main

import (
	"context"
	"log"

	sanity "github.com/sanity-io/client-go"
)

func main() {
	client, err := sanity.VersionV20210325.NewClient("myProjectId", sanity.DefaultDataset,
		sanity.WithCallbacks(sanity.Callbacks{
			OnQueryResult: func(result *sanity.QueryResult) {
				log.Printf("Sanity queried in %d ms!", result.Time.Milliseconds())
			},
		}))
	if err != nil {
		log.Fatal(err)
	}

	ctx := context.Background()
	result, err := client.Listen("*").Do(ctx)
	if err != nil {
		log.Fatal(err)
	}

	for {
		event, err := result.Next()
		if err != nil {
			log.Fatal(err)
		}
		log.Printf("Event =>")
		log.Printf("\tType: %s", event.Type)
		log.Printf("\tID: %s", event.ID)
		log.Printf("\tData: %s\n\n", string(*event.Data))
	}
}

@rdyv rdyv self-assigned this Jul 5, 2025
@rdyv rdyv requested a review from a team July 5, 2025 00:48
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant