Skip to content

Commit 13c9fd4

Browse files
authored
Merge pull request #747 from deploymenttheory/fix/enrollment
fix: url construction for CreateAccountDrivenUserEnrollmentAccessGroup
2 parents 15ba546 + f850210 commit 13c9fd4

File tree

5 files changed

+44
-36
lines changed

5 files changed

+44
-36
lines changed

examples/enrollment/CreateAccountDrivenUserEnrollmentAccessGroup/CreateAccountDrivenUserEnrollmentAccessGroup.go

Lines changed: 15 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -20,26 +20,30 @@ func main() {
2020

2121
// Define the new ADUE access group details
2222
newGroup := jamfpro.ResourceAccountDrivenUserEnrollmentAccessGroup{
23-
GroupID: "1", // Example Group ID, replace with actual
24-
LdapServerID: "4", // Example LDAP Server ID, replace with actual
25-
Name: "New Access Group",
26-
SiteID: "-1", // Example Site ID, replace with actual
27-
EnterpriseEnrollmentEnabled: true,
23+
GroupID: "cccdad37-ec0e-4738-956c-3f8c0203dace", // Example Group ID
24+
LdapServerID: "1006", // Example LDAP Server ID
25+
Name: "some-group-name",
26+
SiteID: "-1", // Example Site ID (global)
27+
EnterpriseEnrollmentEnabled: false,
2828
PersonalEnrollmentEnabled: false,
29-
AccountDrivenUserEnrollmentEnabled: true,
29+
AccountDrivenUserEnrollmentEnabled: false,
3030
RequireEula: false,
3131
}
3232

33-
// Create the new ADUE access group using the client
33+
payload, err := json.MarshalIndent(newGroup, "", " ")
34+
if err != nil {
35+
log.Fatalf("Failed to marshal request payload: %v", err)
36+
}
37+
fmt.Println("Request Payload to be sent to Jamf Pro API:\n", string(payload))
38+
3439
response, err := client.CreateAccountDrivenUserEnrollmentAccessGroup(&newGroup)
3540
if err != nil {
3641
log.Fatalf("Failed to create ADUE access group: %v", err)
3742
}
3843

39-
// Pretty print the created script details in XML
40-
JSON, err := json.MarshalIndent(response, "", " ") // Indent with 4 spaces
44+
JSON, err := json.MarshalIndent(response, "", " ")
4145
if err != nil {
42-
log.Fatalf("Error marshaling created script data: %v", err)
46+
log.Fatalf("Error marshaling created group data: %v", err)
4347
}
44-
fmt.Println("Created Script Details:\n", string(JSON))
48+
fmt.Println("Created Group Response:\n", string(JSON))
4549
}

examples/enrollment/DeleteMultipleEnrollmentMessagesByLanguageIDs/DeleteMultipleEnrollmentMessagesByLanguageIDs.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ func main() {
1818
}
1919

2020
// Define the language IDs to delete
21-
languageIds := []string{"en", "fr", "es"}
21+
languageIds := []string{"fr", "ji"}
2222

2323
// Call DeleteMultipleEnrollmentMessagesByLanguageIDs function
2424
err = client.DeleteMultipleEnrollmentMessagesByLanguageIDs(languageIds)

examples/enrollment/UpdateAccountDrivenUserEnrollmentAccessGroupByID/UpdateAccountDrivenUserEnrollmentAccessGroupByID.go

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -19,18 +19,18 @@ func main() {
1919
}
2020

2121
// Define the ID of the group to update
22-
groupID := "1"
22+
groupID := "12"
2323

2424
groupUpdate := &jamfpro.ResourceAccountDrivenUserEnrollmentAccessGroup{
2525
ID: groupID,
26-
GroupID: "12345",
27-
LdapServerID: "1",
28-
Name: "Updated ADUE Access Group",
29-
SiteID: "-1",
30-
EnterpriseEnrollmentEnabled: true,
26+
GroupID: "cccdad37-ec0e-4738-956c-3f8c0203dace", // Example Group ID
27+
LdapServerID: "1006", // Example LDAP Server ID
28+
Name: "some-group-name",
29+
SiteID: "-1", // Example Site ID (global)
30+
EnterpriseEnrollmentEnabled: false,
3131
PersonalEnrollmentEnabled: false,
32-
AccountDrivenUserEnrollmentEnabled: true,
33-
RequireEula: true,
32+
AccountDrivenUserEnrollmentEnabled: false,
33+
RequireEula: false,
3434
}
3535

3636
updatedGroup, err := client.UpdateAccountDrivenUserEnrollmentAccessGroupByID(groupID, groupUpdate)

examples/enrollment/UpdateEnrollmentMessageByLanguageID/UpdateEnrollmentMessageByLanguageID.go

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -85,6 +85,10 @@ func main() {
8585
}
8686

8787
// Specify the Two letter ISO 639-1 Language Code to update used as ur Path Params
88+
/* Needs to match the req fields
89+
LanguageCode: "fr",
90+
Name: "French",
91+
*/
8892
languageId := "fr"
8993

9094
// Call UpdateEnrollmentMessageByLanguageID function

sdk/jamfpro/jamfproapi_enrollment.go

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -246,7 +246,7 @@ func (c *Client) GetAccountDrivenUserEnrollmentAccessGroupByName(name string) (*
246246

247247
// CreateAccountDrivenUserEnrollmentAccessGroup creates a new ADUE access group
248248
func (c *Client) CreateAccountDrivenUserEnrollmentAccessGroup(script *ResourceAccountDrivenUserEnrollmentAccessGroup) (*ResponseAccountDrivenUserEnrollmentAccessGroupCreateAndUpdate, error) {
249-
endpoint := uriEnrollmentV3
249+
endpoint := fmt.Sprintf("%s/access-groups", uriEnrollmentV3)
250250
var out ResponseAccountDrivenUserEnrollmentAccessGroupCreateAndUpdate
251251

252252
resp, err := c.HTTP.DoRequest("POST", endpoint, script, &out)
@@ -510,46 +510,46 @@ func (c *Client) DeleteMultipleEnrollmentMessagesByLanguageIDs(languageIds []str
510510
return fmt.Errorf("failed to retrieve language codes for validation: %v", err)
511511
}
512512

513-
// Create a map of valid language codes for faster lookup
513+
// Create a map of valid language codes
514514
validCodes := make(map[string]bool)
515515
for _, code := range languageCodes {
516516
validCodes[code.Value] = true
517517
}
518518

519-
// Validate each language ID against available codes
519+
// Validate input list
520520
var invalidIDs []string
521521
for _, id := range languageIds {
522522
if !validCodes[id] {
523523
invalidIDs = append(invalidIDs, id)
524524
}
525525
}
526-
527526
if len(invalidIDs) > 0 {
528527
return fmt.Errorf("invalid language IDs found: %v", invalidIDs)
529528
}
530529

531-
// Proceed with the API call for valid language IDs
530+
// Send delete request
532531
endpoint := fmt.Sprintf("%s/languages/delete-multiple", uriEnrollmentV3)
533-
534-
// Create request body
535-
request := RequestDeleteMultipleLanguages{
536-
IDs: languageIds,
537-
}
532+
request := RequestDeleteMultipleLanguages{IDs: languageIds}
538533

539534
resp, err := c.HTTP.DoRequest("POST", endpoint, request, nil)
540535
if err != nil {
541536
return fmt.Errorf(errMsgFailedDelete, "multiple enrollment language messages", err)
542537
}
538+
defer func() {
539+
if resp != nil && resp.Body != nil {
540+
resp.Body.Close()
541+
}
542+
}()
543543

544-
if resp != nil && resp.Body != nil {
545-
defer resp.Body.Close()
544+
// No content? Success!
545+
if resp.StatusCode == 204 {
546+
return nil
546547
}
547548

549+
// If we *did* get content, try to decode error
548550
var respErr ResponseError
549-
if err := json.NewDecoder(resp.Body).Decode(&respErr); err == nil {
550-
if respErr.HTTPStatus != 0 {
551-
return fmt.Errorf("deletion failed for multiple enrollment languages with status %d: %v", respErr.HTTPStatus, respErr.Errors)
552-
}
551+
if err := json.NewDecoder(resp.Body).Decode(&respErr); err == nil && respErr.HTTPStatus != 0 {
552+
return fmt.Errorf("deletion failed for multiple enrollment languages with status %d: %v", respErr.HTTPStatus, respErr.Errors)
553553
}
554554

555555
return nil

0 commit comments

Comments
 (0)