procedure fnuploadDocument(docToUpload: Text; foldersArray: array[5] of Text; docName: Text): Text
    var
        httpClient: HttpClient;
        httpContent: HttpContent;
        httpResponseMessage: HttpResponseMessage;
        httpContentHeaders: HttpHeaders;
        HttpRequestMessage: HttpRequestMessage;
        apiUrl: Text;
        Responsetxt: Text;
        JSonRequest: JsonObject;
        FolderTxt: Text;
        RequestmesgTxt: Text;
        RequestBody: Text;
        RequestType: Enum "Http Requests Enum";
        JsonResp: JsonObject;
        fileUrl: Text;
        JsonToken: JsonToken;
        JsonArray: JsonArray;
        statustxt: Text;
    begin
        ObjIctSetup.GET;
        apiUrl := ObjIctSetup."Sharepoint Integrat. Base URL" + 'sharepoint/file';
        FolderTxt := '/' + foldersArray[1] + '/' + foldersArray[2] + '/' + foldersArray[3] + '/' + foldersArray[4] + '/' + foldersArray[5];
        RequestBody += '{';
        RequestBody += '"fileName":"' + docName + '",';
        RequestBody += '"fileContent":"' + doctoupload + '",';
        RequestBody += '"folderName":"' + folderTxt + '"';
        RequestBody += '}';
        Responsetxt := CallService(apiUrl, RequestType::post, RequestBody, '', '', ObjIctSetup."Sharepoint Api Key");
        JsonResp.ReadFrom(Responsetxt);
        JsonResp.Get('status', JsonToken);
        statustxt := JsonToken.AsValue().AsText();
        if statustxt = '200' then begin
            JsonResp.Get('data', JsonToken);
            JsonResp := JsonToken.AsObject();
            JsonResp.Get('fileUrl', JsonToken);
            fileUrl := JsonToken.AsValue().AsText();
            exit(fileUrl);
        end else begin
            Error('Error uploading document');
        end;
    end;

    procedure fnDownloadDocument(folderRelativeUrl: Text; docName: Text): Text
    var
        httpClient: HttpClient;
        httpContent: HttpContent;
        httpResponseMessage: HttpResponseMessage;
        httpContentHeaders: HttpHeaders;
        HttpRequestMessage: HttpRequestMessage;
        apiUrl: Text;
        Responsetxt: Text;
        JSonRequest: JsonObject;
        FolderTxt: Text;
        RequestmesgTxt: Text;
        CuRest: Codeunit "Web Service Management";
        RequestBody: Text;
        RequestType: Enum "Http Requests Enum";
        JsonResp: JsonObject;
        fileUrl: Text;
        JsonToken: JsonToken;
        JsonArray: JsonArray;
        doctoupload: Text;
        statustxt: Text;
    begin
        ObjIctSetup.GET;
        apiUrl := ObjIctSetup."Sharepoint Integrat. Base URL" + 'sharepoint/download';
        RequestBody += '{';
        RequestBody += '"fileName":"' + docName + '",';
        RequestBody += '"fileContent":"' + doctoupload + '",';
        RequestBody += '"folderName":"' + folderRelativeUrl + '"';
        RequestBody += '}';
        Responsetxt := CallService(apiUrl, RequestType::post, RequestBody, '', '', ObjIctSetup."Sharepoint Api Key");
        if Responsetxt <> '' then begin
            exit(Responsetxt);
        end else begin
            Error('Error downloading document');
        end;
    end;

    procedure fnDeleteDocument(folderRelativeUrl: Text; docName: Text): Text
    var
        httpClient: HttpClient;
        httpContent: HttpContent;
        httpResponseMessage: HttpResponseMessage;
        httpContentHeaders: HttpHeaders;
        HttpRequestMessage: HttpRequestMessage;
        apiUrl: Text;
        Responsetxt: Text;
        JSonRequest: JsonObject;
        FolderTxt: Text;
        RequestmesgTxt: Text;
        CuRest: Codeunit "Web Service Management";
        RequestBody: Text;
        RequestType: Enum "Http Requests Enum";
        JsonResp: JsonObject;
        fileUrl: Text;
        JsonToken: JsonToken;
        JsonArray: JsonArray;
        doctoupload: Text;
    begin
        ObjIctSetup.GET;
        apiUrl := ObjIctSetup."Sharepoint Integrat. Base URL" + 'sharepoint/file:delete';
        RequestBody += '{';
        RequestBody += '"fileName":"' + docName + '",';
        RequestBody += '"fileContent":"' + doctoupload + '",';
        RequestBody += '"folderName":"' + folderRelativeUrl + '"';
        RequestBody += '}';
        Responsetxt := CallService(apiUrl, RequestType::post, RequestBody, '', '', ObjIctSetup."Sharepoint Api Key");
        JsonResp.ReadFrom(Responsetxt);
        JsonResp.Get('status', JsonToken);
        exit(JsonToken.AsValue().AsText()); 
    end;