{
	"info": {
		"_postman_id": "25be15f8-35be-4545-be6b-a3cf7acc1d63",
		"name": "FastGem API",
		"description": "FastGem API Overview:\n\nAvailable Objects:\n\n- Submissions (lead/contact/person)\n    \n- Appointments (work order)\n    \n- Tasks\n    \n- Reps\n    \n- Accounts (person accounts often used for appartment properties)\n    \n- Actions (immutable action log)\n    \n- Payments\n    \n- Invoices\n    \n- Promotions\n    \n- Packages\n    \n- Yards (inventory)\n    \n- Equipments (inventory definitions)\n    \n- Schedules\n    \n- Rep Adjustments (as repadjustments in the url)\n    \n- User Notifications (as usernotifications in the url)\n    \n- Plans (pay roll plans)\n    \n\nEach of these objects can be used in the \"object\" portion of the api call.\n\nFor example, to get an object with a particular ID\n\n/fast-api/v1/submissions/get/1\n\n/fast-api/v1/appointments/get/1\n\n/fast-api/v1/:OBJECT/get/:ID\n\nFiltering/Searching/Sorting:\n\n- Filter on any field using the querystring parameter filter\\[FIELD\\]=XYZ\n    \n- Search with querystring parameter filter\\[search\\]=SearchValue\n    \n- Sort with querystring parameter list\\[ordering\\]=FIELD&list\\[direction\\]=desc\n    \n\nDELETE:\n\n- To \"delete\" an object, you set the \"state\" of that object to 0. Objects with state = 1 will appear on the frontend.",
		"schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json",
		"_exporter_id": "31609"
	},
	"item": [
		{
			"name": "Authenticate",
			"request": {
				"method": "POST",
				"header": [
					{
						"key": "Content-Type",
						"value": "application/json",
						"name": "Content-Type",
						"type": "text"
					}
				],
				"body": {
					"mode": "raw",
					"raw": "{    \r\n    \"username\": \"{{username}}\",\r\n    \"password\": \"{{password}}\"\r\n}",
					"options": {
						"raw": {
							"language": "json"
						}
					}
				},
				"url": {
					"raw": "{{host}}/authenticate",
					"host": [
						"{{host}}"
					],
					"path": [
						"authenticate"
					]
				}
			},
			"response": []
		},
		{
			"name": "getMe",
			"event": [
				{
					"listen": "prerequest",
					"script": {
						"exec": [
							"var host = pm.variables.get(\"host\"); \r",
							"let pass = pm.variables.get(\"password\");\r",
							"let username = pm.variables.get(\"username\");\r",
							"pm.sendRequest({\r",
							"    url: host + \"/authenticate\",\r",
							"    method: 'POST',\r",
							"    body: {\r",
							"            mode: 'raw',\r",
							"            raw: JSON.stringify({'username': username, 'password': pass})\r",
							"        }\r",
							"    }, function (err, res) {\r",
							"        console.log(res.json().data.token);\r",
							"        pm.environment.set(\"token\", res.json().data.token);\r",
							"    }\r",
							");"
						],
						"type": "text/javascript"
					}
				}
			],
			"protocolProfileBehavior": {
				"disableBodyPruning": true
			},
			"request": {
				"method": "GET",
				"header": [
					{
						"key": "Authorization",
						"value": "Bearer {{token}}",
						"type": "text"
					}
				],
				"body": {
					"mode": "raw",
					"raw": ""
				},
				"url": {
					"raw": "{{host}}/me?XDEBUG_SESSION_START=PHPSTORM",
					"host": [
						"{{host}}"
					],
					"path": [
						"me"
					],
					"query": [
						{
							"key": "XDEBUG_SESSION_START",
							"value": "PHPSTORM"
						}
					]
				}
			},
			"response": []
		},
		{
			"name": "Describe WOs",
			"event": [
				{
					"listen": "prerequest",
					"script": {
						"exec": [
							"var host = pm.variables.get(\"host\"); \r",
							"let pass = pm.variables.get(\"password\");\r",
							"let username = pm.variables.get(\"username\");\r",
							"pm.sendRequest({\r",
							"    url: host + \"/authenticate\",\r",
							"    method: 'POST',\r",
							"    body: {\r",
							"            mode: 'raw',\r",
							"            raw: JSON.stringify({'username': username, 'password': pass})\r",
							"        }\r",
							"    }, function (err, res) {\r",
							"        console.log(res.json().data.token);\r",
							"        pm.environment.set(\"token\", res.json().data.token);\r",
							"    }\r",
							");"
						],
						"type": "text/javascript",
						"packages": {}
					}
				}
			],
			"protocolProfileBehavior": {
				"disableBodyPruning": true
			},
			"request": {
				"method": "GET",
				"header": [
					{
						"key": "Authorization",
						"value": "Bearer {{token}}",
						"type": "text"
					}
				],
				"body": {
					"mode": "raw",
					"raw": ""
				},
				"url": {
					"raw": "{{host}}/appointments/describe",
					"host": [
						"{{host}}"
					],
					"path": [
						"appointments",
						"describe"
					]
				}
			},
			"response": []
		},
		{
			"name": "Describe WOs Field",
			"event": [
				{
					"listen": "prerequest",
					"script": {
						"exec": [
							"var host = pm.variables.get(\"host\"); \r",
							"let pass = pm.variables.get(\"password\");\r",
							"let username = pm.variables.get(\"username\");\r",
							"pm.sendRequest({\r",
							"    url: host + \"/authenticate\",\r",
							"    method: 'POST',\r",
							"    body: {\r",
							"            mode: 'raw',\r",
							"            raw: JSON.stringify({'username': username, 'password': pass})\r",
							"        }\r",
							"    }, function (err, res) {\r",
							"        console.log(res.json().data.token);\r",
							"        pm.environment.set(\"token\", res.json().data.token);\r",
							"    }\r",
							");"
						],
						"type": "text/javascript",
						"packages": {}
					}
				}
			],
			"protocolProfileBehavior": {
				"disableBodyPruning": true
			},
			"request": {
				"method": "GET",
				"header": [
					{
						"key": "Authorization",
						"value": "Bearer {{token}}",
						"type": "text"
					}
				],
				"body": {
					"mode": "raw",
					"raw": ""
				},
				"url": {
					"raw": "{{host}}/appointments/describe/status",
					"host": [
						"{{host}}"
					],
					"path": [
						"appointments",
						"describe",
						"status"
					]
				}
			},
			"response": []
		},
		{
			"name": "Get WO with ID",
			"event": [
				{
					"listen": "prerequest",
					"script": {
						"exec": [
							"var host = pm.variables.get(\"host\"); \r",
							"let pass = pm.variables.get(\"password\");\r",
							"let username = pm.variables.get(\"username\");\r",
							"pm.sendRequest({\r",
							"    url: host + \"/authenticate\",\r",
							"    method: 'POST',\r",
							"    body: {\r",
							"            mode: 'raw',\r",
							"            raw: JSON.stringify({'username': username, 'password': pass})\r",
							"        }\r",
							"    }, function (err, res) {\r",
							"        console.log(res.json().data.token);\r",
							"        pm.environment.set(\"token\", res.json().data.token);\r",
							"    }\r",
							");"
						],
						"type": "text/javascript",
						"packages": {}
					}
				}
			],
			"request": {
				"method": "GET",
				"header": [
					{
						"key": "Authorization",
						"value": "Bearer {{token}}",
						"type": "text"
					}
				],
				"url": {
					"raw": "{{host}}/appointments/get/1",
					"host": [
						"{{host}}"
					],
					"path": [
						"appointments",
						"get",
						"1"
					]
				}
			},
			"response": []
		},
		{
			"name": "Get WOs",
			"event": [
				{
					"listen": "prerequest",
					"script": {
						"exec": [
							"var host = pm.variables.get(\"host\"); \r",
							"let pass = pm.variables.get(\"password\");\r",
							"let username = pm.variables.get(\"username\");\r",
							"pm.sendRequest({\r",
							"    url: host + \"/authenticate\",\r",
							"    method: 'POST',\r",
							"    body: {\r",
							"            mode: 'raw',\r",
							"            raw: JSON.stringify({'username': username, 'password': pass})\r",
							"        }\r",
							"    }, function (err, res) {\r",
							"        console.log(res.json().data.token);\r",
							"        pm.environment.set(\"token\", res.json().data.token);\r",
							"    }\r",
							");"
						],
						"type": "text/javascript",
						"packages": {}
					}
				}
			],
			"request": {
				"method": "GET",
				"header": [
					{
						"key": "Authorization",
						"value": "Bearer {{token}}",
						"type": "text"
					}
				],
				"url": {
					"raw": "{{host}}/appointments?filter[state]=1",
					"host": [
						"{{host}}"
					],
					"path": [
						"appointments"
					],
					"query": [
						{
							"key": "filter[state]",
							"value": "1"
						}
					]
				}
			},
			"response": []
		},
		{
			"name": "Get WOs Paging/Sorting/Direction",
			"event": [
				{
					"listen": "prerequest",
					"script": {
						"exec": [
							"var host = pm.variables.get(\"host\"); \r",
							"let pass = pm.variables.get(\"password\");\r",
							"let username = pm.variables.get(\"username\");\r",
							"pm.sendRequest({\r",
							"    url: host + \"/authenticate\",\r",
							"    method: 'POST',\r",
							"    body: {\r",
							"            mode: 'raw',\r",
							"            raw: JSON.stringify({'username': username, 'password': pass})\r",
							"        }\r",
							"    }, function (err, res) {\r",
							"        console.log(res.json().data.token);\r",
							"        pm.environment.set(\"token\", res.json().data.token);\r",
							"    }\r",
							");"
						],
						"type": "text/javascript",
						"packages": {}
					}
				}
			],
			"request": {
				"method": "GET",
				"header": [
					{
						"key": "Authorization",
						"value": "Bearer {{token}}",
						"type": "text"
					}
				],
				"url": {
					"raw": "{{host}}/appointments?list[limitstart]=0&list[ordering]=modified&list[direction]=desc&filter[state]=1",
					"host": [
						"{{host}}"
					],
					"path": [
						"appointments"
					],
					"query": [
						{
							"key": "list[limitstart]",
							"value": "0"
						},
						{
							"key": "list[ordering]",
							"value": "modified"
						},
						{
							"key": "list[direction]",
							"value": "desc"
						},
						{
							"key": "filter[state]",
							"value": "1"
						}
					]
				}
			},
			"response": []
		},
		{
			"name": "Get WOs filtered",
			"event": [
				{
					"listen": "prerequest",
					"script": {
						"exec": [
							"var host = pm.variables.get(\"host\"); \r",
							"let pass = pm.variables.get(\"password\");\r",
							"let username = pm.variables.get(\"username\");\r",
							"pm.sendRequest({\r",
							"    url: host + \"/authenticate\",\r",
							"    method: 'POST',\r",
							"    body: {\r",
							"            mode: 'raw',\r",
							"            raw: JSON.stringify({'username': username, 'password': pass})\r",
							"        }\r",
							"    }, function (err, res) {\r",
							"        console.log(res.json().data.token);\r",
							"        pm.environment.set(\"token\", res.json().data.token);\r",
							"    }\r",
							");"
						],
						"type": "text/javascript",
						"packages": {}
					}
				}
			],
			"request": {
				"method": "GET",
				"header": [
					{
						"key": "Authorization",
						"value": "Bearer {{token}}",
						"type": "text"
					}
				],
				"url": {
					"raw": "{{host}}/appointments?filter[state]=1&filter[status]=CHARGEBACK&list[limitstart]=0&list[ordering]=modified&list[direction]=desc&filter[state]=1",
					"host": [
						"{{host}}"
					],
					"path": [
						"appointments"
					],
					"query": [
						{
							"key": "filter[state]",
							"value": "1"
						},
						{
							"key": "filter[status]",
							"value": "CHARGEBACK"
						},
						{
							"key": "list[limitstart]",
							"value": "0"
						},
						{
							"key": "list[ordering]",
							"value": "modified"
						},
						{
							"key": "list[direction]",
							"value": "desc"
						},
						{
							"key": "filter[state]",
							"value": "1"
						}
					]
				}
			},
			"response": []
		},
		{
			"name": "Create/Update WO",
			"event": [
				{
					"listen": "prerequest",
					"script": {
						"exec": [
							"var host = pm.variables.get(\"host\"); \r",
							"let pass = pm.variables.get(\"password\");\r",
							"let username = pm.variables.get(\"username\");\r",
							"pm.sendRequest({\r",
							"    url: host + \"/authenticate\",\r",
							"    method: 'POST',\r",
							"    body: {\r",
							"            mode: 'raw',\r",
							"            raw: JSON.stringify({'username': username, 'password': pass})\r",
							"        }\r",
							"    }, function (err, res) {\r",
							"        console.log(res.json().data.token);\r",
							"        pm.environment.set(\"token\", res.json().data.token);\r",
							"    }\r",
							");"
						],
						"type": "text/javascript"
					}
				}
			],
			"request": {
				"method": "POST",
				"header": [
					{
						"key": "Content-Type",
						"value": "application/json",
						"name": "Content-Type",
						"type": "text"
					},
					{
						"key": "Authorization",
						"value": "Bearer {{token}}",
						"type": "text"
					}
				],
				"body": {
					"mode": "raw",
					"raw": "{\r\n    \"id\": 1800, \r\n    \"install_date\": \"2022-10-01\"\r\n}"
				},
				"url": {
					"raw": "{{host}}/appointments/set",
					"host": [
						"{{host}}"
					],
					"path": [
						"appointments",
						"set"
					]
				}
			},
			"response": []
		},
		{
			"name": "Delete WO",
			"event": [
				{
					"listen": "prerequest",
					"script": {
						"exec": [
							"var host = pm.variables.get(\"host\"); \r",
							"let pass = pm.variables.get(\"password\");\r",
							"let username = pm.variables.get(\"username\");\r",
							"pm.sendRequest({\r",
							"    url: host + \"/authenticate\",\r",
							"    method: 'POST',\r",
							"    body: {\r",
							"            mode: 'raw',\r",
							"            raw: JSON.stringify({'username': username, 'password': pass})\r",
							"        }\r",
							"    }, function (err, res) {\r",
							"        console.log(res.json().data.token);\r",
							"        pm.environment.set(\"token\", res.json().data.token);\r",
							"    }\r",
							");"
						],
						"type": "text/javascript",
						"packages": {}
					}
				}
			],
			"request": {
				"method": "POST",
				"header": [
					{
						"key": "Content-Type",
						"value": "application/json",
						"name": "Content-Type",
						"type": "text"
					},
					{
						"key": "Authorization",
						"value": "Bearer {{token}}",
						"type": "text"
					}
				],
				"body": {
					"mode": "raw",
					"raw": "{\r\n    \"id\": 1800, \r\n    \"state\": 0\r\n}"
				},
				"url": {
					"raw": "{{host}}/appointments/set",
					"host": [
						"{{host}}"
					],
					"path": [
						"appointments",
						"set"
					]
				}
			},
			"response": []
		}
	],
	"event": [
		{
			"listen": "prerequest",
			"script": {
				"type": "text/javascript",
				"packages": {},
				"exec": [
					""
				]
			}
		},
		{
			"listen": "test",
			"script": {
				"type": "text/javascript",
				"packages": {},
				"exec": [
					""
				]
			}
		}
	],
	"variable": [
		{
			"key": "host",
			"value": "https://demo.fastgem.net",
			"type": "string"
		},
		{
			"key": "token",
			"value": "",
			"type": "string"
		},
		{
			"key": "username",
			"value": "",
			"type": "string"
		},
		{
			"key": "password",
			"value": "",
			"type": "string"
		}
	]
}