{"id":18733344,"url":"https://github.com/autom8ter/goconnect","last_synced_at":"2026-04-27T11:31:19.310Z","repository":{"id":140621218,"uuid":"178955075","full_name":"autom8ter/goconnect","owner":"autom8ter","description":"Google Cloud Platform, Kubernetes, Twilio, Stripe, Slack, and SendGrid client set and grpc server","archived":false,"fork":false,"pushed_at":"2019-04-15T19:57:50.000Z","size":492,"stargazers_count":2,"open_issues_count":0,"forks_count":1,"subscribers_count":0,"default_branch":"master","last_synced_at":"2025-05-19T23:43:37.387Z","etag":null,"topics":["autom8ter","colemanword","gcp","golang","google","grpc","sendgrid","twilio"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/autom8ter.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2019-04-01T22:13:49.000Z","updated_at":"2019-12-26T02:06:39.000Z","dependencies_parsed_at":null,"dependency_job_id":"73e3efc2-cb06-4be2-a6ac-bdc400822ffa","html_url":"https://github.com/autom8ter/goconnect","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/autom8ter/goconnect","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/autom8ter%2Fgoconnect","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/autom8ter%2Fgoconnect/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/autom8ter%2Fgoconnect/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/autom8ter%2Fgoconnect/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/autom8ter","download_url":"https://codeload.github.com/autom8ter/goconnect/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/autom8ter%2Fgoconnect/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32335295,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-26T23:26:28.701Z","status":"online","status_checked_at":"2026-04-27T02:00:06.769Z","response_time":128,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["autom8ter","colemanword","gcp","golang","google","grpc","sendgrid","twilio"],"created_at":"2024-11-07T15:09:25.631Z","updated_at":"2026-04-27T11:31:19.306Z","avatar_url":"https://github.com/autom8ter.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# goconnect\n--\n    import \"github.com/autom8ter/goconnect\"\n\n\n## Usage\n\n```go\nvar NOEXIST = func(key string) error {\n\treturn errors.New(\"customer not found- key: \" + key)\n}\n```\n\n#### type CallbackFunc\n\n```go\ntype CallbackFunc func(customer2 *stripe.Customer) error\n```\n\n\n#### type GoConnect\n\n```go\ntype GoConnect struct {\n}\n```\n\nGoConnect holds the required configuration variables to create a GoConnect\nInstance. Use Init() to validate a GoConnect instance.\n\n#### func  New\n\n```go\nfunc New(cfg *api.Config) *GoConnect\n```\n\n#### func  NewFromEnv\n\n```go\nfunc NewFromEnv(customerIndex api.CustomerIndex, debug bool) *GoConnect\n```\nTWILIO_ACCOUNT, TWILIO_KEY, SENDGRID_KEY, SLACK_KEY, STRIPE_KEY, EMAIL_ADDRESS,\nEMAIL_NAME, SLACK_LOG_USERNAME, SLACK_LOG_CHANNEL\n\n#### func (*GoConnect) AddChannelReminder\n\n```go\nfunc (g *GoConnect) AddChannelReminder(r *api.ChannelReminder) (string, error)\n```\n\n#### func (*GoConnect) AddPin\n\n```go\nfunc (g *GoConnect) AddPin(ctx context.Context, p *api.Pin) error\n```\n\n#### func (*GoConnect) AddReaction\n\n```go\nfunc (g *GoConnect) AddReaction(ctx context.Context, r *api.UserReminder) error\n```\n\n#### func (*GoConnect) AddStar\n\n```go\nfunc (g *GoConnect) AddStar(ctx context.Context, star *api.Star) error\n```\n\n#### func (*GoConnect) AddUserReminder\n\n```go\nfunc (g *GoConnect) AddUserReminder(r *api.UserReminder) (string, error)\n```\n\n#### func (*GoConnect) CallCustomer\n\n```go\nfunc (g *GoConnect) CallCustomer(customerKey, from, callback string) (*gotwilio.VoiceResponse, error)\n```\nCall calls a number\n\n#### func (*GoConnect) CallUser\n\n```go\nfunc (g *GoConnect) CallUser(ctx context.Context, email string, from string, callback string) (*gotwilio.VoiceResponse, error)\n```\n\n#### func (*GoConnect) CancelSubscription\n\n```go\nfunc (g *GoConnect) CancelSubscription(key string, planName string) error\n```\n\n#### func (*GoConnect) Config\n\n```go\nfunc (g *GoConnect) Config() *api.Config\n```\n\n#### func (*GoConnect) CreateCustomer\n\n```go\nfunc (g *GoConnect) CreateCustomer(email, description, plan, name, phone string) (*stripe.Customer, error)\n```\n\n#### func (*GoConnect) CreateMonthlyPlan\n\n```go\nfunc (g *GoConnect) CreateMonthlyPlan(amount int64, id, prodId, prodName, nickname string) (*stripe.Plan, error)\n```\n\n#### func (*GoConnect) CreateVideoRoom\n\n```go\nfunc (g *GoConnect) CreateVideoRoom() (*gotwilio.VideoResponse, error)\n```\nFax faxes a number\n\n#### func (*GoConnect) CreateYearlyPlan\n\n```go\nfunc (g *GoConnect) CreateYearlyPlan(amount int64, id, prodId, prodName, nickname string) (*stripe.Plan, error)\n```\n\n#### func (*GoConnect) CustomerCallBack\n\n```go\nfunc (g *GoConnect) CustomerCallBack(key string, funcs ...CallbackFunc) error\n```\n\n#### func (*GoConnect) CustomerCard\n\n```go\nfunc (g *GoConnect) CustomerCard(customerKey string) (*stripe.Card, error)\n```\n\n#### func (*GoConnect) CustomerExists\n\n```go\nfunc (g *GoConnect) CustomerExists(key string) bool\n```\n\n#### func (*GoConnect) CustomerIsSubscribedToPlan\n\n```go\nfunc (g *GoConnect) CustomerIsSubscribedToPlan(customerKey string, planFriendlyName string) bool\n```\n\n#### func (*GoConnect) CustomerKeys\n\n```go\nfunc (g *GoConnect) CustomerKeys() []string\n```\n\n#### func (*GoConnect) CustomerMetadata\n\n```go\nfunc (g *GoConnect) CustomerMetadata(customerKey string) (map[string]string, error)\n```\n\n#### func (*GoConnect) CustomerSubscriptions\n\n```go\nfunc (g *GoConnect) CustomerSubscriptions(customerKey string) ([]*stripe.Subscription, error)\n```\n\n#### func (*GoConnect) Customers\n\n```go\nfunc (g *GoConnect) Customers() map[string]*stripe.Customer\n```\nCustomers returns your current stripe customer cache\n\n#### func (*GoConnect) EmailCustomer\n\n```go\nfunc (g *GoConnect) EmailCustomer(customerKey, subject, plain, html string) error\n```\n\n#### func (*GoConnect) EmailUser\n\n```go\nfunc (g *GoConnect) EmailUser(ctx context.Context, email *api.RecipientEmail) error\n```\n\n#### func (*GoConnect) FaxCustomer\n\n```go\nfunc (g *GoConnect) FaxCustomer(customerKey, from, mediaUrl, quality, callback string, storeMedia bool) (*gotwilio.FaxResource, error)\n```\nFax faxes a number\n\n#### func (*GoConnect) GetCall\n\n```go\nfunc (g *GoConnect) GetCall(id string) (*gotwilio.VoiceResponse, error)\n```\n\n#### func (*GoConnect) GetCustomer\n\n```go\nfunc (g *GoConnect) GetCustomer(key string) (*stripe.Customer, bool)\n```\n\n#### func (*GoConnect) GetFax\n\n```go\nfunc (g *GoConnect) GetFax(id string) (*gotwilio.FaxResource, error)\n```\n\n#### func (*GoConnect) GetSMS\n\n```go\nfunc (g *GoConnect) GetSMS(id string) (*gotwilio.SmsResponse, error)\n```\n\n#### func (*GoConnect) GetSlackChannelHistory\n\n```go\nfunc (g *GoConnect) GetSlackChannelHistory(ctx context.Context, channel, latest, oldest string, count int, inclusive bool) (*slack.History, error)\n```\n\n#### func (*GoConnect) GetSlackThreadReplies\n\n```go\nfunc (g *GoConnect) GetSlackThreadReplies(ctx context.Context, channel string, thread string) ([]slack.Message, error)\n```\n\n#### func (*GoConnect) GetUserByEmail\n\n```go\nfunc (g *GoConnect) GetUserByEmail(ctx context.Context, email string) (*slack.User, error)\n```\n\n#### func (*GoConnect) GetVideoRoom\n\n```go\nfunc (g *GoConnect) GetVideoRoom(id string) (*gotwilio.VideoResponse, error)\n```\n\n#### func (*GoConnect) HandleSlackEvents\n\n```go\nfunc (g *GoConnect) HandleSlackEvents(funcs ...hooks.EventHandler)\n```\n\n#### func (*GoConnect) Hook\n\n```go\nfunc (g *GoConnect) Hook(ctx context.Context, attachments ...slack.Attachment) error\n```\n\n#### func (*GoConnect) Init\n\n```go\nfunc (g *GoConnect) Init() error\n```\nInit starts syncing the customer cache and validates the GoConnect instance\n\n#### func (*GoConnect) LogHook\n\n```go\nfunc (g *GoConnect) LogHook(ctx context.Context, hook *api.LogHook) error\n```\n\n#### func (*GoConnect) NewTwilioProxyService\n\n```go\nfunc (g *GoConnect) NewTwilioProxyService(name, callback, ofSessionCallback, interceptCallback, geoMatch, numSelectionBehavior string, defTTL int) (*gotwilio.ProxyService, error)\n```\n\n#### func (*GoConnect) SMSCustomer\n\n```go\nfunc (g *GoConnect) SMSCustomer(customerKey, from, body, mediaUrl, callback, app string) (*gotwilio.SmsResponse, error)\n```\n\n#### func (*GoConnect) SMSUser\n\n```go\nfunc (g *GoConnect) SMSUser(ctx context.Context, email string, from string, body, mediaUrl string, callback, app string) (*gotwilio.SmsResponse, error)\n```\n\n#### func (*GoConnect) SendCall\n\n```go\nfunc (g *GoConnect) SendCall(c *api.Call) (*gotwilio.VoiceResponse, error)\n```\nCall calls a number\n\n#### func (*GoConnect) SendEmail\n\n```go\nfunc (g *GoConnect) SendEmail(r *api.RecipientEmail) error\n```\n\n#### func (*GoConnect) SendFax\n\n```go\nfunc (g *GoConnect) SendFax(f *api.Fax) (*gotwilio.FaxResource, error)\n```\nFax faxes a number\n\n#### func (*GoConnect) SendSMS\n\n```go\nfunc (g *GoConnect) SendSMS(s *api.SMS) (*gotwilio.SmsResponse, error)\n```\nSendSMS sends an sms if mediaurl if empty, mms otherwise.\n\n#### func (*GoConnect) Serve\n\n```go\nfunc (g *GoConnect) Serve(addr string, plugs ...Plugin) error\n```\n\n#### func (*GoConnect) SubscribeCustomer\n\n```go\nfunc (g *GoConnect) SubscribeCustomer(key string, plan, cardnum, month, year, cvc string) (*stripe.Subscription, error)\n```\n\n#### func (*GoConnect) SwitchIndex\n\n```go\nfunc (g *GoConnect) SwitchIndex(typ api.CustomerIndex)\n```\n\n#### func (*GoConnect) SyncCustomers\n\n```go\nfunc (g *GoConnect) SyncCustomers()\n```\n\n#### func (*GoConnect) UserIsAdmin\n\n```go\nfunc (g *GoConnect) UserIsAdmin(ctx context.Context, email string) (bool, error)\n```\n\n#### func (*GoConnect) UserIsAppUser\n\n```go\nfunc (g *GoConnect) UserIsAppUser(ctx context.Context, email string) (bool, error)\n```\n\n#### func (*GoConnect) UserIsBot\n\n```go\nfunc (g *GoConnect) UserIsBot(ctx context.Context, email string) (bool, error)\n```\n\n#### func (*GoConnect) UserIsOwner\n\n```go\nfunc (g *GoConnect) UserIsOwner(ctx context.Context, email string) (bool, error)\n```\n\n#### func (*GoConnect) UserIsPrimaryOwner\n\n```go\nfunc (g *GoConnect) UserIsPrimaryOwner(ctx context.Context, email string) (bool, error)\n```\n\n#### func (*GoConnect) UserIsRestricted\n\n```go\nfunc (g *GoConnect) UserIsRestricted(ctx context.Context, email string) (bool, error)\n```\n\n#### func (*GoConnect) UserIsStranger\n\n```go\nfunc (g *GoConnect) UserIsStranger(ctx context.Context, email string) (bool, error)\n```\n\n#### func (*GoConnect) UserIsUltraRestricted\n\n```go\nfunc (g *GoConnect) UserIsUltraRestricted(ctx context.Context, email string) (bool, error)\n```\n\n#### func (*GoConnect) UserPhoneNumber\n\n```go\nfunc (g *GoConnect) UserPhoneNumber(ctx context.Context, email string) (string, error)\n```\n\n#### func (*GoConnect) Util\n\n```go\nfunc (g *GoConnect) Util() *objectify.Handler\n```\nUtil returns an objectify util tool ref:github.com/autom8ter/objectify\n\n#### type Plugin\n\n```go\ntype Plugin interface {\n\tdriver.Plugin\n\tRegisterWithClient(g *GoConnect)\n}\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fautom8ter%2Fgoconnect","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fautom8ter%2Fgoconnect","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fautom8ter%2Fgoconnect/lists"}