36%macro mv_getusergroups(user
37 ,outds=work.mv_getusergroups
38 ,access_token_var=ACCESS_TOKEN
39 ,grant_type=sas_services
42%
if &grant_type=detect %then %
do;
43 %
if %symexist(&access_token_var) %then %let grant_type=authorization_code;
44 %
else %let grant_type=sas_services;
46%
if &grant_type=sas_services %then %
do;
47 %let oauth_bearer=oauth_bearer=sas_services;
48 %let &access_token_var=;
50%put &sysmacroname: grant_type=&grant_type;
51%mp_abort(iftrue=(&grant_type ne authorization_code and &grant_type ne password
52 and &grant_type ne sas_services
55 ,msg=%str(Invalid value
for grant_type: &grant_type)
60%let base_uri=%mf_getplatform(VIYARESTAPI);
64%let fname1=%mf_getuniquefileref();
65%let libref1=%mf_getuniquelibref();
67proc http method=
'GET' out=&fname1 &oauth_bearer
68 url=
"&base_uri/identities/users/&user/memberships?limit=10000";
70%
if &grant_type=authorization_code %then %
do;
71 "Authorization"=
"Bearer &&&access_token_var"
73 "Accept"=
"application/json";
76%
if &SYS_PROCHTTP_STATUS_CODE=404 %then %
do;
77 %put NOTE: User &user not found!!;
80 %mp_abort(iftrue=(&SYS_PROCHTTP_STATUS_CODE ne 200)
82 ,msg=%str(&SYS_PROCHTTP_STATUS_CODE &SYS_PROCHTTP_STATUS_PHRASE)
85libname &libref1 JSON fileref=&fname1;
92filename &fname1 clear;
93libname &libref1 clear;
95%mend mv_getusergroups;