{
    "info":  {
                 "_postman_id":  "a7f3c0e1-2b4d-4e6f-8a90-1c2d3e4f5a6b",
                 "name":  "HRM API - Tich hop lay du lieu nhan su",
                 "description":  "API POST /api/hrm lay du lieu HRM (employees, workplaces, positions), xac thuc bang checksum SHA-256. Dien bien baseUrl, partnerCode, secretKey o tab Variables roi Send.",
                 "schema":  "https://schema.getpostman.com/json/collection/v2.1.0/collection.json"
             },
    "item":  [
                 {
                     "name":  "Nhan su (employees)",
                     "event":  [
                                   {
                                       "listen":  "prerequest",
                                       "script":  {
                                                      "type":  "text/javascript",
                                                      "exec":  [
                                                                   "// Tu dong sinh requestId, requestTime va tinh checksum truoc khi gui.",
                                                                   "var partnerCode = pm.variables.get(\"partnerCode\");",
                                                                   "var secretKey   = pm.variables.get(\"secretKey\");",
                                                                   "",
                                                                   "// ---- Cac truong cua request nay ----",
                                                                   "var resource = \"employees\";",
                                                                   "var page     = \"1\";",
                                                                   "var pageSize = \"100\";",
                                                                   "var keyword  = \"\";",
                                                                   "",
                                                                   "function pad(n) { return (n \u003c 10 ? \"0\" : \"\") + n; }",
                                                                   "var now = new Date();",
                                                                   "var requestTime = \"\" + now.getFullYear() + pad(now.getMonth() + 1) + pad(now.getDate()) + pad(now.getHours()) + pad(now.getMinutes()) + pad(now.getSeconds());",
                                                                   "var requestId = \"REQ-\" + requestTime + \"-\" + Math.floor(Math.random() * 100000);",
                                                                   "",
                                                                   "// checksum = SHA256( cac truong noi bang \"|\", secretKey o cuoi )",
                                                                   "var raw = [partnerCode, requestId, requestTime, resource, page, pageSize, keyword, secretKey].join(\"|\");",
                                                                   "var checksum = CryptoJS.SHA256(raw).toString(CryptoJS.enc.Hex);",
                                                                   "",
                                                                   "pm.variables.set(\"requestId\", requestId);",
                                                                   "pm.variables.set(\"requestTime\", requestTime);",
                                                                   "pm.variables.set(\"resource\", resource);",
                                                                   "pm.variables.set(\"page\", page);",
                                                                   "pm.variables.set(\"pageSize\", pageSize);",
                                                                   "pm.variables.set(\"keyword\", keyword);",
                                                                   "pm.variables.set(\"checksum\", checksum);"
                                                               ]
                                                  }
                                   },
                                   {
                                       "listen":  "test",
                                       "script":  {
                                                      "type":  "text/javascript",
                                                      "exec":  [
                                                                   "var res = pm.response.json();",
                                                                   "pm.test(\"HTTP 200\", function () { pm.response.to.have.status(200); });",
                                                                   "pm.test(\"code = 00 (thanh cong)\", function () { pm.expect(res.code).to.eql(\"00\"); });",
                                                                   "",
                                                                   "// Xac thuc checksum cua phan hoi",
                                                                   "var secretKey = pm.variables.get(\"secretKey\");",
                                                                   "var raw = [res.code, res.message, res.requestId, res.resource, String(res.page), String(res.pageSize), String(res.totalItems), secretKey].join(\"|\");",
                                                                   "var expected = CryptoJS.SHA256(raw).toString(CryptoJS.enc.Hex);",
                                                                   "pm.test(\"Checksum phan hoi hop le\", function () { pm.expect(res.checksum).to.eql(expected); });"
                                                               ]
                                                  }
                                   }
                               ],
                     "request":  {
                                     "method":  "POST",
                                     "header":  [
                                                    {
                                                        "key":  "Content-Type",
                                                        "value":  "application/json"
                                                    }
                                                ],
                                     "body":  {
                                                  "mode":  "raw",
                                                  "raw":  "{\n  \"partnerCode\": \"{{partnerCode}}\",\n  \"requestId\": \"{{requestId}}\",\n  \"requestTime\": \"{{requestTime}}\",\n  \"resource\": \"{{resource}}\",\n  \"page\": {{page}},\n  \"pageSize\": {{pageSize}},\n  \"keyword\": \"{{keyword}}\",\n  \"checksum\": \"{{checksum}}\"\n}",
                                                  "options":  {
                                                                  "raw":  {
                                                                              "language":  "json"
                                                                          }
                                                              }
                                              },
                                     "url":  {
                                                 "raw":  "{{baseUrl}}/api/hrm",
                                                 "host":  [
                                                              "{{baseUrl}}"
                                                          ],
                                                 "path":  [
                                                              "api",
                                                              "hrm"
                                                          ]
                                             },
                                     "description":  "Lay danh sach nhan su, phan trang. checksum tinh tu dong trong Pre-request Script."
                                 }
                 },
                 {
                     "name":  "Don vi (workplaces)",
                     "event":  [
                                   {
                                       "listen":  "prerequest",
                                       "script":  {
                                                      "type":  "text/javascript",
                                                      "exec":  [
                                                                   "// Tu dong sinh requestId, requestTime va tinh checksum truoc khi gui.",
                                                                   "var partnerCode = pm.variables.get(\"partnerCode\");",
                                                                   "var secretKey   = pm.variables.get(\"secretKey\");",
                                                                   "",
                                                                   "// ---- Cac truong cua request nay ----",
                                                                   "var resource = \"workplaces\";",
                                                                   "var page     = \"1\";",
                                                                   "var pageSize = \"100\";",
                                                                   "var keyword  = \"\";",
                                                                   "",
                                                                   "function pad(n) { return (n \u003c 10 ? \"0\" : \"\") + n; }",
                                                                   "var now = new Date();",
                                                                   "var requestTime = \"\" + now.getFullYear() + pad(now.getMonth() + 1) + pad(now.getDate()) + pad(now.getHours()) + pad(now.getMinutes()) + pad(now.getSeconds());",
                                                                   "var requestId = \"REQ-\" + requestTime + \"-\" + Math.floor(Math.random() * 100000);",
                                                                   "",
                                                                   "// checksum = SHA256( cac truong noi bang \"|\", secretKey o cuoi )",
                                                                   "var raw = [partnerCode, requestId, requestTime, resource, page, pageSize, keyword, secretKey].join(\"|\");",
                                                                   "var checksum = CryptoJS.SHA256(raw).toString(CryptoJS.enc.Hex);",
                                                                   "",
                                                                   "pm.variables.set(\"requestId\", requestId);",
                                                                   "pm.variables.set(\"requestTime\", requestTime);",
                                                                   "pm.variables.set(\"resource\", resource);",
                                                                   "pm.variables.set(\"page\", page);",
                                                                   "pm.variables.set(\"pageSize\", pageSize);",
                                                                   "pm.variables.set(\"keyword\", keyword);",
                                                                   "pm.variables.set(\"checksum\", checksum);"
                                                               ]
                                                  }
                                   },
                                   {
                                       "listen":  "test",
                                       "script":  {
                                                      "type":  "text/javascript",
                                                      "exec":  [
                                                                   "var res = pm.response.json();",
                                                                   "pm.test(\"HTTP 200\", function () { pm.response.to.have.status(200); });",
                                                                   "pm.test(\"code = 00 (thanh cong)\", function () { pm.expect(res.code).to.eql(\"00\"); });",
                                                                   "",
                                                                   "// Xac thuc checksum cua phan hoi",
                                                                   "var secretKey = pm.variables.get(\"secretKey\");",
                                                                   "var raw = [res.code, res.message, res.requestId, res.resource, String(res.page), String(res.pageSize), String(res.totalItems), secretKey].join(\"|\");",
                                                                   "var expected = CryptoJS.SHA256(raw).toString(CryptoJS.enc.Hex);",
                                                                   "pm.test(\"Checksum phan hoi hop le\", function () { pm.expect(res.checksum).to.eql(expected); });"
                                                               ]
                                                  }
                                   }
                               ],
                     "request":  {
                                     "method":  "POST",
                                     "header":  [
                                                    {
                                                        "key":  "Content-Type",
                                                        "value":  "application/json"
                                                    }
                                                ],
                                     "body":  {
                                                  "mode":  "raw",
                                                  "raw":  "{\n  \"partnerCode\": \"{{partnerCode}}\",\n  \"requestId\": \"{{requestId}}\",\n  \"requestTime\": \"{{requestTime}}\",\n  \"resource\": \"{{resource}}\",\n  \"page\": {{page}},\n  \"pageSize\": {{pageSize}},\n  \"keyword\": \"{{keyword}}\",\n  \"checksum\": \"{{checksum}}\"\n}",
                                                  "options":  {
                                                                  "raw":  {
                                                                              "language":  "json"
                                                                          }
                                                              }
                                              },
                                     "url":  {
                                                 "raw":  "{{baseUrl}}/api/hrm",
                                                 "host":  [
                                                              "{{baseUrl}}"
                                                          ],
                                                 "path":  [
                                                              "api",
                                                              "hrm"
                                                          ]
                                             },
                                     "description":  "Lay danh sach don vi (cay to chuc)."
                                 }
                 },
                 {
                     "name":  "Chuc danh (positions)",
                     "event":  [
                                   {
                                       "listen":  "prerequest",
                                       "script":  {
                                                      "type":  "text/javascript",
                                                      "exec":  [
                                                                   "// Tu dong sinh requestId, requestTime va tinh checksum truoc khi gui.",
                                                                   "var partnerCode = pm.variables.get(\"partnerCode\");",
                                                                   "var secretKey   = pm.variables.get(\"secretKey\");",
                                                                   "",
                                                                   "// ---- Cac truong cua request nay ----",
                                                                   "var resource = \"positions\";",
                                                                   "var page     = \"1\";",
                                                                   "var pageSize = \"100\";",
                                                                   "var keyword  = \"\";",
                                                                   "",
                                                                   "function pad(n) { return (n \u003c 10 ? \"0\" : \"\") + n; }",
                                                                   "var now = new Date();",
                                                                   "var requestTime = \"\" + now.getFullYear() + pad(now.getMonth() + 1) + pad(now.getDate()) + pad(now.getHours()) + pad(now.getMinutes()) + pad(now.getSeconds());",
                                                                   "var requestId = \"REQ-\" + requestTime + \"-\" + Math.floor(Math.random() * 100000);",
                                                                   "",
                                                                   "// checksum = SHA256( cac truong noi bang \"|\", secretKey o cuoi )",
                                                                   "var raw = [partnerCode, requestId, requestTime, resource, page, pageSize, keyword, secretKey].join(\"|\");",
                                                                   "var checksum = CryptoJS.SHA256(raw).toString(CryptoJS.enc.Hex);",
                                                                   "",
                                                                   "pm.variables.set(\"requestId\", requestId);",
                                                                   "pm.variables.set(\"requestTime\", requestTime);",
                                                                   "pm.variables.set(\"resource\", resource);",
                                                                   "pm.variables.set(\"page\", page);",
                                                                   "pm.variables.set(\"pageSize\", pageSize);",
                                                                   "pm.variables.set(\"keyword\", keyword);",
                                                                   "pm.variables.set(\"checksum\", checksum);"
                                                               ]
                                                  }
                                   },
                                   {
                                       "listen":  "test",
                                       "script":  {
                                                      "type":  "text/javascript",
                                                      "exec":  [
                                                                   "var res = pm.response.json();",
                                                                   "pm.test(\"HTTP 200\", function () { pm.response.to.have.status(200); });",
                                                                   "pm.test(\"code = 00 (thanh cong)\", function () { pm.expect(res.code).to.eql(\"00\"); });",
                                                                   "",
                                                                   "// Xac thuc checksum cua phan hoi",
                                                                   "var secretKey = pm.variables.get(\"secretKey\");",
                                                                   "var raw = [res.code, res.message, res.requestId, res.resource, String(res.page), String(res.pageSize), String(res.totalItems), secretKey].join(\"|\");",
                                                                   "var expected = CryptoJS.SHA256(raw).toString(CryptoJS.enc.Hex);",
                                                                   "pm.test(\"Checksum phan hoi hop le\", function () { pm.expect(res.checksum).to.eql(expected); });"
                                                               ]
                                                  }
                                   }
                               ],
                     "request":  {
                                     "method":  "POST",
                                     "header":  [
                                                    {
                                                        "key":  "Content-Type",
                                                        "value":  "application/json"
                                                    }
                                                ],
                                     "body":  {
                                                  "mode":  "raw",
                                                  "raw":  "{\n  \"partnerCode\": \"{{partnerCode}}\",\n  \"requestId\": \"{{requestId}}\",\n  \"requestTime\": \"{{requestTime}}\",\n  \"resource\": \"{{resource}}\",\n  \"page\": {{page}},\n  \"pageSize\": {{pageSize}},\n  \"keyword\": \"{{keyword}}\",\n  \"checksum\": \"{{checksum}}\"\n}",
                                                  "options":  {
                                                                  "raw":  {
                                                                              "language":  "json"
                                                                          }
                                                              }
                                              },
                                     "url":  {
                                                 "raw":  "{{baseUrl}}/api/hrm",
                                                 "host":  [
                                                              "{{baseUrl}}"
                                                          ],
                                                 "path":  [
                                                              "api",
                                                              "hrm"
                                                          ]
                                             },
                                     "description":  "Lay danh sach chuc danh."
                                 }
                 },
                 {
                     "name":  "Nhan su - loc theo tu khoa",
                     "event":  [
                                   {
                                       "listen":  "prerequest",
                                       "script":  {
                                                      "type":  "text/javascript",
                                                      "exec":  [
                                                                   "// Tu dong sinh requestId, requestTime va tinh checksum truoc khi gui.",
                                                                   "var partnerCode = pm.variables.get(\"partnerCode\");",
                                                                   "var secretKey   = pm.variables.get(\"secretKey\");",
                                                                   "",
                                                                   "// ---- Cac truong cua request nay ----",
                                                                   "var resource = \"employees\";",
                                                                   "var page     = \"1\";",
                                                                   "var pageSize = \"20\";",
                                                                   "var keyword  = \"nguyen\";",
                                                                   "",
                                                                   "function pad(n) { return (n \u003c 10 ? \"0\" : \"\") + n; }",
                                                                   "var now = new Date();",
                                                                   "var requestTime = \"\" + now.getFullYear() + pad(now.getMonth() + 1) + pad(now.getDate()) + pad(now.getHours()) + pad(now.getMinutes()) + pad(now.getSeconds());",
                                                                   "var requestId = \"REQ-\" + requestTime + \"-\" + Math.floor(Math.random() * 100000);",
                                                                   "",
                                                                   "// checksum = SHA256( cac truong noi bang \"|\", secretKey o cuoi )",
                                                                   "var raw = [partnerCode, requestId, requestTime, resource, page, pageSize, keyword, secretKey].join(\"|\");",
                                                                   "var checksum = CryptoJS.SHA256(raw).toString(CryptoJS.enc.Hex);",
                                                                   "",
                                                                   "pm.variables.set(\"requestId\", requestId);",
                                                                   "pm.variables.set(\"requestTime\", requestTime);",
                                                                   "pm.variables.set(\"resource\", resource);",
                                                                   "pm.variables.set(\"page\", page);",
                                                                   "pm.variables.set(\"pageSize\", pageSize);",
                                                                   "pm.variables.set(\"keyword\", keyword);",
                                                                   "pm.variables.set(\"checksum\", checksum);"
                                                               ]
                                                  }
                                   },
                                   {
                                       "listen":  "test",
                                       "script":  {
                                                      "type":  "text/javascript",
                                                      "exec":  [
                                                                   "var res = pm.response.json();",
                                                                   "pm.test(\"HTTP 200\", function () { pm.response.to.have.status(200); });",
                                                                   "pm.test(\"code = 00 (thanh cong)\", function () { pm.expect(res.code).to.eql(\"00\"); });",
                                                                   "",
                                                                   "// Xac thuc checksum cua phan hoi",
                                                                   "var secretKey = pm.variables.get(\"secretKey\");",
                                                                   "var raw = [res.code, res.message, res.requestId, res.resource, String(res.page), String(res.pageSize), String(res.totalItems), secretKey].join(\"|\");",
                                                                   "var expected = CryptoJS.SHA256(raw).toString(CryptoJS.enc.Hex);",
                                                                   "pm.test(\"Checksum phan hoi hop le\", function () { pm.expect(res.checksum).to.eql(expected); });"
                                                               ]
                                                  }
                                   }
                               ],
                     "request":  {
                                     "method":  "POST",
                                     "header":  [
                                                    {
                                                        "key":  "Content-Type",
                                                        "value":  "application/json"
                                                    }
                                                ],
                                     "body":  {
                                                  "mode":  "raw",
                                                  "raw":  "{\n  \"partnerCode\": \"{{partnerCode}}\",\n  \"requestId\": \"{{requestId}}\",\n  \"requestTime\": \"{{requestTime}}\",\n  \"resource\": \"{{resource}}\",\n  \"page\": {{page}},\n  \"pageSize\": {{pageSize}},\n  \"keyword\": \"{{keyword}}\",\n  \"checksum\": \"{{checksum}}\"\n}",
                                                  "options":  {
                                                                  "raw":  {
                                                                              "language":  "json"
                                                                          }
                                                              }
                                              },
                                     "url":  {
                                                 "raw":  "{{baseUrl}}/api/hrm",
                                                 "host":  [
                                                              "{{baseUrl}}"
                                                          ],
                                                 "path":  [
                                                              "api",
                                                              "hrm"
                                                          ]
                                             },
                                     "description":  "Vi du loc: keyword = \"nguyen\"."
                                 }
                 },
                 {
                     "name":  "Vi du loi - checksum sai",
                     "event":  [
                                   {
                                       "listen":  "prerequest",
                                       "script":  {
                                                      "type":  "text/javascript",
                                                      "exec":  [
                                                                   "function pad(n) { return (n \u003c 10 ? \"0\" : \"\") + n; }",
                                                                   "var now = new Date();",
                                                                   "var requestTime = \"\" + now.getFullYear() + pad(now.getMonth() + 1) + pad(now.getDate()) + pad(now.getHours()) + pad(now.getMinutes()) + pad(now.getSeconds());",
                                                                   "pm.variables.set(\"requestId\", \"REQ-\" + requestTime + \"-ERR\");",
                                                                   "pm.variables.set(\"requestTime\", requestTime);",
                                                                   "pm.variables.set(\"resource\", \"employees\");",
                                                                   "pm.variables.set(\"page\", \"1\");",
                                                                   "pm.variables.set(\"pageSize\", \"5\");",
                                                                   "pm.variables.set(\"keyword\", \"\");",
                                                                   "pm.variables.set(\"checksum\", \"checksum_khong_hop_le\");"
                                                               ]
                                                  }
                                   },
                                   {
                                       "listen":  "test",
                                       "script":  {
                                                      "type":  "text/javascript",
                                                      "exec":  [
                                                                   "var res = pm.response.json();",
                                                                   "pm.test(\"code = 01 (checksum sai)\", function () { pm.expect(res.code).to.eql(\"01\"); });"
                                                               ]
                                                  }
                                   }
                               ],
                     "request":  {
                                     "method":  "POST",
                                     "header":  [
                                                    {
                                                        "key":  "Content-Type",
                                                        "value":  "application/json"
                                                    }
                                                ],
                                     "body":  {
                                                  "mode":  "raw",
                                                  "raw":  "{\n  \"partnerCode\": \"{{partnerCode}}\",\n  \"requestId\": \"{{requestId}}\",\n  \"requestTime\": \"{{requestTime}}\",\n  \"resource\": \"{{resource}}\",\n  \"page\": {{page}},\n  \"pageSize\": {{pageSize}},\n  \"keyword\": \"{{keyword}}\",\n  \"checksum\": \"{{checksum}}\"\n}",
                                                  "options":  {
                                                                  "raw":  {
                                                                              "language":  "json"
                                                                          }
                                                              }
                                              },
                                     "url":  {
                                                 "raw":  "{{baseUrl}}/api/hrm",
                                                 "host":  [
                                                              "{{baseUrl}}"
                                                          ],
                                                 "path":  [
                                                              "api",
                                                              "hrm"
                                                          ]
                                             },
                                     "description":  "Gui checksum sai de xem phan hoi loi (code 01)."
                                 }
                 }
             ],
    "variable":  [
                     {
                         "key":  "baseUrl",
                         "value":  "http://pmncpt.cenit.vn",
                         "type":  "string"
                     },
                     {
                         "key":  "partnerCode",
                         "value":  "CRM",
                         "type":  "string"
                     },
                     {
                         "key":  "secretKey",
                         "value":  "DAN-KHOA-BI-MAT-VAO-DAY",
                         "type":  "string"
                     }
                 ]
}