Skip to content

Commit 5593d0a

Browse files
authored
Merge pull request #461 from Dray56/user_create_with_username
Added user creation via username and origin
2 parents cdb33c0 + dc43cf7 commit 5593d0a

File tree

2 files changed

+30
-1
lines changed

2 files changed

+30
-1
lines changed

client/user.go

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,8 +41,18 @@ func (o UserListOptions) ToQueryString() (url.Values, error) {
4141
return o.ListOptions.ToQueryString(o)
4242
}
4343

44-
// Create a new user
44+
// Create a new user via GUID
4545
func (c *UserClient) Create(ctx context.Context, r *resource.UserCreate) (*resource.User, error) {
46+
return c.createUserCall(ctx, r)
47+
}
48+
49+
// Create a new user via Username and Origin
50+
func (c *UserClient) CreateWithUsername(ctx context.Context, r *resource.UserCreateWithUsername) (*resource.User, error) {
51+
return c.createUserCall(ctx, r)
52+
}
53+
54+
// Common Code for creating the user via API
55+
func (c *UserClient) createUserCall(ctx context.Context, r any) (*resource.User, error) {
4656
var user resource.User
4757
_, err := c.client.post(ctx, "/v3/users", r, &user)
4858
if err != nil {

resource/user.go

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,12 @@ type UserCreate struct {
1919
Metadata *Metadata `json:"metadata,omitempty"`
2020
}
2121

22+
type UserCreateWithUsername struct {
23+
Username string `json:"username"`
24+
Origin string `json:"origin"`
25+
Metadata *Metadata `json:"metadata,omitempty"`
26+
}
27+
2228
type UserUpdate struct {
2329
Metadata *Metadata `json:"metadata,omitempty"`
2430
}
@@ -27,3 +33,16 @@ type UserList struct {
2733
Pagination Pagination `json:"pagination"`
2834
Resources []*User `json:"resources"`
2935
}
36+
37+
func NewUserCreateWithGUID(userGUID string) *UserCreate {
38+
return &UserCreate{
39+
GUID: userGUID,
40+
}
41+
}
42+
43+
func NewUserCreateWithUsername(userName string, origin string) *UserCreateWithUsername {
44+
return &UserCreateWithUsername{
45+
Username: userName,
46+
Origin: origin,
47+
}
48+
}

0 commit comments

Comments
 (0)