Site Tools


guides:ws_payloads_get_repository_file_names

payloads:get_repository_file_names

The payloads web service is a REST structured service that derives its functionality based on syntax used when calling the web service. When including the repository name in the payloads web service call, a list of file names will be returned along with the date the file was created, the lock status of the file, and the date the file was last modified. A variety of filters are available and are documented below.


Purpose: Get Payload File Names For Selected Repository

Request Endpoint

Method URL
GET https://apex-prd.certna.org/APEX/Service/APEXPublicServer.svc/payloads/{repository}?{filter}&page_size={page_size}&page={page_index}&order={order}

Variables:

Variable Usage Description
{repository} Required The name of the repository

Arguments:

Variable Usage Description
{filter} Optional Collection of {column_name}:{comparator}:{value} separated by ';' symbol.
{page_size} Optional A positive integer representing the number of items returned for a single page of results.
{page} Optional A positive integer representing the page index of the result set. First index is 0.
{order} Optional Sort order of the returned data. Format {column_name}:{sort_type}. Valid {sort_type) Ascending or Descending

Filter Usage:

Column Name Comparators Allowed Values
FILE_NAME Equal, Contains, StartsWith, EndsWith Any string data.
LOCK_STATUS Equal Locked, Unlocked, All
DATE_CREATED Equal, Greater, GreaterEqual, Less, LessEqual Any valid date in format MM-dd-yyyy
DATE_MODIFIED Equal, Greater, GreaterEqual, Less, LessEqual Any valid date in format MM-dd-yyyy

Request Body

N/A

Request Headers

Key Value
access_token {soft-token}

JSON Request Parameters

N/A

Notes:

Any condition that results in an unsuccessful call to the payloads web service will produce a JSON formatted response with a code and message property populated.

Sample Request

Endpoint:

https://apex-prd.certna.org/APEX/Service/APEXPublicServer.svc/payloads/processed? filter=date_created:GreaterEqual:9-1-2019;date_created:Less:9-30-2019;date_modified:GreaterEqual:9-1-2019;date_modified:Less:9-30-2019;file_name:Contains:user-033;lock_status:Equal:Unlocked&page_size=10&page=1&order=file_name:Descending

Sample Response

Status Code: 200

{
    "result": [
        {
            "created": "2019-09-03 16:56:04",
            "file_name": "standard_user-033-190903161430419-00001.1.1_190903165601809",
            "lock_status": "Unlocked",
            "modified": "2019-09-03 16:56:18"
        },
        {
            "created": "2019-09-03 16:56:04",
            "file_name": "standard_user-033-190903161430419-00002.1.1_190903165601809",
            "lock_status": "Unlocked",
            "modified": "2019-09-03 16:56:23"
        },
        {
            "created": "2019-09-03 16:56:04",
            "file_name": "standard_user-033-190903161430419-00003.1.1_190903165601809",
            "lock_status": "Unlocked",
            "modified": "2019-09-03 16:56:24"
        },
        {
            "created": "2019-09-03 16:56:04",
            "file_name": "standard_user-033-190903161430419-00004.1.1_190903165601809",
            "lock_status": "Unlocked",
            "modified": "2019-09-03 16:56:17"
        },
        {
            "created": "2019-09-03 16:58:54",
            "file_name": "standard_user-033-190903161430419-00050.1.1_190903165852480",
            "lock_status": "Unlocked",
            "modified": "2019-09-03 16:59:08"
        }
    ]
}

OR

Status Code: 500 (When an error occurs.)

{
    "Exception": {
        "Code": "Undefined",
        "Message": "Invalid filter condition field name - \"lock_value\""
    }
}

Comment 1:

Following is a C# / .NET sample code snippet that shows how to call the payloads:get_repository_file_names web service.

This snippet was derived from the Web Service Toolbox that is available on the CeRTNA Wiki. The sample application is intended for easy to read demonstration purposes and not production quality code. The Web Service Toolbox application is documented, on the CeRTNA Wiki, to aid in understanding the code snippet shown below.

private string[] getRepositoryFileNames(string strRepositoryName)
{
    string[] strFileNames = null;
 
    RestClient client = null;
    RestRequest request = null;
    IRestResponse response = null;
 
    string strURL = "https://apex-prd.certna.org/APEX/Service/APEXPublicServer.svc/user/login";
 
    // Password has to be hashed.
    // New convention uses a Salt value from the user record
    // See Login documentation for more details
 
    string strSalt = GetSalt(tbUserName.Text);
    string strPassword = tbPassword.Password.ToString();
 
    string strHashedPassword = HashPassword(strPassword, strSalt);
 
    string strParms = "{\n\t\"user_name\" : \"";
    strParms += tbUserName.Text;
    strParms += "\",\n\t\"password\" : \"";
    strParms += strHashedPassword;
    strParms += "\"\n}";
 
    client = new RestClient(strURL);
    request = new RestRequest(Method.POST);
 
    request.AddHeader("Cache-Control", "no-cache");
    request.AddHeader("Content-Type", "application/json");
 
    request.AddParameter("Login", strParms, ParameterType.RequestBody);
    response = client.Execute(request);
 
    if (response.IsSuccessful)
    {
        var jsonResult1 = JsonConvert.DeserializeObject<dynamic>(response.Content);
        string token = jsonResult1.access_token;
 
        strURL = null;
        client = null;
        request = null;
        response = null;
 
        strURL = "https://" + getHost() + "/APEX/Service/APEXPublicServer.svc/payloads/" + strRepositoryName; 
 
        client = new RestClient(strURL);
        request = new RestRequest(Method.GET);
 
        request.AddHeader("Cache-Control", "no-cache");
        request.AddHeader("access_token", token);
        response = client.Execute(request);
 
        if (response.IsSuccessful)
        {
            JObject joResponse = JObject.Parse(response.Content);
            JArray array = (JArray)joResponse["result"];
 
            strFileNames = new string[array.Count];
 
            for (int i = 0; i < array.Count; i++)
            {
                strFileNames[i] = (String)array[i]["file_name"];
            }
        }
        else
        {
            var jsonResult2 = JsonConvert.DeserializeObject<dynamic>(response.Content);
            string strMessage = jsonResult2.Exception.Message;
            tbMessageLine.Text = strMessage;
        }
    }
    else
    {
        var jsonResult2 = JsonConvert.DeserializeObject<dynamic>(response.Content);
        tbMessageLine.Text = jsonResult2.ToString();
    }
    return (strFileNames);
}

Comment 2:

A nice utility for experimenting with web service calls is POSTMAN. You can download a free version of POSTMAN from the following URL: https://www.getpostman.com/apps

guides/ws_payloads_get_repository_file_names.txt · Last modified: by brett.zamora