SDKsGo SDK
Users
Manage users server-side with the HelloJohn Go SDK — get, update, create, disable, and list users.
Users
The Go SDK provides a Users service for managing users from your backend.
hj := hellojohn.New(hellojohn.Config{
TenantID: os.Getenv("HELLOJOHN_TENANT_ID"),
SecretKey: os.Getenv("HELLOJOHN_SECRET_KEY"),
})Get a User
user, err := hj.Users.Get(ctx, "usr_01HABCDEF123456")
if err != nil {
log.Fatal(err)
}
fmt.Println(user.Email)Get by Email
user, err := hj.Users.GetByEmail(ctx, "jane@example.com")List Users
result, err := hj.Users.List(ctx, hellojohn.ListUsersParams{
Limit: 50,
Status: "active",
})
for _, user := range result.Users {
fmt.Println(user.ID, user.Email)
}
// Paginate
if result.NextCursor != "" {
next, _ := hj.Users.List(ctx, hellojohn.ListUsersParams{
Cursor: result.NextCursor,
})
_ = next
}Create a User
user, err := hj.Users.Create(ctx, hellojohn.CreateUserParams{
Email: "jane@example.com",
Password: "TemporaryPass123!",
FirstName: "Jane",
LastName: "Doe",
EmailVerified: true,
Metadata: map[string]interface{}{
"plan": "pro",
},
})Update a User
_, err := hj.Users.Update(ctx, "usr_01HABCDEF123456", hellojohn.UpdateUserParams{
FirstName: "Jane",
LastName: "Smith",
Metadata: map[string]interface{}{
"plan": "enterprise",
},
})Disable / Enable
// Disable
err = hj.Users.Disable(ctx, "usr_01HABCDEF123456")
// Enable
err = hj.Users.Enable(ctx, "usr_01HABCDEF123456")Delete
err = hj.Users.Delete(ctx, "usr_01HABCDEF123456")Error Handling
The SDK returns typed errors:
user, err := hj.Users.Get(ctx, userID)
if err != nil {
var hjErr *hellojohn.Error
if errors.As(err, &hjErr) {
switch hjErr.Code {
case "user_not_found":
http.Error(w, "User not found", http.StatusNotFound)
default:
http.Error(w, "Internal error", http.StatusInternalServerError)
}
return
}
// Network or other error
http.Error(w, "Internal error", http.StatusInternalServerError)
}