package main import ( "atproto-playground/api/regnault" "context" "os" "strings" "github.com/bluesky-social/indigo/api/atproto" "github.com/bluesky-social/indigo/atproto/client" "github.com/bluesky-social/indigo/atproto/identity" "github.com/bluesky-social/indigo/atproto/syntax" "github.com/bluesky-social/indigo/lex/util" ) type LoginData struct { handle string password string } func getLoginData() LoginData { return LoginData{ handle: os.Getenv("HANDLE"), password: os.Getenv("PASSWORD"), } } func (l LoginData) Login() (*client.APIClient, error) { return client.LoginWithPassword( context.Background(), identity.DefaultDirectory(), syntax.AtIdentifier{Inner: syntax.Handle(l.handle)}, l.password, "", nil) } func main() { client, err := getLoginData().Login() if err != nil { panic(err) } created := createRecord(client) splitted := strings.Split(created.Uri, "/") deleteRecord(client, splitted[len(splitted)-1]) } func createRecord(client *client.APIClient) atproto.RepoCreateRecord_Output { example := regnault.Example{ Test: "hellooo", } entry := atproto.RepoCreateRecord_Input{ Collection: "dev.regnault.example", Repo: string(*client.AccountDID), Record: &util.LexiconTypeDecoder{Val: &example}, } a := atproto.RepoCreateRecord_Output{} err := client.Post(context.Background(), "com.atproto.repo.createRecord", entry, &a) if err != nil { panic(err) } return a } func deleteRecord(client *client.APIClient, rkey string) { entry := atproto.RepoDeleteRecord_Input{ Collection: "dev.regnault.example", Repo: string(*client.AccountDID), Rkey: rkey, } a := atproto.RepoDeleteRecord_Output{} err := client.Post(context.Background(), "com.atproto.repo.deleteRecord", entry, &a) if err != nil { panic(err) } }