37%macro mv_deletefoldermember(path=
40 ,access_token_var=ACCESS_TOKEN
41 ,grant_type=sas_services
44%
if &grant_type=detect %then %
do;
45 %
if %symexist(&access_token_var) %then %let grant_type=authorization_code;
46 %
else %let grant_type=sas_services;
48%
if &grant_type=sas_services %then %
do;
49 %let oauth_bearer=oauth_bearer=sas_services;
50 %let &access_token_var=;
53%mp_abort(iftrue=(&grant_type ne authorization_code and &grant_type ne password
54 and &grant_type ne sas_services
57 ,msg=%str(Invalid value
for grant_type: &grant_type)
59%mp_abort(iftrue=(%mf_isblank(&path)=1)
61 ,msg=%str(path value must be provided)
63%mp_abort(iftrue=(%mf_isblank(&name)=1)
65 ,msg=%str(name value must be provided)
67%mp_abort(iftrue=(%length(&path)=1)
69 ,msg=%str(path value must be provided)
75%let base_uri=%mf_getplatform(VIYARESTAPI);
77%put &sysmacroname: fetching details
for &path ;
79%let fname1=%mf_getuniquefileref();
80proc http method=
'GET' out=&fname1 &oauth_bearer
81 url=
"&base_uri/folders/folders/@item?path=&path";
82%
if &grant_type=authorization_code %then %
do;
83 headers
"Authorization"=
"Bearer &&&access_token_var";
86%
if &SYS_PROCHTTP_STATUS_CODE=404 %then %
do;
87 %put &sysmacroname: Folder &path NOT FOUND - nothing to delete!;
90%
else %
if &SYS_PROCHTTP_STATUS_CODE ne 200 %then %
do;
92 %mp_abort(mac=&sysmacroname
93 ,msg=%str(&SYS_PROCHTTP_STATUS_CODE &SYS_PROCHTTP_STATUS_PHRASE)
97%put &sysmacroname: grab the follow on link ;
99%let libref1=%mf_getuniquelibref();
100libname &libref1 JSON fileref=&fname1;
103 if rel=
'members' then call symputx(
'mref',quote(
"&base_uri"!!trim(href)),
'l');
108%let fname1a=%mf_getuniquefileref();
109proc http method=
'GET' out=&fname1a &oauth_bearer
110 url=%unquote(%superq(mref));
111%
if &grant_type=authorization_code %then %
do;
112 headers
"Authorization"=
"Bearer &&&access_token_var";
115%
if &SYS_PROCHTTP_STATUS_CODE ne 200 %then %
do;
116 %put &=sysmacroname &=SYS_PROCHTTP_STATUS_CODE &=SYS_PROCHTTP_STATUS_PHRASE;
119%let libref1a=%mf_getuniquelibref();
120libname &libref1a JSON fileref=&fname1a;
125 length contenttype name $1000;
126 set &libref1a..items;
127 if contenttype=
"&contenttype" and upcase(name)=
"%upcase(&name)" then
do;
128 call symputx(
'uri',uri,
'l');
129 call symputx(
'found',1,
'l');
132%
if &found=0 %then %
do;
133 %put NOTE:;%put NOTE- &sysmacroname: &path/&name NOT FOUND;%put NOTE- ;
136proc http method=
"DELETE" url=
"&base_uri&uri" &oauth_bearer;
138%
if &grant_type=authorization_code %then %
do;
139 "Authorization"=
"Bearer &&&access_token_var"
143%
if &SYS_PROCHTTP_STATUS_CODE ne 204 %then %
do;
144 data _null_; infile &fname2; input; putlog _infile_;run;
145 %mp_abort(mac=&sysmacroname
146 ,msg=%str(&SYS_PROCHTTP_STATUS_CODE &SYS_PROCHTTP_STATUS_PHRASE)
149%
else %put &sysmacroname: &path/&name(&contenttype) successfully deleted;
152filename &fname1 clear;
153libname &libref1 clear;
154filename &fname1a clear;
155libname &libref1a clear;
157%mend mv_deletefoldermember;