@@ -214,20 +214,14 @@ type URLAdvancedPolicySettings struct {
214214}
215215
216216func Get (ctx context.Context , service * zscaler.Service , ruleID int ) (* URLFilteringRule , error ) {
217- var urlFilteringPolicies [] URLFilteringRule
218- err := common . ReadAllPages (ctx , service . Client , urlFilteringPoliciesEndpoint , & urlFilteringPolicies )
217+ var rule URLFilteringRule
218+ err := service . Client . Read (ctx , fmt . Sprintf ( "%s/%d" , urlFilteringPoliciesEndpoint , ruleID ), & rule )
219219 if err != nil {
220220 return nil , err
221221 }
222222
223- for _ , urlFilteringPolicy := range urlFilteringPolicies {
224- if urlFilteringPolicy .ID == ruleID {
225- service .Client .GetLogger ().Printf ("[DEBUG]Returning url filtering rules from Get: %d" , urlFilteringPolicy .ID )
226- return & urlFilteringPolicy , nil
227- }
228- }
229-
230- return nil , fmt .Errorf ("no url filtering rule found with id: %d" , ruleID )
223+ service .Client .GetLogger ().Printf ("[DEBUG]Returning url filtering rules from Get: %d" , rule .ID )
224+ return & rule , nil
231225}
232226
233227func GetByName (ctx context.Context , service * zscaler.Service , urlFilteringPolicyName string ) (* URLFilteringRule , error ) {
@@ -265,17 +259,11 @@ func Update(ctx context.Context, service *zscaler.Service, ruleID int, rule *URL
265259
266260 // Check if CBIProfile is nil or has empty ID, or if CBIProfileID is 0
267261 if rule .CBIProfile == nil || rule .CBIProfile .ID == "" || rule .CBIProfileID == 0 {
268- // If CBIProfile object is empty, fetch it using GetByName as Get by ID is not currently returnign the full CBIProfile object with the uuid ID
269- var urlFilteringPolicies []URLFilteringRule
270- err := common .ReadAllPages (ctx , service .Client , urlFilteringPoliciesEndpoint , & urlFilteringPolicies )
271- if err != nil {
272- return nil , nil , err
273- }
274- for _ , urlFilteringPolicy := range urlFilteringPolicies {
275- if urlFilteringPolicy .ID == ruleID {
276- rule .CBIProfile = urlFilteringPolicy .CBIProfile
277- rule .CBIProfileID = urlFilteringPolicy .CBIProfileID
278- }
262+ // If CBIProfile object is empty, fetch it using Get by ID
263+ existingRule , err := Get (ctx , service , ruleID )
264+ if err == nil && existingRule != nil {
265+ rule .CBIProfile = existingRule .CBIProfile
266+ rule .CBIProfileID = existingRule .CBIProfileID
279267 }
280268 }
281269 resp , err := service .Client .UpdateWithPut (ctx , fmt .Sprintf ("%s/%d" , urlFilteringPoliciesEndpoint , ruleID ), * rule )
@@ -299,12 +287,12 @@ func Delete(ctx context.Context, service *zscaler.Service, ruleID int) (*http.Re
299287
300288// GetAll returns the all rules.
301289func GetAll (ctx context.Context , service * zscaler.Service ) ([]URLFilteringRule , error ) {
302- var urlFilteringPolicies []URLFilteringRule
303- err := common . ReadAllPages ( ctx , service . Client , urlFilteringPoliciesEndpoint , & urlFilteringPolicies )
304- if err != nil {
305- return nil , err
306- }
307- return urlFilteringPolicies , nil
290+ var rules []URLFilteringRule
291+
292+ // Use service.Client.Read directly since the API doesn't support pagination
293+ // The API returns all results in a single response
294+ err := service . Client . Read ( ctx , urlFilteringPoliciesEndpoint , & rules )
295+ return rules , err
308296}
309297
310298func GetUrlAndAppSettings (ctx context.Context , service * zscaler.Service ) (* URLAdvancedPolicySettings , error ) {
0 commit comments