/**
  @file
  @brief Sets the http headers in the SASjs/server response
  @details For GET requests, SASjs server will use the file generated by this
  macro for setting the appropriate http headers in the response.

  It works by writing a file to the session directory, that is then ingested by
  the server.

  The location of this file is driven by the global variable
  `sasjs_stpsrv_header_loc` which is made available in the autoexec.

  Usage:

      %mfs_httpheader(Content-Type,application/csv)

  @param [in] header_name Name of the http header to set
  @param [in] header_value Value of the http header to set

  <h4> Related Macros </h4>
  @li mcf_stpsrv_header.sas

  @version 9.3
  @author Allan Bowe

**/

%macro mfs_httpheader(header_name
  ,header_value
)/*/STORE SOURCE*/;
%global sasjs_stpsrv_header_loc;
%local fref fid i;

%if %sysfunc(filename(fref,&sasjs_stpsrv_header_loc)) ne 0 %then %do;
  %put &=fref &=sasjs_stpsrv_header_loc;
  %put %str(ERR)OR: %sysfunc(sysmsg());
  %return;
%end;

%let fid=%sysfunc(fopen(&fref,A));

%if &fid=0 %then %do;
  %put %str(ERR)OR: %sysfunc(sysmsg());
  %return;
%end;

%let rc=%sysfunc(fput(&fid,%str(&header_name): %str(&header_value)));
%let rc=%sysfunc(fwrite(&fid));

%let rc=%sysfunc(fclose(&fid));
%let rc=%sysfunc(filename(&fref));

%mend mfs_httpheader;
