info:
  name: Get Request Attachment
  type: http
  seq: 2

http:
  method: GET
  url: "{{elixFormsApiUrl_Default}}/request/:request_id/get/document?storageId=7155"
  headers:
    - name: x-requested-with
      value: XMLHttpRequest
    - name: x-api-username
      value: "{{elixFormsApiUsername}}"
  params:
    - name: username
      value: "{{elixFormsApiUsername}}"
      type: query
      description: lo username con cui si è effettuato il login
      disabled: true
    - name: storageId
      value: "7155"
      type: query
      description: |-
        id di stoccaggio della risorsa: è un valore numerico che identifica lo specifico allegato che si vuole recuperare

        l'id dell'allegato si può recuperare in due modi:
        - copiando il link con cui si scaricherebbe normalmente da elixForms (Gestione Istanze) e recuperando il valore del query parameter `IUBINSTOREID`
        - dalla API Get Request: se esiste, bisogna identificare lo step e lo schema in cui sono presenti gli allegati da scaricare, all'interno la property è records[*].sections[*].columns[*].columnValueList.columnValue[*].key
        - se al campo UPLOAD è stato applicato l'attributo SetExportTag, chiamando prima l'apposita API l'ID storage è contenuto nell'elemento JSON specificato
        - TL;DR c'è un post-request script nella Get Request che elenca come Warning gli allegati eventualmente presenti nella richiesta!
    - name: upload-timestamp
      value: ""
      type: query
      description: "opzionale: timestamp di upload della risorsa"
      disabled: true
    - name: content-type
      value: image/jpg
      type: query
      description: "opzionale: media type della risorsa se disponibile"
      disabled: true
    - name: request_id
      value: "19903"
      type: path
      description: id dell'istanza inserita su elixForms
  auth: inherit

runtime:
  scripts:
    - type: after-response
      code: |-
        var template = `
        <style type="text/css">
            .code {
                font-size:14px;
                background-color:#ffffff;
                color:#333333;
                width:100%;
                padding: 1em;
            }
        </style>

        <pre class="code">
        {{response.decodedDocument}}
        </pre>
        `;

        function constructVisualizerPayload() {
            var response = res.getBody();
            var decodedDocument = atob(response.value.requestDocument.documentBase64);
            response.decodedDocument = decodedDocument;
            return { response: response };
        }

        // pm.visualizer.set(template, constructVisualizerPayload());

settings:
  encodeUrl: true
  timeout: 0
  followRedirects: true
  maxRedirects: 5
  forwardAuthorizationHeader: true

examples:
  - name: Get Request Attachment - Success
    request:
      url: "{{elixFormsApiUrl_Default}}/request/:request_id/get/document?username={{elixFormsApiUsername}}&storageId=973"
      method: GET
      params:
        - name: username
          value: "{{elixFormsApiUsername}}"
          type: query
          description: lo username con cui si è effettuato il login
        - name: storageId
          value: "973"
          type: query
          description: |-
            id di stoccaggio della risorsa: è un valore numerico che identifica lo specifico allegato che si vuole recuperare

            l'id dell'allegato si può recuperare in due modi:
            - copiando il link con cui si scaricherebbe normalmente da elixForms (Gestione Istanze) e recuperando il valore del query parameter `IUBINSTOREID`
            - dalla API Get Request: se esiste, bisogna identificare lo step e lo schema in cui sono presenti gli allegati da scaricare, all'interno la property è records[*].sections[*].columns[*].columnValueList.columnValue[*].key
            - TL;DR c'è un post-request script nella Get Request che elenca come Warning gli allegati eventualmente presenti nella richiesta!
        - name: upload-timestamp
          value: ""
          type: query
          description: "opzionale: timestamp di upload della risorsa"
          disabled: true
        - name: content-type
          value: image/jpg
          type: query
          description: "opzionale: media type della risorsa se disponibile"
          disabled: true
        - name: request_id
          value: "5847"
          type: path
          description: id dell'istanza inserita su elixForms
      body:
        type: form-urlencoded
    response:
      statusText: "200"
      headers:
        - name: cache-control
          value: no-cache, no-store, must-revalidate
        - name: pragma
          value: no-cache
        - name: proxy-connection
          value: Keep-Alive
        - name: x-content-security-policy
          value: default-src 'self'; connect-src 'self'; font-src 'none'; img-src 'self'; media-src 'self'; object-src 'self'; plugin-types application/pdf audio/x-wav; referrer no-referrer; reflected-xss block; script-src 'self'; style-src 'self'
        - name: content-type
          value: application/it.elixforms.api.v1.2+json;charset=UTF-8
        - name: content-length
          value: "7655"
        - name: strict-transport-security
          value: max-age=63072000;includeSubDomains
        - name: content-security-policy
          value: "default-src https: data: 'unsafe-inline' 'unsafe-eval'"
        - name: x-frame-options
          value: SAMEORIGIN
        - name: x-xss-protection
          value: 1;mode=block
        - name: x-content-type-options
          value: nosniff
        - name: referrer-policy
          value: unsafe-url
      body:
        type: text
        data: |-
          {
              "value": {
                  "code": "OK",
                  "description": "OK",
                  "complete": true,
                  "globalStatus": "OK",
                  "serviceInformationList": {
                      "serviceInformation": [
                          {
                              "ITSystemName": "EF-CORE",
                              "complete": true,
                              "serviceVersion": "1.2.0",
                              "statusDetailList": {
                                  "statusDetail": [
                                      {
                                          "code": "OK",
                                          "description": "OK",
                                          "detailStatus": "OK"
                                      }
                                  ]
                              }
                          }
                      ]
                  },
                  "uuid": "66a8515f-b3bc-4567-9939-4fd3644d4171",
                  "version": "3.9.2.17",
                  "requestDocument": {
                      "documentBase64": "[encoded data, 7212 characters]",
                      "requestId": 5847,
                      "storageId": 973
                  },
                  "requestSize": 1
              }
          }
  - name: Get Request Attachment - Request Not Found
    request:
      url: "{{elixFormsApiUrl_Default}}/request/:request_id/get/document?username={{elixFormsApiUsername}}&storageId=973"
      method: GET
      params:
        - name: username
          value: "{{elixFormsApiUsername}}"
          type: query
          description: lo username con cui si è effettuato il login
        - name: storageId
          value: "973"
          type: query
          description: |-
            id di stoccaggio della risorsa: è un valore numerico che identifica lo specifico allegato che si vuole recuperare

            l'id dell'allegato si può recuperare in due modi:
            - copiando il link con cui si scaricherebbe normalmente da elixForms (Gestione Istanze) e recuperando il valore del query parameter `IUBINSTOREID`
            - dalla API Get Request: se esiste, bisogna identificare lo step e lo schema in cui sono presenti gli allegati da scaricare, all'interno la property è records[*].sections[*].columns[*].columnValueList.columnValue[*].key
            - TL;DR c'è un post-request script nella Get Request che elenca come Warning gli allegati eventualmente presenti nella richiesta!
        - name: upload-timestamp
          value: ""
          type: query
          description: "opzionale: timestamp di upload della risorsa"
          disabled: true
        - name: content-type
          value: image/jpg
          type: query
          description: "opzionale: media type della risorsa se disponibile"
          disabled: true
        - name: request_id
          value: "847"
          type: path
          description: id dell'istanza inserita su elixForms
      body:
        type: form-urlencoded
    response:
      statusText: "200"
      headers:
        - name: cache-control
          value: no-cache, no-store, must-revalidate
        - name: pragma
          value: no-cache
        - name: proxy-connection
          value: Keep-Alive
        - name: x-content-security-policy
          value: default-src 'self'; connect-src 'self'; font-src 'none'; img-src 'self'; media-src 'self'; object-src 'self'; plugin-types application/pdf audio/x-wav; referrer no-referrer; reflected-xss block; script-src 'self'; style-src 'self'
        - name: content-type
          value: application/it.elixforms.api.v1.2+json;charset=UTF-8
        - name: content-length
          value: "486"
        - name: strict-transport-security
          value: max-age=63072000;includeSubDomains
        - name: content-security-policy
          value: "default-src https: data: 'unsafe-inline' 'unsafe-eval'"
        - name: x-frame-options
          value: SAMEORIGIN
        - name: x-xss-protection
          value: 1;mode=block
        - name: x-content-type-options
          value: nosniff
        - name: referrer-policy
          value: unsafe-url
      body:
        type: text
        data: |-
          {
              "value": {
                  "code": "ERROR",
                  "description": "Any module info got from extra details for request 847",
                  "complete": true,
                  "globalStatus": "ERROR",
                  "serviceInformationList": {
                      "serviceInformation": [
                          {
                              "ITSystemName": "EF-CORE",
                              "complete": true,
                              "serviceVersion": "1.2.0",
                              "statusDetailList": {
                                  "statusDetail": [
                                      {
                                          "code": "ERROR",
                                          "description": "Any module info got from extra details for request 847",
                                          "detailStatus": "ERROR"
                                      }
                                  ]
                              }
                          }
                      ]
                  },
                  "uuid": "3c55a6f3-4e8f-45ee-9fea-090d5ee13cb1",
                  "version": "3.9.2.17",
                  "requestSize": 0
              }
          }
  - name: Get Request Attachment - Attachment Not Found
    request:
      url: "{{elixFormsApiUrl_Default}}/request/:request_id/get/document?username={{elixFormsApiUsername}}&storageId=0"
      method: GET
      params:
        - name: username
          value: "{{elixFormsApiUsername}}"
          type: query
          description: lo username con cui si è effettuato il login
        - name: storageId
          value: "0"
          type: query
          description: |-
            id di stoccaggio della risorsa: è un valore numerico che identifica lo specifico allegato che si vuole recuperare

            l'id dell'allegato si può recuperare in due modi:
            - copiando il link con cui si scaricherebbe normalmente da elixForms (Gestione Istanze) e recuperando il valore del query parameter `IUBINSTOREID`
            - dalla API Get Request: se esiste, bisogna identificare lo step e lo schema in cui sono presenti gli allegati da scaricare, all'interno la property è records[*].sections[*].columns[*].columnValueList.columnValue[*].key
            - TL;DR c'è un post-request script nella Get Request che elenca come Warning gli allegati eventualmente presenti nella richiesta!
        - name: upload-timestamp
          value: ""
          type: query
          description: "opzionale: timestamp di upload della risorsa"
          disabled: true
        - name: content-type
          value: image/jpg
          type: query
          description: "opzionale: media type della risorsa se disponibile"
          disabled: true
        - name: request_id
          value: "5847"
          type: path
          description: id dell'istanza inserita su elixForms
      body:
        type: form-urlencoded
    response:
      statusText: "200"
      headers:
        - name: cache-control
          value: no-cache, no-store, must-revalidate
        - name: pragma
          value: no-cache
        - name: proxy-connection
          value: Keep-Alive
        - name: x-content-security-policy
          value: default-src 'self'; connect-src 'self'; font-src 'none'; img-src 'self'; media-src 'self'; object-src 'self'; plugin-types application/pdf audio/x-wav; referrer no-referrer; reflected-xss block; script-src 'self'; style-src 'self'
        - name: content-type
          value: application/it.elixforms.api.v1.2+json;charset=UTF-8
        - name: content-length
          value: "1937"
        - name: strict-transport-security
          value: max-age=63072000;includeSubDomains
        - name: content-security-policy
          value: "default-src https: data: 'unsafe-inline' 'unsafe-eval'"
        - name: x-frame-options
          value: SAMEORIGIN
        - name: x-xss-protection
          value: 1;mode=block
        - name: x-content-type-options
          value: nosniff
        - name: referrer-policy
          value: unsafe-url
      body:
        type: text
        data: |-
          {
              "value": {
                  "code": "OK",
                  "description": "OK",
                  "complete": true,
                  "globalStatus": "OK",
                  "serviceInformationList": {
                      "serviceInformation": [
                          {
                              "ITSystemName": "EF-CORE",
                              "complete": true,
                              "serviceVersion": "1.2.0",
                              "statusDetailList": {
                                  "statusDetail": [
                                      {
                                          "code": "OK",
                                          "description": "OK",
                                          "detailStatus": "OK"
                                      }
                                  ]
                              }
                          }
                      ]
                  },
                  "uuid": "ed9ac98f-854c-463d-8909-17122bf6ee5e",
                  "version": "3.9.2.17",
                  "requestDocument": {
                      "documentBase64": "PCFkb2N0eXBlIGh0bWw+DQo8aHRtbCBsYW5nPSJpdCI+DQoJPGhlYWQ+DQoJCTx0aXRsZT5QYWdpbmEgbm9uIHRyb3ZhdGE8L3RpdGxlPg0KCQk8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+DQoJCTxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsIGluaXRpYWwtc2NhbGU9MSwgc2hyaW5rLXRvLWZpdD1ubyI+DQoJCTxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iaHR0cHM6Ly9zdGFja3BhdGguYm9vdHN0cmFwY2RuLmNvbS9ib290c3RyYXAvNC4xLjMvY3NzL2Jvb3RzdHJhcC5taW4uY3NzIiBpbnRlZ3JpdHk9InNoYTM4NC1NQ3c5OC9TRm5HRThmSlQzR1h3RU9uZ3NWN1p0MjdOWEZvYW9BcG1ZbTgxaXVYb1BrRk9Kd0o4RVJka25MUE1PIiBjcm9zc29yaWdpbj0iYW5vbnltb3VzIj4NCgkJPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJodHRwczovL3VzZS5mb250YXdlc29tZS5jb20vcmVsZWFzZXMvdjUuMy4xL2Nzcy9hbGwuY3NzIiBpbnRlZ3JpdHk9InNoYTM4NC1tenJtRTVxb25salVyZW1Gc3FjMDFTQjQ2SnZST1M3YlpzM0lPMkVtZkZzZDE1dUh2SXQrWTh2RWY3TjdmV0FVIiBjcm9zc29yaWdpbj0iYW5vbnltb3VzIj4NCgk8L2hlYWQ+DQoJPGJvZHk+DQoJCTxkaXYgY2xhc3M9ImNvbnRhaW5lciI+DQoJCQk8ZGl2IGNsYXNzPSJyb3cgbm8tZ3V0dGVycyI+DQoJCQkJPGRpdiBjbGFzcz0iY29sLW1kLTggb2Zmc2V0LW1kLTIiPg0KCQkJCSAgCTxkaXYgY2xhc3M9Imp1bWJvdHJvbiB0ZXh0LWNlbnRlciI+DQoJCQkJICAJCTxoMT4NCgkJCQkgIAkJCTxzcGFuIGNsYXNzPSJkLWJsb2NrIGRpc3BsYXktMyI+PGkgY2xhc3M9ImZhcyBmYS1leGNsYW1hdGlvbi1jaXJjbGUiPjwvaT48L3NwYW4+DQoJCQkJICAJCQk8c3BhbiBjbGFzcz0iZC1ibG9jayBtdC0zIj5Pb29wcywgcGFnaW5hIG5vbiB0cm92YXRhPC9zcGFuPg0KCQkJCSAgCQkJPHNwYW4gY2xhc3M9ImQtYmxvY2siPjxzcGFuIGNsYXNzPSJ0ZXh0LW11dGVkIj5Pb29wcywgcGFnZSBub3QgZm91bmQ8L3NwYW4+PC9zcGFuPg0KCQkJCSAgCQk8L2gxPg0KCQkJCQk8L2Rpdj4NCgkJCQk8L2Rpdj4NCgkJCTwvZGl2Pg0KCQk8L2Rpdj4NCgk8L2JvZHk+DQo8L2h0bWw+DQo=",
                      "requestId": 5847,
                      "storageId": 0
                  },
                  "requestSize": 1
              }
          }
