{
  "$schema": "https://files-apicasystem-com.s3-eu-west-1.amazonaws.com/schemas/url-xi-schema-v1-0.json",
  "baseURL": "https://jsonplaceholder.typicode.com",
  "description": "Get user resources from FAKE REST API JSON Placeholder",
  "name": "Get User Resources",
  "variables": [
    {"key": "maxLaps","type": "number","usage": "input","value":100,"description": "Max laps for iterator"}
  ],
  "includes": [
    {
      "name": "Common Variables",
      "scope": "project",
      "type": "vars",
      "src": "common_vars.json"
    },
    {
      "name": "posts",
      "scope": "project",
      "type": "data",
      "src": "posts.csv",
      "options": {}
    }
  ],
  "steps": [
    {
      "name": "Get My User",
      "description": "Get my specific user from the user repository",
      "requests": [
        {
          "config": {
            "url": "/users"
          },
          "scripts": [
            {
              "name": "Get User Id",
              "options": {
                "builtin": [
                  "os"
                ]
              },
              "scope": "after",
              "script": "getUserId.js"
            }
          ]
        }
      ]
    },
    {
      "name": "Update posts",
      "iterator": {
        "value": "{{$data.posts}}",
        "maxLaps": "{{maxLaps}}"
      },
      "requests": [
        {
          "name": "Get_Posts_{{$lapIdx1}}",
          "condition": {
            "value": "{{$data.posts.id}}",
            "expression": "value.length > 0"
          } ,
          "config": {
          
            "url": "/posts/{{$data.posts.id}}",
            "method": "get"
          },
          "expectedStatus": [200,404],
          "extractors": [
            {
              "type": "jsonpath",
              "expression": "$.id",
              "variable": "id"
            }
          ]
        },
        {
          "name": "Put_Posts_{{$lapIdx1}}",
          "condition": {
            "value": "{{$status}}",
            "expression": "Number(value) === 200"
          },
        
          "config": {
            "url": "/posts/{{id}}",
            "method": "put",
            "data": {
              "userId": "{{userId}}",
              "title": "{{$data.posts.title}}",
              "body": "{{$data.posts.body}}"
            }
          }
        },
        {
          "name": "Post_Posts_{{$lapIdx1}}",
          "condition": {
            "value": "{{$status}}",
            "expression": "Number(value) === 404"
          },
          "config": {
            "url": "/posts",
            "method": "post",
            "data": {
              "id": "{{$data.posts.id}}",
              "userId": "{{userId}}",
              "title": "{{$data.posts.title}}",
              "body": "{{$data.posts.body}}"
            }
          }
        }
      ]
    }
  ]
}