@@ -36,37 +36,8 @@ func (f *Fetcher) Fetch(ctx context.Context, outputWriter, errorWriter io.Writer
3636 defer jsonWriter .Close ()
3737
3838 if f .Groups {
39- aadGroups , err := f .azureClient .ListGroups (ctx , f .groupProps )
40- if err != nil {
41- common .WriteErrorWithExitCode (errorWriter , err , 1 )
42- }
43-
44- for _ , group := range aadGroups {
45- writer := kiota .NewJsonSerializationWriter ()
46-
47- err := group .Serialize (writer )
48- if err != nil {
49- common .WriteErrorWithExitCode (errorWriter , err , 1 )
50- return err
51- }
52-
53- groupBytes , err := writer .GetSerializedContent ()
54- if err != nil {
55- common .WriteErrorWithExitCode (errorWriter , err , 1 )
56- return err
57- }
58-
59- groupString := "{" + string (groupBytes ) + "}"
60-
61- var obj map [string ]interface {}
62- if err := json .Unmarshal ([]byte (groupString ), & obj ); err != nil {
63- common .WriteErrorWithExitCode (errorWriter , err , 1 )
64- return err
65- }
66-
67- if err := jsonWriter .Write (obj ); err != nil {
68- _ , _ = errorWriter .Write ([]byte (err .Error ()))
69- }
39+ if err := f .fetchGroups (ctx , jsonWriter , errorWriter ); err != nil {
40+ return err
7041 }
7142 }
7243
@@ -84,24 +55,55 @@ func (f *Fetcher) Fetch(ctx context.Context, outputWriter, errorWriter io.Writer
8455 return err
8556 }
8657
87- userBytes , err := writer .GetSerializedContent ()
88- if err != nil {
89- common .WriteErrorWithExitCode (errorWriter , err , 1 )
58+ if err := writeObject (jsonWriter , writer , errorWriter ); err != nil {
9059 return err
9160 }
61+ }
62+
63+ return nil
64+ }
65+
66+ func (f * Fetcher ) fetchGroups (ctx context.Context , jsonWriter * js.JSONArrayWriter , errorWriter io.Writer ) error {
67+ aadGroups , err := f .azureClient .ListGroups (ctx , f .groupProps )
68+ if err != nil {
69+ common .WriteErrorWithExitCode (errorWriter , err , 1 )
70+ }
9271
93- userString := "{" + string (userBytes ) + "}"
72+ for _ , group := range aadGroups {
73+ writer := kiota .NewJsonSerializationWriter ()
9474
95- var obj map [ string ] interface {}
96- if err := json . Unmarshal ([] byte ( userString ), & obj ); err != nil {
75+ err := group . Serialize ( writer )
76+ if err != nil {
9777 common .WriteErrorWithExitCode (errorWriter , err , 1 )
9878 return err
9979 }
10080
101- if err := jsonWriter . Write ( obj ); err != nil {
102- _ , _ = errorWriter . Write ([] byte ( err . Error ()))
81+ if err := writeObject ( jsonWriter , writer , errorWriter ); err != nil {
82+ return err
10383 }
10484 }
10585
10686 return nil
10787}
88+
89+ func writeObject (jsonWriter * js.JSONArrayWriter , writer * kiota.JsonSerializationWriter , errorWriter io.Writer ) error {
90+ objBytes , err := writer .GetSerializedContent ()
91+ if err != nil {
92+ common .WriteErrorWithExitCode (errorWriter , err , 1 )
93+ return err
94+ }
95+
96+ objString := "{" + string (objBytes ) + "}"
97+
98+ var obj map [string ]any
99+ if err := json .Unmarshal ([]byte (objString ), & obj ); err != nil {
100+ common .WriteErrorWithExitCode (errorWriter , err , 1 )
101+ return err
102+ }
103+
104+ if err := jsonWriter .Write (obj ); err != nil {
105+ _ , _ = errorWriter .Write ([]byte (err .Error ()))
106+ }
107+
108+ return nil
109+ }
0 commit comments