mirror of
https://github.com/sasjs/core.git
synced 2025-12-11 06:24:35 +00:00
Merge pull request #184 from sasjs/issue181
feat: ms_getfile service (and test). Closes #181
This commit is contained in:
32
all.sas
32
all.sas
@@ -18854,6 +18854,38 @@ run;
|
||||
)
|
||||
|
||||
%mend ms_createfile;
|
||||
/**
|
||||
@file
|
||||
@brief Gets a file from SASjs Drive
|
||||
@details Fetches a file on SASjs Drive and stores it in the output fileref.
|
||||
|
||||
Example:
|
||||
|
||||
%ms_getfile(/some/stored/file.ext, outref=myfile)
|
||||
|
||||
@param [in] driveloc The full path to the file in SASjs Drive
|
||||
@param [out] outref= (msgetfil) The fileref to contain the file.
|
||||
@param [in] mdebug= (0) Set to 1 to enable DEBUG messages
|
||||
|
||||
|
||||
**/
|
||||
|
||||
%macro ms_getfile(driveloc
|
||||
,outref=msgetfil
|
||||
,mdebug=0
|
||||
);
|
||||
|
||||
filename &outref temp;
|
||||
|
||||
proc http method='GET' out=&outref
|
||||
url="&_sasjs_apiserverurl/SASjsApi/drive/file?filePath=&driveloc";
|
||||
%if &mdebug=1 %then %do;
|
||||
debug level=2;
|
||||
%end;
|
||||
run;
|
||||
|
||||
|
||||
%mend ms_getfile;
|
||||
/**
|
||||
@file
|
||||
@brief Executes a SASjs Server Stored Program
|
||||
|
||||
32
server/ms_getfile.sas
Normal file
32
server/ms_getfile.sas
Normal file
@@ -0,0 +1,32 @@
|
||||
/**
|
||||
@file
|
||||
@brief Gets a file from SASjs Drive
|
||||
@details Fetches a file on SASjs Drive and stores it in the output fileref.
|
||||
|
||||
Example:
|
||||
|
||||
%ms_getfile(/some/stored/file.ext, outref=myfile)
|
||||
|
||||
@param [in] driveloc The full path to the file in SASjs Drive
|
||||
@param [out] outref= (msgetfil) The fileref to contain the file.
|
||||
@param [in] mdebug= (0) Set to 1 to enable DEBUG messages
|
||||
|
||||
|
||||
**/
|
||||
|
||||
%macro ms_getfile(driveloc
|
||||
,outref=msgetfil
|
||||
,mdebug=0
|
||||
);
|
||||
|
||||
filename &outref temp;
|
||||
|
||||
proc http method='GET' out=&outref
|
||||
url="&_sasjs_apiserverurl/SASjsApi/drive/file?filePath=&driveloc";
|
||||
%if &mdebug=1 %then %do;
|
||||
debug level=2;
|
||||
%end;
|
||||
run;
|
||||
|
||||
|
||||
%mend ms_getfile;
|
||||
45
tests/serveronly/ms_getfile.test.sas
Normal file
45
tests/serveronly/ms_getfile.test.sas
Normal file
@@ -0,0 +1,45 @@
|
||||
/**
|
||||
@file
|
||||
@brief Testing ms_getfile.sas macro
|
||||
|
||||
<h4> SAS Macros </h4>
|
||||
@li ms_createfile.sas
|
||||
@li ms_getfile.sas
|
||||
@li mp_assert.sas
|
||||
@li mp_assertscope.sas
|
||||
|
||||
**/
|
||||
|
||||
|
||||
/* first make a remote file */
|
||||
filename stpcode temp;
|
||||
%let fname=%mf_getuniquename();
|
||||
data _null_;
|
||||
file stpcode;
|
||||
put "data &fname;run;";
|
||||
run;
|
||||
%ms_createfile(/sasjs/tests/&fname..sas
|
||||
,inref=stpcode
|
||||
,mdebug=1
|
||||
)
|
||||
|
||||
%mp_assertscope(SNAPSHOT)
|
||||
%ms_getfile(/sasjs/tests/&fname..sas,outref=testref)
|
||||
%mp_assertscope(COMPARE)
|
||||
|
||||
%let test1=0;
|
||||
data _null_;
|
||||
infile testref;
|
||||
input;
|
||||
call symputx('test1',_infile_);
|
||||
run;
|
||||
|
||||
%mp_assert(
|
||||
iftrue=("&test1"="data &fname;run;"),
|
||||
desc=Checking file was created with the same content,
|
||||
outds=work.test_results
|
||||
)
|
||||
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user