Compare commits
1882 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| d990d753ce | |||
| 425bab096d | |||
| 338fc88095 | |||
| 0a724cc49a | |||
| a2efcf1ca9 | |||
| c9d73e85e1 | |||
| a956676745 | |||
| 5800d08202 | |||
| b8958bad72 | |||
| 0508d7558e | |||
| 98c3192a13 | |||
| b886e11670 | |||
| 92bb1df82e | |||
| 1c4549dd8e | |||
| 83e61ec8cd | |||
| 7ea549df4a | |||
| af1c55cd7e | |||
| 7822c0bc3e | |||
| 2b7ed1f7fa | |||
| 45ddaf1b72 | |||
| 7595c922fa | |||
| 4d4513d936 | |||
| e378c99923 | |||
| 078c870970 | |||
| 4a91d37423 | |||
| 96befb2aef | |||
| 925452e106 | |||
| 1678330f0c | |||
| 58cf3fc2ea | |||
| 13ce17ffc6 | |||
| 70e020ee0c | |||
| c6a167ef40 | |||
| 420ba5f261 | |||
| 7aa1f3ae1d | |||
| 556d638136 | |||
| c4aa10baf8 | |||
| 86f647e714 | |||
| 64f5d40fd9 | |||
| 1a0869c2ca | |||
| 1fb32ee461 | |||
| 68a863e63e | |||
| a1e62ccd46 | |||
| dae66c0fa4 | |||
| 1d6b21e1c7 | |||
| 455be12058 | |||
| 2ebb3ecb96 | |||
| b29056dddf | |||
| 3ed09f304c | |||
| 4875283ed1 | |||
| 261231c09e | |||
| 180dad6ee6 | |||
| d7121ad82f | |||
| f121c61524 | |||
| 93bf91869b | |||
| 2ed32612b9 | |||
| 314bcbe208 | |||
| 6290e34623 | |||
| 5e5521a128 | |||
| 1e8bed86d3 | |||
| 8bc7d50e35 | |||
| aa420e5006 | |||
| 4babaa85fc | |||
| 378d9e008e | |||
| 340fabe4f6 | |||
| 29331b8b06 | |||
| 6fbcaa0959 | |||
| 52e10205c5 | |||
| f419ae3f4a | |||
| 84a6b8e012 | |||
| f234aee691 | |||
| 623d516595 | |||
| 156eaf53d5 | |||
| 678a7c1437 | |||
| ce2a760093 | |||
| 34b02d8534 | |||
| 42e0e691dd | |||
| ccfda99060 | |||
| 57f02bdc57 | |||
| 7056656eab | |||
| 2d899fc772 | |||
| 80ee0835aa | |||
| 7b7e6c7971 | |||
| 025fb30335 | |||
| fcace4a192 | |||
| 619e1c70ea | |||
| 7a95bdfba6 | |||
| 89962de161 | |||
| d9328bd0ce | |||
| 81306df06a | |||
| 75abe9eb3e | |||
| 1f26bf1125 | |||
| 14b9c06d77 | |||
| 4f3d23d1ef | |||
| cada43f34d | |||
| 9188f89a2a | |||
| 1cc7ef0543 | |||
| a86ffc29d1 | |||
| 9ed5540c49 | |||
| 3a7e00ccc3 | |||
| f82cdabccd | |||
| b9c9cc0046 | |||
| 27ece84d52 | |||
| 1299186fb8 | |||
| d837e4845b | |||
| 39be0c5590 | |||
| d2bb10e96d | |||
| f139a616c7 | |||
| d5099d973b | |||
| 82b18a3207 | |||
| 10aee6bb5f | |||
| c1b11ab9bf | |||
| c226a061f5 | |||
| c0be738aef | |||
| e6987ec148 | |||
| 973fa7a58b | |||
| b6195ba3ae | |||
| d3bd213f29 | |||
| 9502dd8bd7 | |||
| e81ccf4280 | |||
| 9730f2c0f3 | |||
| 1de34c0656 | |||
| bdce6b1387 | |||
| ce0c2ecd8f | |||
| 40f07e3d72 | |||
| 3c3ccae7c9 | |||
| be211f6f86 | |||
| 9789ca42f8 | |||
| da26bc5165 | |||
| 0b67626961 | |||
| 546c8ce7d5 | |||
| c76a888d11 | |||
| 38c495a4ac | |||
| d0ce5e0c57 | |||
| 7a0e5b57db | |||
| c31f1d2cce | |||
| ea98ee07e5 | |||
| a38bfada57 | |||
| e5ff19aec4 | |||
| 504f63066f | |||
| 41b327529b | |||
| e84279c402 | |||
| 65e6519f97 | |||
| dbbb3beacc | |||
| e8a73a8de6 | |||
| 411cbc0962 | |||
| b487c0e3e9 | |||
| fa0e8f6e01 | |||
| e25e405f74 | |||
| 302c4a6414 | |||
| d1e7f6e55e | |||
| d12f0974df | |||
| b751fe7903 | |||
| a6e34522eb | |||
| 735e6f3471 | |||
| c9f41c950a | |||
| 091c710940 | |||
| 276f412a3c | |||
| 6f6e5c847a | |||
| 6ef0274bb3 | |||
| 7ef6a72ec4 | |||
| e2b8c69cf6 | |||
| 1254d12d83 | |||
| b68642a827 | |||
| c5214b976b | |||
| e611121244 | |||
| 3aa7f0b7fe | |||
| 3d38eee71d | |||
| 90e6e309f9 | |||
| 885314b87a | |||
| ef013a7026 | |||
| 0353ade90e | |||
| d90c9282ac | |||
| 5055aafe1d | |||
| e68b9ea267 | |||
| 1d8ba2ec61 | |||
| d56970eaa3 | |||
| 8b3f18ec59 | |||
| 170d20ddb5 | |||
| 70407dac85 | |||
| c2334d87de | |||
| 0662e3351e | |||
| 6b90b3743e | |||
| dd1d456106 | |||
| dceead8302 | |||
| 832f449868 | |||
| 33a104f142 | |||
| 28f19689ec | |||
| ce6ee32e89 | |||
| fdf42ba321 | |||
| aadd158108 | |||
| d6592819e8 | |||
| 8f34c06196 | |||
| 9cdc73917b | |||
| 2976159499 | |||
| e302ccf985 | |||
| 08915e8607 | |||
| 32b2131bff | |||
| 50cf15fb71 | |||
| f07ef6d7c5 | |||
| 666025d7f6 | |||
| 671601365c | |||
| 263b04cd69 | |||
| 57b98ca782 | |||
| 46df19d7cd | |||
| fa18524223 | |||
| 3ebc0532ca | |||
| 4f59752b8b | |||
| 668ab221cc | |||
| ad90e005c4 | |||
| 952b3d6884 | |||
| 19ca1f7578 | |||
| ef02fab94b | |||
| 144b5e7558 | |||
| aff0a60138 | |||
| 92a641f01a | |||
| 929132ba07 | |||
| 2a1a4a1c72 | |||
| 4d73894cd2 | |||
| e49e805b2b | |||
| 05f3bf633e | |||
| 4d5b3548d6 | |||
| 00408f0103 | |||
| 548cceee18 | |||
| 7eb536f80e | |||
| d91ce88e9a | |||
| 76d1a20e21 | |||
| 5b6951b88d | |||
| 56313e4436 | |||
| 7810ae74d1 | |||
| 3ac1012757 | |||
| 91aec08ce0 | |||
| 30970cc7f2 | |||
| 985c027b04 | |||
| d1c4b055a9 | |||
| 3f2f508e49 | |||
| 07513cb559 | |||
| 66022902b7 | |||
| 613efe963a | |||
| 5a0affcd8e | |||
| 79150edb92 | |||
| 6cca24be8e | |||
| c2ca51e8ef | |||
| b9908d5665 | |||
| cbca420217 | |||
| 017183e3fe | |||
| 0236527f05 | |||
| e946c4bf8c | |||
| 8a0414cef6 | |||
| ee1ad692a4 | |||
| fdd5f6b0e1 | |||
| dca6df3244 | |||
| 0874b853a0 | |||
| 3393916b5e | |||
| b2728b4eb1 | |||
| f3cc3ed682 | |||
| f8cfb8833f | |||
| c2c2332e83 | |||
| 9f69c36426 | |||
| ea9de35a3b | |||
| a50a16fb01 | |||
| f27c0206de | |||
| 6791ddd911 | |||
| ce95060d60 | |||
| 6d9bbe1ddf | |||
| 5b1507f4b7 | |||
| 53e985aaab | |||
| f5c2119122 | |||
| 5fd6918948 | |||
| 7423d13bdd | |||
| fb8586f186 | |||
| 8b9ebf736b | |||
| 5abcdb8c5a | |||
| e549f67fcc | |||
| d68576c2fa | |||
| a6042b6a03 | |||
| d1a3afd992 | |||
| 34b00f7dba | |||
| 14b6c6861f | |||
| fe4bb4209c | |||
| e997eb2012 | |||
| 8337473f5a | |||
| 7ada7fb327 | |||
| 9d632e39bf | |||
| 1f50eada6d | |||
| 38e1114dad | |||
| 11be73a578 | |||
| 13a00df73c | |||
| 7739690bf5 | |||
| 389eb9e05d | |||
| 98fe94aa24 | |||
| 4ee378bf8e | |||
| a8c268760b | |||
| c684b8ab1e | |||
| 333d0e2391 | |||
| c22c5993fc | |||
| 1c239cc7cf | |||
| 6ee5aa3e12 | |||
| 0d5ceb1e90 | |||
| 166a241761 | |||
| f6f5e806e4 | |||
| f0f42240f3 | |||
| 686afc0974 | |||
| 5d085469ec | |||
| 7c54429c13 | |||
| 8dfd04573e | |||
| 7e5fb3c9ae | |||
| 65e4c0b8d1 | |||
| b1301237f1 | |||
| cf82c12708 | |||
| 52f8697d91 | |||
| 1aee8679d2 | |||
| 3169c5b503 | |||
| 741f0d69ab | |||
| 8829ea9b29 | |||
| 53b283eac5 | |||
| 1234b6297e | |||
| 6ba99e8199 | |||
| b4eb603f22 | |||
| 62f9ce979d | |||
| f5928fc707 | |||
| f7040e3616 | |||
| a70f1cc1ef | |||
| a86b738231 | |||
| 8a9ddba208 | |||
| 4c727966e7 | |||
| c2ac53029a | |||
| 5d300d85bd | |||
| 1dc181797b | |||
| 30d932e2e0 | |||
| 9fb32d33af | |||
| 70baa60521 | |||
| 8ea2784d44 | |||
| 2b56d82577 | |||
| 8ff34baafa | |||
| eeae534a37 | |||
| 8b71049a3d | |||
| 373361dab0 | |||
| 60a1141b9d | |||
| a38c8a0235 | |||
| c39d165a3d | |||
| 2238f8e8ad | |||
| e0c53c3ead | |||
| 1074bc2d3b | |||
| 4b22b1c115 | |||
| 141794caf7 | |||
| d5997e2394 | |||
| 429ca8dd34 | |||
| c2ad0defe0 | |||
| b4658f2696 | |||
| 11b7dfc9b0 | |||
| f7b7ef850d | |||
| bb9b145519 | |||
| d75f5b8fd3 | |||
| 34fe64b27c | |||
| 2151595b45 | |||
| b2c94386b3 | |||
| b99ae9be88 | |||
| ffbc831071 | |||
| 302a60fbe7 | |||
| 3ec8ba01d0 | |||
| 2048eb7d5a | |||
| 4d605927f3 | |||
| b7ee3a2f1d | |||
| 44fa9e2d1e | |||
| a5e818f970 | |||
| 066cf81233 | |||
| 1b4552cf30 | |||
| 0ba8ee1c5f | |||
| 5c4f3a5aec | |||
| c963c0b25b | |||
| b3a4fb2676 | |||
| 0b82902248 | |||
| e7f70ccd1f | |||
| 683395599f | |||
| 755d7c2351 | |||
| 17d91bcd8e | |||
| 2633ec10dc | |||
| c4f772c8d9 | |||
| 18addf2a87 | |||
| eee826248d | |||
| 96a817753c | |||
| 600b06e66b | |||
| cd680daa4c | |||
| 315b716e87 | |||
| b2f1966a78 | |||
| 6305f87037 | |||
| ab02b67d3c | |||
| 0f4086eaf0 | |||
| e7c5329e57 | |||
| ad82ea86c8 | |||
| c310e1e3b7 | |||
| aaf9372474 | |||
| 2cf169359e | |||
| 7f67f8c20d | |||
| 5607dfcecb | |||
| ca99f525c9 | |||
| 7e92517d13 | |||
| 1ebb67b2e7 | |||
| d9ef7b43b0 | |||
| c074fae885 | |||
| c5ada0fc2f | |||
| 5268b0f67f | |||
| 7e10089c13 | |||
| 1dab36da2d | |||
| fab50e53b8 | |||
| 10cfe6d37a | |||
| 3718ce9749 | |||
| fd39c8bf11 | |||
| 2e122fa8d8 | |||
| 66d85d17d9 | |||
| 61bc570d59 | |||
| 62dbd400a4 | |||
| 74af52d29d | |||
| 59f377b058 | |||
| 949f65b210 | |||
| 4046fbae89 | |||
| da8776c2f1 | |||
| 4043df1d02 | |||
| 3bc5ab593a | |||
| 6dad0d669f | |||
| 39f581a826 | |||
| 2034b25b25 | |||
| 468a7aa911 | |||
| ec50643d96 | |||
| 3b98fb666f | |||
| f17eeed579 | |||
| 452d0b6f6e | |||
| 41450b6e1b | |||
| 30029462b1 | |||
| e109879cac | |||
| 90ad4e9abf | |||
| fd0e2b1a96 | |||
| 19d637efea | |||
| 6c18b35276 | |||
| 184eddb5cf | |||
| 1d577b0171 | |||
| 05c998227a | |||
| 53ed810d86 | |||
| 7c136b6f57 | |||
| 4e510d9d8c | |||
| e1f30f96c9 | |||
| 146d0cefc0 | |||
| 0103bd58e1 | |||
| dbc1e7d6ab | |||
| ea706863b5 | |||
| 04f4f5b57c | |||
| 98b9246c10 | |||
| 1e158721ee | |||
| ab4eefcac2 | |||
| cf3b36f124 | |||
| 8da01b8569 | |||
| c90afaa312 | |||
| 9f20bb89c1 | |||
| dfe664b779 | |||
| 88bd1fd6ef | |||
| 33f8823edb | |||
| 06d5c0a86c | |||
| e12a5eda01 | |||
| b3c59b2cc3 | |||
| 24d5969ce8 | |||
| 6ad42a02ad | |||
| 90b1ee4805 | |||
| 0c9d5ca9da | |||
| e05ecd0c3e | |||
| 441657cbfb | |||
| 0fb6b02fc4 | |||
| f83df0d651 | |||
| e667cd20a8 | |||
| d06c56367f | |||
| 039b4cf19f | |||
| ca0961bd49 | |||
| 79528fa87b | |||
| d96d0b1bcb | |||
| 02c237404e | |||
| c56f5282ff | |||
| d62f10cb46 | |||
| 4c6f123cda | |||
| b0b1829426 | |||
| 68b590c263 | |||
| b45efddd9a | |||
| d8f5d8c6ec | |||
| 56baa8ac9f | |||
| 15aa64ed28 | |||
| 6d0bfeb420 | |||
| ceff334420 | |||
| 4ee2db68fc | |||
| 1f04d0023b | |||
| 4427fdcaec | |||
| 4de642c6a4 | |||
| d3eb89a97c | |||
| d7362a3785 | |||
| 26347ac41e | |||
| b396da3f33 | |||
| 306a0bf6de | |||
| 8000e274c6 | |||
| 5d91e0fa0a | |||
| eb41247f2d | |||
| d53eafe87a | |||
| e48c40e5af | |||
| df51318fb9 | |||
| 065c17002e | |||
| 0e46a54013 | |||
| 0e35fb941b | |||
| 71c9b927c6 | |||
| 0327d01287 | |||
| 0ab206ca13 | |||
| e42960ea15 | |||
| 636d42a52e | |||
| 1451843f84 | |||
| f8af21306a | |||
| 4e874cdb1b | |||
| dbd9a844dc | |||
| 542cdef0bd | |||
| f5955e14ff | |||
| a0df7adbd1 | |||
| 82a4398ef6 | |||
| 9271930ba8 | |||
| f149f0d994 | |||
| 14ff325608 | |||
| 8e37fcc71e | |||
| bf910bc708 | |||
| 1136ea0779 | |||
| 9ad94b6562 | |||
| c5284ed195 | |||
| 5cd92dd794 | |||
| 5ddb0b4a55 | |||
| 990858ba41 | |||
| 406951fc84 | |||
| 41c7bf4aaa | |||
| 1543634cb0 | |||
| b935752ec0 | |||
| 2a60b7b7b2 | |||
| cef78687b3 | |||
| 2f29edc01f | |||
| 134491b59e | |||
| 812ff0bfd2 | |||
| 201c4fa0d9 | |||
| ced83b9bfc | |||
| bd98ee62e1 | |||
| e67c5273d7 | |||
| b4b9339065 | |||
| f3cd68eb3f | |||
| ad57dea0e5 | |||
| 1e0a348b8e | |||
| 9c06a2126d | |||
| dab030e95d | |||
| 4995bc0d0d | |||
| d2369893c8 | |||
| e48adf6443 | |||
| 505bca8386 | |||
| 31ca93a259 | |||
| 71523b7038 | |||
| 9885dc9c8a | |||
| 00d9d9f132 | |||
| 320dc3fac6 | |||
| 6e68e43a25 | |||
| a19c391aa1 | |||
| 32f0101c1b | |||
| 12b9fdced5 | |||
| 0af45a53a9 | |||
| 37773d35f2 | |||
| fca3eb4b7b | |||
| 5e9e0b70db | |||
| 5242ffc04b | |||
| f0c9a5b2dc | |||
| b3902e82fc | |||
| d70eff6fc4 | |||
| 5b5695ffe1 | |||
| deb44cad30 | |||
| 35fdca3607 | |||
| 93080523d0 | |||
| b7b8f5a7e7 | |||
| 59ee55a6b2 | |||
| d85b25d683 | |||
| 0108006fab | |||
| 755bb8f189 | |||
| f53dcbc64f | |||
| 0f215bbcf8 | |||
| 9770775770 | |||
| 0b63bcc056 | |||
| 03116f5ece | |||
| 5c091d8690 | |||
| da1ca24190 | |||
| 33f7a8d356 | |||
| 64c3fe9099 | |||
| fa7382851f | |||
| ab363596fd | |||
| b05970acf4 | |||
| aa6b70c296 | |||
| 00171e6d16 | |||
| 061e0ded72 | |||
| 81bdd86fb7 | |||
| 60ff06bcf0 | |||
| a3e3f48d47 | |||
| a3a79a696f | |||
| 6947672046 | |||
| 6f77e96998 | |||
| 8a595aa269 | |||
| 1ccf38221f | |||
| 18c639e6c0 | |||
| 06224371b3 | |||
| d06105f410 | |||
| 3226340b08 | |||
| 25ef5d64b4 | |||
| f286558065 | |||
| 9586c50cb5 | |||
| 4658bf38c5 | |||
| 951a4e37f3 | |||
| 6ad3154035 | |||
| d7fa4a0df2 | |||
| 1112a40f0f | |||
| 78d1256b74 | |||
| a3f9aad418 | |||
| dba8cb83bf | |||
| 1954c607cd | |||
| 744124f407 | |||
| 3c14921a8c | |||
| b595fe7488 | |||
| b0b194cef7 | |||
| eb0a3a27d3 | |||
| 72fbcd72e0 | |||
| 09e660a38c | |||
| add1810fcc | |||
| eead2ce93e | |||
| 193fba71f3 | |||
| 5e60d96614 | |||
| 85c721da99 | |||
| f3f09dd9a5 | |||
| 29ad804ca8 | |||
| a8c77d6e26 | |||
| b949380db8 | |||
| b7f6137a63 | |||
| 181cd7f0dc | |||
| 10692dc587 | |||
| 8d0793e004 | |||
| 02da163ee0 | |||
| 3199e94b3c | |||
| ac2a1503e2 | |||
| ea10167607 | |||
| e617b913cd | |||
| 8f6208a3c9 | |||
| 39c71481c9 | |||
| a38e49290e | |||
| f974427964 | |||
| 1f311c8657 | |||
| c0406734bc | |||
| 66e80628f6 | |||
| 8a14800ef2 | |||
| a46d73f562 | |||
| e908838376 | |||
| 4b1339a11c | |||
| 620c43fd6d | |||
| dfb9d5622a | |||
| af0aa7da4e | |||
| 75ddb50738 | |||
| 600238dd9b | |||
| 5a88e98ad9 | |||
| 84a0544621 | |||
| 8a1c7ee448 | |||
| c978be5cab | |||
| 2fb29dad0a | |||
| 7d160abdaf | |||
| 6c5d2c6716 | |||
| f3feff7988 | |||
| 7d24f50cdc | |||
| 7c7375ed43 | |||
| e2e4adca4e | |||
| a350b9bc3d | |||
| 7854543122 | |||
| 8b5636c0ab | |||
| 9f948fd2ba | |||
| 60fb67461a | |||
| 5c896fc965 | |||
| 242201ca91 | |||
| 865392d1f7 | |||
| b880ed2371 | |||
| c779988771 | |||
| e6eb15d053 | |||
| 05b957df19 | |||
| 96da8a5fab | |||
| 62bf61402e | |||
| 227be798f6 | |||
| 53f304d137 | |||
| 137d362369 | |||
| 5b2cf54f50 | |||
| b4bc785f7c | |||
| 98a8e4c2ec | |||
| bed6b04c3d | |||
| def04017e0 | |||
| 9eeb916796 | |||
| b06a0c5d83 | |||
| 90541ba349 | |||
| 0cc346259b | |||
| 98c343b438 | |||
| 7ee0cdc6c7 | |||
| 6a770832ba | |||
| ef0ff65162 | |||
| 8c0e7e1bb3 | |||
| babb3ffb9c | |||
| 15c96f753c | |||
| 354bdeffbf | |||
| 512af90d31 | |||
| 8cb2ef7cac | |||
| 046b38e5c2 | |||
| d50d7fd631 | |||
| ed837b7527 | |||
| fa5dd99f00 | |||
| a19282710b | |||
| 2f3cfb0a4e | |||
| af4db94d17 | |||
| bcbf27acca | |||
| 80b037c5a5 | |||
| 20bacfeecf | |||
| 8a128ae8c2 | |||
| beacfbb082 | |||
| df0d565ae5 | |||
| 9ee755c112 | |||
| 130aca2943 | |||
| 5ea76ecb66 | |||
| b8ff3ef41a | |||
| 3e8156be54 | |||
| 47e192b530 | |||
| b33f222fc0 | |||
| 20eab1f403 | |||
| a283fdb75a | |||
| a29a115846 | |||
| 05ff9183fb | |||
| 793d299c1d | |||
| 7d5f862f34 | |||
| b0ab900a0f | |||
| 0ea5012ba2 | |||
| 7ecb96d45a | |||
| 5f0d7fde39 | |||
| fe3c301ca2 | |||
| 3adf8847b0 | |||
| 9ae68f0000 | |||
| 36415a1f7a | |||
| 39d1aa932c | |||
| 82b37c3b58 | |||
| c73c2b003a | |||
| 65b39d3a30 | |||
| 6a59119c58 | |||
| 8b4387ec32 | |||
| dc82f8f077 | |||
| 07e1f67e13 | |||
| 412f4c65c8 | |||
| a6d9c1f882 | |||
| bb5c142f52 | |||
| a5e1528c0d | |||
| 904c20e879 | |||
| 612daa6824 | |||
| 02b6de2385 | |||
| da5db1920e | |||
| d20545741e | |||
| 03b42d2c6c | |||
| e9dbeebbc4 | |||
| bb53fa245b | |||
| bc796498a3 | |||
| c25266054b | |||
| 0204414196 | |||
| c6b2017494 | |||
| 84fd48602e | |||
| a34ea0804d | |||
| 0fbf4ce443 | |||
| d062cc45df | |||
| da790136ff | |||
| 134f374ada | |||
| df304a894f | |||
| 2d1d90e38c | |||
| dcbdc6fcb8 | |||
| 5a4ef15de5 | |||
| affc4c8bd9 | |||
| bc5d6e89ba | |||
| c17e6811d2 | |||
| 7f097c029a | |||
| c8e8eb58aa | |||
| 60f5affe43 | |||
| 0b087ca77d | |||
| 444083ec5d | |||
| bf01a11fec | |||
| 8f232421d2 | |||
| dbc688ad6e | |||
| 6217a721ac | |||
| c2ba937ac6 | |||
| d860786221 | |||
| 621ce1777f | |||
| 4f610ac1af | |||
| 7341cd1712 | |||
| bf112b7b4b | |||
| ad9e0cc39a | |||
| 1439681113 | |||
| 3b750541c9 | |||
| 79765201ac | |||
| 0086b9d848 | |||
| c8ddb44783 | |||
| d4829a4bac | |||
| 486f0c0035 | |||
| dc3a695ab0 | |||
| e769239213 | |||
| 45923a74f6 | |||
| 7bf7a87f8a | |||
| 8396e27a2c | |||
| 5153c68b8b | |||
| 3feee682b6 | |||
| 4ea5cb9538 | |||
| f6461a755a | |||
| 39cf5ce66e | |||
| c68d9892b5 | |||
| 33b20b6268 | |||
| 280df20a0b | |||
| 7027cd80d4 | |||
| bfbcfe7bae | |||
| e1f64b6d2b | |||
| 6944c438dd | |||
| 49b7ff1192 | |||
| 662cdbaa0e | |||
| e912eb5ef8 | |||
| 5ab68d83a5 | |||
| f7c432f7fd | |||
| 592ccb6ebe | |||
| d22d70dd92 | |||
| 7ec5606ce4 | |||
| 476bf95edf | |||
| 391495dd86 | |||
| 8c89eb6650 | |||
| 4167c6ea70 | |||
| ca3151ce29 | |||
| cc20844eff | |||
| d876e710e4 | |||
| 5c1290425b | |||
| 2043488c67 | |||
| e7e48c8f03 | |||
| dad650b804 | |||
| d0e73714c6 | |||
| d8b95d3a20 | |||
| 559d8cc0db | |||
| 7a804aa576 | |||
| cdf036ed7b | |||
| 639a3b9295 | |||
| e4f8c3bef7 | |||
| 462945022c | |||
| aa57687df0 | |||
| 3237a3b9de | |||
| ff30e109cc | |||
| 2d291f843a | |||
| 7219fc1c3c | |||
| ed6bfa7810 | |||
| ad15090c34 | |||
| 9d34bf4a19 | |||
| 7c9b1a52af | |||
| dd297dca31 | |||
| 1409d01078 | |||
| c9a03cf9b7 | |||
| 6a99132e76 | |||
| 0bca66b671 | |||
| 24e5cf8121 | |||
| ee7c4ce0f3 | |||
| 428b511687 | |||
| 49497996d5 | |||
| bccd65e2fc | |||
| f2158843ce | |||
| 87fc4a4f22 | |||
| 27291f9ee9 | |||
| cba963110e | |||
| aa014e3706 | |||
| 58d577f67a | |||
| cd3678841b | |||
| 425e0c33df | |||
| 2018407782 | |||
| 2e269d2e63 | |||
| 7820636c9f | |||
| db1b35ccf6 | |||
| fadfe0a782 | |||
| 255a2ecdd9 | |||
| 97ffe33fc8 | |||
| 56d97a1f59 | |||
| 28d5d24617 | |||
| d97f6903d6 | |||
| 3bf84d96d9 | |||
| 8df643a2ab | |||
| 2d001c4fa1 | |||
| cbd6b57445 | |||
| dac684c08a | |||
| 772c29791a | |||
| 89a232ae14 | |||
| 4e4b8ddb77 | |||
| 6eaefa0bdd | |||
| 20a75bbbb7 | |||
| 5cc261dd3c | |||
| 6d958b6f65 | |||
| 8ddac4d7c7 | |||
| a321ad9dbe | |||
| 4dff66253c | |||
| 9a1e9f90bc | |||
| c54724919c | |||
| 139d1cdcf8 | |||
| 490c50a182 | |||
| af1e496eab | |||
| efea043549 | |||
| d4ee91f013 | |||
| d4561581ad | |||
| a17f167952 | |||
| 5beb068cde | |||
| a272bdc796 | |||
| 30a43089a0 | |||
| 416b32cbc8 | |||
| a3a49e47b7 | |||
| d203cece0e | |||
| 9f6f0f04c7 | |||
| a4729a7de8 | |||
| a974c6d4cd | |||
| 34612acdcf | |||
| 9e23117f9c | |||
| b3996f1970 | |||
| e143017432 | |||
| c6c0a14ee0 | |||
| 9b8768dbdd | |||
| a3bfcc962d | |||
| ca4ed605a8 | |||
| d3e6d7442f | |||
| b558bc5334 | |||
| 204d7b5be6 | |||
| 7dccfec332 | |||
| 0b694bfd0b | |||
| dfb59d8a55 | |||
| 3cd191210c | |||
| 56a44ad421 | |||
| a12ee3c0da | |||
| a657c479be | |||
| bb7dabc73b | |||
| ab82c5fd88 | |||
| 78cfb19f69 | |||
| f2334082ee | |||
| 58a47cb52b | |||
| c7cb4674f5 | |||
| 523df21d83 | |||
| 82314076a9 | |||
| d04bf2e8f2 | |||
| a1c67b5154 | |||
| 3e343fe8b7 | |||
| e288c942ee | |||
| 7a1ccb0d53 | |||
| 89656c7e65 | |||
| 7f76198139 | |||
| 5ff813f9b7 | |||
| 69994e0c11 | |||
| aa959fbe92 | |||
| 948b7cda15 | |||
| 644ef040d0 | |||
| 33839d7244 | |||
| 48270cb9b4 | |||
| cd42760b68 | |||
| 1116da389e | |||
| 24d7ae4a2f | |||
| e598ef6e05 | |||
| 6601e73069 | |||
| 7f2a80552b | |||
| eceeb4aa3b | |||
| b5c7f374f3 | |||
| 9d08e2d297 | |||
| f2303ae2dc | |||
| 4d44fd47c3 | |||
| 88635cb6c3 | |||
| 1687fcc035 | |||
| 39e7937458 | |||
| 54f065f42c | |||
| 333ebb88b9 | |||
| 53ff367473 | |||
| 33a7de9448 | |||
| 60ff2970f0 | |||
| 212cd026a3 | |||
| cf47f8fea9 | |||
| c797472bcc | |||
| 4b45ffd841 | |||
| 69a57b77c9 | |||
| 5daba6034d | |||
| 4e5c19e932 | |||
| 5eb73baf5e | |||
| d819f31bdd | |||
| a97c453706 | |||
| 5ee955a713 | |||
| 57224f7304 | |||
| 270d145466 | |||
| c564ee6093 | |||
| caaa9ab23e | |||
| b6d2c6d28c | |||
| c36c8968d3 | |||
| b019af1851 | |||
| bcd32da2bc | |||
| 6f97a40372 | |||
| c56c7ddd03 | |||
| 9a0dd604c9 | |||
| a1dec176a1 | |||
| 67032d068d | |||
| 401c83945d | |||
| ed6d020edb | |||
| 8eb5600b1e | |||
| 9c4cd69106 | |||
| 64cbe0c960 | |||
| be70b217d9 | |||
| b4f5260dda | |||
| 83e446f99c | |||
| 767139cf0b | |||
| e3ac60111f | |||
| c694c11724 | |||
| b50765a151 | |||
| 590f77bdb4 | |||
| 09575e5312 | |||
| 1693825dd0 | |||
| 5a89056112 | |||
| 2ee51bb282 | |||
| ea7cffc1a3 | |||
| c20d1b82ae | |||
| 607781382f | |||
| 4e8c1e853b | |||
| 2c6869501e | |||
| 4509e1d1dc | |||
| 6b9d4941be | |||
| 308cd6b91d | |||
| 23b54de8bd | |||
| bd742aec9c | |||
| d2ab3071a6 | |||
| 1dd4c161f0 | |||
| 5e48dd45b2 | |||
| 601d6e7377 | |||
| 3934b40282 | |||
| d43be271e6 | |||
| d3c9963051 | |||
| 92a3bdf4e9 | |||
| fa2aafe41f | |||
| bc5da2532c | |||
| a7be1acbd8 | |||
| fbe2ae03ff | |||
| d1a492f953 | |||
| ac6ea8bdcc | |||
| 352807c2d7 | |||
| 70d79c1890 | |||
| fb1fde26ce | |||
| dc4cf8496a | |||
| 3aa046bfa7 | |||
| ed79d21e1b | |||
| 9454ff677b | |||
| 743d340bca | |||
| a5c7b8f609 | |||
| 3d1398ab97 | |||
| 9365d1adc6 | |||
| ddd2a96ac5 | |||
| 6faf171007 | |||
| 7a680ce4ff | |||
| bf8ff51234 | |||
| 2ac4456f4e | |||
| 7891f52bd4 | |||
| baa4a8a461 | |||
| 34daffcdf4 | |||
| 21baea27a8 | |||
| e1d3714445 | |||
| 8b7e0a0d78 | |||
| a1cc427c9c | |||
| 391aa30da2 | |||
| 5dc675040d | |||
| 1258eb6533 | |||
| f92f76b48a | |||
| 83abfc9ca6 | |||
| 61b6d4dc47 | |||
| b42d6677cc | |||
| e8c644a600 | |||
| aa041e39eb | |||
| 9f6a73b290 | |||
| 4d38bd1c62 | |||
| 138262114d | |||
| 4073c9e638 | |||
| f1b4877a98 | |||
| c39c92d0d7 | |||
| 90fc48d959 | |||
| 7f10a53105 | |||
| 7ae1b7a765 | |||
| 22a43a0463 | |||
| 9348204987 | |||
| 776c7caaa5 | |||
| 2216b83ca7 | |||
| dea399398a | |||
| 7434dd9458 | |||
| 723abca34a | |||
| 88e532dbc4 | |||
| 32b28327e9 | |||
| c5ad451c39 | |||
| 44bfceeb0f | |||
| c30131275f | |||
| 37eb63837b | |||
| 4ada47e3b0 | |||
| e5c55c9ab3 | |||
| 547b3df7b4 | |||
| 4100f2600c | |||
| 56218dfcb2 | |||
| a9574e8fd6 | |||
| 0d2a75db0a | |||
| c6269d6bbc | |||
| eb9d066844 | |||
| c1204a5301 | |||
| cc5ac65909 | |||
| 9ddc48e3d7 | |||
| 029f3030a7 | |||
| 4a39d7c67a | |||
| b7a6706591 | |||
| ddb031f091 | |||
| e906d25776 | |||
| 27d7449459 | |||
| 8c59a8d405 | |||
| 5d8905c997 | |||
| 517f4ce121 | |||
| 6809bbd3d5 | |||
| ab555d05e1 | |||
| f7bc538fdf | |||
| 2de66ad5db | |||
| 30e16b6213 | |||
| 92b50ca7ae | |||
| 9ee36df979 | |||
| 46d1c14e1a | |||
| 61895011fb | |||
| 32d43034bd | |||
| dfc6cdc127 | |||
| 16e93f9e18 | |||
| 7395b1a4eb | |||
| fa98557225 | |||
| 894606b62e | |||
| f0a6a0026a | |||
| 070e0c93be | |||
| 2b27b733e5 | |||
| 0355c2b642 | |||
| 3bad19fb56 | |||
| 0f84d51a48 | |||
| 2e8572d9c5 | |||
| df53d5d966 | |||
| 23838959ca | |||
| 6dbb836a01 | |||
| 3426afe5a8 | |||
| 4bbf923eb6 | |||
| e2c3480194 | |||
| 73159076f6 | |||
| 90d040573d | |||
| 6904ad02a2 | |||
| 155481a442 | |||
| 2f31bfc5fe | |||
| 8d0c88dc74 | |||
| 07256fd833 | |||
| 776cd43a58 | |||
| acb5309aab | |||
| c68f81db3c | |||
| ac8e341b37 | |||
| 36122b3966 | |||
| 79bcf472f0 | |||
| 55d86da846 | |||
| e4f8c1ba3f | |||
| c36236b7dc | |||
| 63994333d0 | |||
| da4c7d8934 | |||
| 186721eca0 | |||
| f53d939c86 | |||
| 23e6909708 | |||
| cf421fe1c1 | |||
| 4d80e806e4 | |||
| 60a7b7f7ff | |||
| 90263eab06 | |||
| 9d8f251fc4 | |||
| 2b4986571c | |||
| 890d13bd52 | |||
| e698e71137 | |||
| d064a5530a | |||
| ab4fbf6c19 | |||
| 728afa8361 | |||
| b77019c16e | |||
| 6703448b80 | |||
| 776ba19a1f | |||
| 1f499e0d44 | |||
| 0a6eb61103 | |||
| 32a2eed5ec | |||
| 40a70d39d0 | |||
| 5697054e98 | |||
| def5969e1c | |||
| 78a418630d | |||
| 6d76e7b2d4 | |||
| f052c8b44c | |||
| 0e6991d56d | |||
| 06eab5f8a4 | |||
| 4a481e79c4 | |||
| ee4abbcbaa | |||
| dcc82d742f | |||
| 19cb2089d7 | |||
| 04923b06b0 | |||
| e16755d491 | |||
| 742b0769a4 | |||
| df68dca9dc | |||
| 4a5bf78d58 | |||
| 7947237489 | |||
| 1115205164 | |||
| d5d01136c4 | |||
| 3d47277614 | |||
| b937bea04f | |||
| fff14632bc | |||
| 9bdf1a620f | |||
| 60099aa989 | |||
| 777872d41f | |||
| b85d1f184a | |||
| 02129eeddb | |||
| 2612e0bbc8 | |||
| 3670efacb4 | |||
| f3976e5dd8 | |||
| 476611b70f | |||
| d7d6893304 | |||
| 99549ce805 | |||
| 7eb15fe04d | |||
| e2019a13ab | |||
| 4b7a06761a | |||
| b96e2fb52c | |||
| 8f4a1f5801 | |||
| 891bec9cdb | |||
| 60df2a17f8 | |||
| f64f4795c1 | |||
| e036f756d5 | |||
| 92fd121cae | |||
| 6307337892 | |||
| fc2e35cd32 | |||
| 1811e061aa | |||
| 59037f0d83 | |||
| 67edb7d396 | |||
| 0da393f950 | |||
| abd30e551e | |||
| 6fb2889a92 | |||
| 54125d27e0 | |||
| c5252ea583 | |||
| 82d553c180 | |||
| 71e34355b9 | |||
| 2bad8c72e4 | |||
| 6134ca01ac | |||
| be8193ebff | |||
| 430ee46645 | |||
| 76fbbf29e8 | |||
| 3108159d95 | |||
| f282a1ead7 | |||
| 324bc4957d | |||
| c3b5c4dfae | |||
| 4ab5d97e86 | |||
| 41efda5f82 | |||
| 2aee14a800 | |||
| be69da0a0d | |||
| b4696ef11e | |||
| 31a247b55b | |||
| 33c156be16 | |||
| fd66a083d6 | |||
| 294ffb72a4 | |||
| d276f50fdf | |||
| 4cb748e124 | |||
| 8c534d29d3 | |||
| d6cb262f9d | |||
| 5211e2ae20 | |||
| 90832fd1ad | |||
| 889cbc69e1 | |||
| 15948370d4 | |||
| 63c5177b37 | |||
| 4fbfaf6b9f | |||
| 9e68497b63 | |||
| 0b9e13bf1e | |||
| 485d343e0f | |||
| 07f0e8a3be | |||
| cc5afb1cd8 | |||
| c69f1c0890 | |||
| 503e6898c3 | |||
| f34056fe2e | |||
| 8ff3575442 | |||
| b5e3358bbd | |||
| 047a1197be | |||
| a8733bdedf | |||
| 4222e4eb51 | |||
| 5db4441f5c | |||
| 2bcfe97211 | |||
| 4e74c97c84 | |||
| 71a46c9bd6 | |||
| 1a7c7fdebf | |||
| 65ff3d414a | |||
| 9fa38b70c8 | |||
| 470172f53f | |||
| 81261d9e36 | |||
| 3ab2e20119 | |||
| b773d576ea | |||
| 23feb64b5a | |||
| 87fe9d9d3d | |||
| b1ef3f51cb | |||
| e1b6488f8e | |||
| a472dede2b | |||
| 263cc3f7a1 | |||
| 0e87843446 | |||
| 598612d4bf | |||
| a07d83e583 | |||
| d355812433 | |||
| 1afc14f5ab | |||
| 8947b667ae | |||
| 6b41796d44 | |||
| 6efe8eb55b | |||
| 4c8f8918e8 | |||
| 4cb5bb1855 | |||
| eb007e025a | |||
| 18aefa9dee | |||
| 2ec540bd36 | |||
| 1374ec408a | |||
| 8f8fed2b79 | |||
| a1e6f01fe9 | |||
| d7496f22e5 | |||
| 7de25a1c37 | |||
| 78da89340c | |||
| 60606115fe | |||
| 57b49fc31c | |||
| 6e90c8f6e6 | |||
| a7ff2595a5 | |||
| 1edea6abef | |||
| a3bd58bda6 | |||
| 3339d1999f | |||
| df3e8ec0f3 | |||
| 2dbec867d9 | |||
| 4f1ff328ad | |||
| ad5bbb9b37 | |||
| c6e2fd2cab | |||
| d3a7e25b86 | |||
| 062445a48e | |||
| 3c32be6181 | |||
| e2f4a9bf9f | |||
| 2db4c1b2e4 | |||
| 3fc651d659 | |||
| 6ed93f4a4f | |||
| b91d23023d | |||
| cc234c60b8 | |||
| f1883c8004 | |||
| 79f6ddc8ee | |||
| 89f439a18d | |||
| 79eb5bfad9 | |||
| 3a36b7dafd | |||
| 1fe2fd9891 | |||
| 5fdb999ece | |||
| 5a38d9c2b6 | |||
| b1c7dc6cbb | |||
| b21b2ac41c | |||
| 1396c597ef | |||
| 46af72ee4e | |||
| e3e8f553c8 | |||
| 549928d3d1 | |||
| abefec9628 | |||
| b483eeded4 | |||
| 3ff516180d | |||
| c0a99d6b52 | |||
| 9dcee71baf | |||
| 9bdd0d1d1e | |||
| 13b51d8608 | |||
| 19969fee39 | |||
| 28dc4bf52e | |||
| 9a380ac3d4 | |||
| 17a26b43f0 | |||
| cba090f8eb | |||
| 0d6baa1081 | |||
| 85a208526b | |||
| cd266a6bef | |||
| 3c81257325 | |||
| 24bb45ab97 | |||
| d5ef7f3204 | |||
| b0f5fe7e25 | |||
| c675bb7252 | |||
| 143a091f45 | |||
| 8fefc11b4d | |||
| 9188fb03f0 | |||
| 607eb6ca03 | |||
| 44ef39e419 | |||
| 0ea9c0647f | |||
| 884d2a9552 | |||
| 14e43192e6 | |||
| b9f4dc1e9d | |||
| b082fb6692 | |||
| 0c1b2a54e7 | |||
| 85e16ecd51 | |||
| e40c532354 | |||
| 55b324d8d6 | |||
| 3152d9eadd | |||
| e70f1408aa | |||
| 3c42acebf0 | |||
| a384245368 | |||
| 3327b2ce3c | |||
| 8c56aa9575 | |||
| d528126f15 | |||
| 64d0e3928c | |||
| 9334b8df47 | |||
| e0bc2ae86f | |||
| 2f019bb033 | |||
| 75c83236ff | |||
| 4ddee4ac40 | |||
| 6b693e2644 | |||
| 72cf921a4b | |||
| 32882f81e7 | |||
| 36f5099932 | |||
| 4dc3c30354 | |||
| 397cc1754a | |||
| 7017a0cae1 | |||
| a40e4d7d04 | |||
| 9e3b56f4bc | |||
| ca44ee94a4 | |||
| 3ae7a77032 | |||
| 881c789a75 | |||
| fea0189479 | |||
| 6ca0e19819 | |||
| bf6964ee62 | |||
| 9ac2ea2a52 | |||
| 62a58fa23b | |||
| 0ce20c1edd | |||
| d31d99b40f | |||
| 3527c357cc | |||
| 2b5254e68f | |||
| 6f3323c195 | |||
| 5af85bfe7d | |||
| 20adad3c6b | |||
| ca8eae4064 | |||
| 7077faaf4a | |||
| c67ca500db | |||
| 0081e7b731 | |||
| 4e6483d3ed | |||
| 0ddf0002c4 | |||
| ad0daf33b9 | |||
| ab30df10ff | |||
| a6cb75c481 | |||
| 0b60c6a939 | |||
| 51ce570eb3 | |||
| 925d48640d | |||
| 028b4e7b79 | |||
| 625a46a2c2 | |||
| ebc1e27c22 | |||
| 357e85d358 | |||
| 75cfcb83aa | |||
| 63a4d1ad33 | |||
| dcbb09bbd7 | |||
| 58eac619ea | |||
| f04d6f37e5 | |||
| 469069b471 | |||
| 9bca5912d9 | |||
| 23756ba1c7 | |||
| 07227887f6 | |||
| 13d3b103f1 | |||
| 4bdfd0e115 | |||
| 786b20708e | |||
| 0e957cad84 | |||
| 85c728f313 | |||
| 3492ed54de | |||
| 1455281957 | |||
| ba3fb8cd66 | |||
| d9fb7dc754 | |||
| 2249dad9d7 | |||
| 5c4fa630ae | |||
| ede74ad24e | |||
| 27542a8f91 | |||
| 5dc07b94aa | |||
| d7acf721ae | |||
| eff5232828 | |||
| 3eb29b1cdb | |||
| c9961f63b4 | |||
| 09e843a800 | |||
| 77b79dbd95 | |||
| dafc6c5136 | |||
| c790147a5c | |||
| 80c39c5ef3 | |||
| 9a3e84d84c | |||
| 643960c829 | |||
| 1737018325 | |||
| 484d5ba76e | |||
| 798685d0b8 | |||
| cb7654ae90 | |||
| 00c394345a | |||
| dffcb62fa1 | |||
| 8c668b72b7 | |||
| b54ecd4da0 | |||
| 87a7e3501b | |||
| daefec3013 | |||
| 183a9742c4 | |||
| 04b83f8176 | |||
| 335ab3f064 | |||
| 7dd493da35 | |||
| 560bd6da92 | |||
| a5824ccc5f | |||
| 830a7964a4 | |||
| b1359c3277 | |||
| 0ba8f5cc5a | |||
| 6fb9e2c38e | |||
| eebc2ab8be | |||
| b65b3151ee | |||
| 1d24b7985b | |||
| 526bb2c650 | |||
| c450c0ddb8 | |||
| 13a0f49f5f | |||
| 199eefafa1 | |||
| c5b58f9ecc | |||
| 6b68fe4de6 | |||
| 3461bbfdb3 | |||
| 51f6927076 | |||
| e1de57384e | |||
| 1d88cf443f | |||
| 7b6c0c3a40 | |||
| fdb0651bf4 | |||
| c39d484611 | |||
| c42996429f | |||
| a091baf5a6 | |||
| 00a17cd55e | |||
| 643d44af22 | |||
| b934f43db0 | |||
| f39afe5a65 | |||
| 7612ee6b08 | |||
| 2ed2b0101a | |||
| 5ca9d31964 | |||
| 2fcd8cd261 | |||
| 0ffa47a2c6 | |||
| c95462328a | |||
| 84fc89250a | |||
| e203d4dee3 | |||
| b47d773e13 | |||
| a8d0a4a95d | |||
| 3fb0804cef | |||
| 6811ebcd52 | |||
| a80f52cbf4 | |||
| 4fe7bfb851 | |||
| fb60985d03 | |||
| 8f575923cf | |||
| 0ecfd02649 | |||
| 420aaf4f61 | |||
| 0c35f213e1 | |||
| f68813af13 | |||
| 37a90d0ce9 | |||
| 02f1291e8f | |||
| 92e4f6b5d9 | |||
| 7b7738fbcc | |||
| 7ce324a3a5 | |||
| 7624082b29 | |||
| 31197604a3 | |||
| 6d3bba696a | |||
| e33b1b6c90 | |||
| 30520297e8 | |||
| 78ca1d1335 | |||
| 6159ee8c2c | |||
| 5cd5392958 | |||
| 0dcdfc5d14 | |||
| d0e068f1c0 | |||
| f42a2d7457 | |||
| d29619b67c | |||
| f5235cb835 | |||
| ee830e0cb4 | |||
| 0cd3be003d | |||
| c93e35ec77 | |||
| 9538a76232 | |||
| 05876bb124 | |||
| 8bcd5a6d2a | |||
| a36afbcb25 | |||
| ebd8d085cf | |||
| 505148b024 | |||
| 3eefeec4ce | |||
| b61419c1ce | |||
| f590fcffbc | |||
| e87e924ac2 | |||
| 90f261bab6 | |||
| f7dfb09a4d | |||
| 3135917127 | |||
| 52afa3d36d | |||
| 242aa60e04 | |||
| 7a3c2c27ff | |||
| 5d124360c2 | |||
| 365d7448d5 | |||
| 9a0102c723 | |||
| 2f77f2cb2b | |||
| 528e3a2106 | |||
| 032a664d4c | |||
| aac1864c9b | |||
| e3477f3306 | |||
| 6620a4f87b | |||
| c0e9dff5bf | |||
| 2d961c435a | |||
| 7c95f03166 | |||
| 31e5c13b50 | |||
| 4a9fe4f981 | |||
| 4fcc5587ee | |||
| 6ca49a20ce | |||
| 28f293fdc1 | |||
| b3e7619adc | |||
| 6e56d56137 | |||
| 2528f6a07b | |||
| 423d07c919 | |||
| cc608de4bf | |||
| f999a68608 | |||
| db78a9f18f | |||
| 816039f48e | |||
| ae240bae6d | |||
| 9e30c69e6d | |||
| 43c7de9049 | |||
| 7e51c5db81 | |||
| 0ee3c45e7b | |||
| 981e69929c | |||
| 1eae5d12fc | |||
| 8863208333 | |||
| 5f38a74a72 | |||
| fe15dacb1f | |||
| c2d44cf2f2 | |||
| 7f1bdb6f34 | |||
| 7cdfaa93ec | |||
| 59ccc70303 | |||
| f1584b722d | |||
| b0305e12d2 | |||
| 4d8c5a86a4 | |||
| 58f76b5c99 | |||
| 7c4ee632cf | |||
| b6b0f716eb | |||
| bd0e04ed15 | |||
| 8599981d44 | |||
| 6fc6e95c67 | |||
| 43b585bde8 | |||
| 710f89291f | |||
| 5f835aa009 | |||
| d5ca543719 | |||
| 4c6249eb9e | |||
| 016900bad8 | |||
| 2e8ae33761 | |||
| 0d325060da | |||
| 1a6e98e18f | |||
| 97e34595f6 | |||
| a179d5234b | |||
| 64c6121fdb | |||
| 08d8954a85 | |||
| 4f20955d0d | |||
| 3a703c8bcf | |||
| ccbffa086b | |||
| 07ee4be840 | |||
| 4cc9b2d312 | |||
| 24dddae1d1 | |||
| ad0165d085 | |||
| 39dc38c5d1 | |||
| 046ce19dbb | |||
| 33263f5a93 | |||
| 8ef8e76300 | |||
| 73cfdae9e7 | |||
| 54a3e41281 | |||
| d59ba6da84 | |||
| 1b28b06934 | |||
| ff3e69a56c | |||
| 6b975a5fb4 | |||
| 3a02b15124 | |||
| 5f73d81935 | |||
| 002b5c0f6f | |||
| 8086842570 | |||
| 51f2d5a664 | |||
| db63ad1cf4 | |||
| b74b76de75 | |||
| a1b1498106 | |||
| 1158851ea7 | |||
| e1ab9e959e | |||
| 2bbac3ae9d | |||
| e889b1d5e5 | |||
| 233bf856f4 | |||
| bca843e06c | |||
| 30a79a1278 | |||
| 0f92dee2c4 | |||
| f04efede15 | |||
| f0dfdf6720 | |||
| e26d731382 | |||
| d684d3e559 | |||
| 47c54cb998 | |||
| 592cb2b3ec | |||
| f5a7871a2e | |||
| ec411fa0db | |||
| 5da79cd5ca | |||
| a850a9bb83 | |||
| 13c971b171 | |||
| 1cee7e43ed | |||
| 5e81c63d6e | |||
| 479b7a3f94 | |||
| f7cfee77c9 | |||
| 65a8126a13 | |||
| a39bc102d5 | |||
| 81d930c4d2 | |||
| 6839623061 | |||
| 7de2809d42 | |||
| 98ec6b6886 | |||
| 04827f00cc | |||
| 660bfc6578 | |||
| 1152cd5537 | |||
| 17456482d6 | |||
| a0431e1912 | |||
| f30e8497b2 | |||
| 06495bc45d | |||
| 26067916b3 | |||
| c36ee4852b | |||
| 2cb992ad44 | |||
| ee5aac8008 | |||
| 083b7be6c0 | |||
| e24854558f | |||
| e4314cf426 | |||
| 4106e4e45c | |||
| 05f143db2b | |||
| 64aeaeeeea | |||
| 61db37ab0d | |||
| f9c4d921e7 | |||
| ca099df573 | |||
| 28b584b8bc | |||
| 70449e694d | |||
| 8395ea552d | |||
| dc66452633 | |||
| 53ce44ac91 | |||
| c7c3243bbc | |||
| 8bdd77d33d | |||
| acd7d0db3a | |||
| 2bfadb8a3c | |||
| 0912e4af7b | |||
| 5aa5c48018 | |||
| 8cdd998f79 | |||
| 050d4d6b25 | |||
| 366cd11238 | |||
| 58d6443331 | |||
| 101b8afb56 | |||
| 5df5c47945 | |||
| a04740ba86 | |||
| 425ad93ac5 | |||
| 1b397cd780 | |||
| 120316bae0 | |||
| 7571ff007f | |||
| 7afd7da2b4 | |||
| 8a44144c20 | |||
| ee82c70582 | |||
| c87e8e606b | |||
| 37a50dd953 | |||
| a2669a3084 | |||
| 77da22f4dd | |||
| 7830ffe202 | |||
| 1c9e20d59f | |||
| 320edac286 | |||
| d49878371d | |||
| d2575a5d9b | |||
| ea6cf72580 | |||
| 2118155b37 | |||
| ba4f5bb71f | |||
| d5a74a5a8b | |||
| 23be1df360 | |||
| b5c1a1da4c | |||
| c11e784f51 | |||
| 06f51c8f9c | |||
| 181bcbbda6 | |||
| d008ead6a4 | |||
| 75924be958 | |||
| b1a6e3f8a2 | |||
| 06712a6041 | |||
| 62b16339a9 | |||
| 9a2f1a36ba | |||
| 95cc4d3a73 | |||
| 497eeeb2e0 | |||
| 4be21ca249 | |||
| e8598e214e | |||
| 54b1d65e3c | |||
| f7648496d3 | |||
| 59a57c7197 | |||
| 5659b26827 | |||
| ee4443aaf0 | |||
| 839dcad358 | |||
| d67933ab49 | |||
| 0eb3f6b952 | |||
| 68b0f80fce | |||
| 93489529a3 | |||
| 511be74e74 | |||
| bdee067803 | |||
| 32156cace3 | |||
| 30688114be | |||
| 34088bcc17 | |||
| 07835766cc | |||
| 251851ec6a | |||
| 049a669186 | |||
| d29f13bae9 | |||
| c758355df9 | |||
| 79d97a83af | |||
| 85bd47c240 | |||
| 473ead9616 | |||
| cf2850933c | |||
| ff2564c57a | |||
| 91d3848246 | |||
| c031f0b45e | |||
| fdbb9568ae | |||
| d817883459 | |||
| 12255979ac | |||
| 366b61850b | |||
| 89be6bd183 | |||
| e120331a2c | |||
| cb8a212d96 | |||
| 7aec431ac5 | |||
| d19681dea1 | |||
| bf2299daf8 | |||
| 164930d0dd | |||
| 387dbac809 | |||
| 3b661e5a99 | |||
| 90c1c0e655 | |||
| 21d8e7695b | |||
| 1acc452cfe | |||
| 1375e1feee | |||
| 2187adf59a | |||
| 0dcb315d9d | |||
| 327ccbd0c9 | |||
| f571d400e6 | |||
| 293aa52335 | |||
| ca178ae9a7 | |||
| d0c810e418 | |||
| d496d2caeb | |||
| e70b75c350 | |||
| a50befeda5 | |||
| e2616e8039 | |||
| 904266debe | |||
| 72d5783795 | |||
| d699fb1473 | |||
| fab1a6c33a | |||
| be73c30194 | |||
| 451646fe4f | |||
| decc919991 | |||
| e0b4005921 | |||
| 3ef36e7534 | |||
| 1949e1e1e9 | |||
| 3358382358 | |||
| 3eca3ecd75 | |||
| 140c6b91b0 | |||
| a5315ec240 | |||
| 93f1656e0b | |||
| f1d006c236 | |||
| b0b5a96694 | |||
| 7dbe9a85f4 | |||
| d2c39528d5 | |||
| 0420543c94 | |||
| aae0db902b | |||
| 88dae7cef7 | |||
| e5cb17e934 | |||
| 9d609805f2 | |||
| e2b9ca8254 | |||
| e16a2fe8af | |||
| 22d61a533d | |||
| af408bb45f | |||
| 24bfbc06f0 | |||
| 5eb9f353b5 | |||
| 473ce15f47 | |||
| eb9cfbaed6 | |||
| faeb037ff9 | |||
| 07602f697d | |||
| 11abb0fdb1 | |||
| deeb2fa543 | |||
| ef8d5ff11e | |||
| 91f3e07b83 | |||
| c29bdbdacb | |||
| a20d104d2f | |||
| a61dd8ac17 | |||
| 7ee9a690ea | |||
| 5ba94c6c41 | |||
| 9fa855c837 | |||
| 9251007574 | |||
| cc73b984cb | |||
| 548ef97c32 | |||
| ed8a486726 | |||
| 1ab0911fc8 | |||
| bdbaea7294 | |||
| 5cfd1f6fb2 | |||
| 5eda67381f | |||
| 2c8b8bfaf2 | |||
| 8f3159751a | |||
| 4b05e55b29 | |||
| 3d3c13fcd0 | |||
| 88e1d8a8cf | |||
| e007db34e2 | |||
| f9f06d2c02 | |||
| 234f7d00c8 | |||
| 9924553da5 | |||
| df38d7e3ed | |||
| 44dd061619 | |||
| 7603a932b1 | |||
| 138e7acc13 | |||
| e863d3e7e5 | |||
| c8e401f5ed | |||
| 3ba20a8e28 | |||
| ebae63752f | |||
| 8bc73901cf | |||
| b4f70d9244 | |||
| 21e9f2bba3 | |||
| 881f4e3d6a | |||
| b141945add | |||
| 68dad1d3ae |
@@ -4235,6 +4235,33 @@
|
||||
"contributions": [
|
||||
"code"
|
||||
]
|
||||
},
|
||||
{
|
||||
"login": "smarsching",
|
||||
"name": "Sebastian Marsching",
|
||||
"avatar_url": "https://avatars.githubusercontent.com/u/2880129?v=4",
|
||||
"profile": "http://sebastian.marsching.com/",
|
||||
"contributions": [
|
||||
"code"
|
||||
]
|
||||
},
|
||||
{
|
||||
"login": "mohammad-ahmadi1",
|
||||
"name": "Mo",
|
||||
"avatar_url": "https://avatars.githubusercontent.com/u/40658372?v=4",
|
||||
"profile": "https://github.com/mohammad-ahmadi1",
|
||||
"contributions": [
|
||||
"code"
|
||||
]
|
||||
},
|
||||
{
|
||||
"login": "MarvelousAnything",
|
||||
"name": "Owen V. Hayes",
|
||||
"avatar_url": "https://avatars.githubusercontent.com/u/20994684?v=4",
|
||||
"profile": "https://github.com/MarvelousAnything",
|
||||
"contributions": [
|
||||
"code"
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
@@ -137,6 +137,8 @@ PUBLIC_AWS_ACCESS_KEY_ID=null
|
||||
PUBLIC_AWS_DEFAULT_REGION=null
|
||||
PUBLIC_AWS_BUCKET=null
|
||||
PUBLIC_AWS_URL=null
|
||||
PUBLIC_AWS_ENDPOINT=null
|
||||
PUBLIC_AWS_PATH_STYLE=null
|
||||
PUBLIC_AWS_BUCKET_ROOT=null
|
||||
|
||||
# --------------------------------------------
|
||||
@@ -147,6 +149,8 @@ PRIVATE_AWS_SECRET_ACCESS_KEY=null
|
||||
PRIVATE_AWS_DEFAULT_REGION=null
|
||||
PRIVATE_AWS_BUCKET=null
|
||||
PRIVATE_AWS_URL=null
|
||||
PRIVATE_AWS_ENDPOINT=null
|
||||
PRIVATE_AWS_PATH_STYLE=null
|
||||
PRIVATE_AWS_BUCKET_ROOT=null
|
||||
|
||||
# --------------------------------------------
|
||||
|
||||
@@ -144,6 +144,8 @@ PUBLIC_AWS_ACCESS_KEY_ID=null
|
||||
PUBLIC_AWS_DEFAULT_REGION=null
|
||||
PUBLIC_AWS_BUCKET=null
|
||||
PUBLIC_AWS_URL=null
|
||||
PUBLIC_AWS_ENDPOINT=null
|
||||
PUBLIC_AWS_PATH_STYLE=null
|
||||
PUBLIC_AWS_BUCKET_ROOT=null
|
||||
|
||||
# --------------------------------------------
|
||||
@@ -154,6 +156,8 @@ PRIVATE_AWS_SECRET_ACCESS_KEY=null
|
||||
PRIVATE_AWS_DEFAULT_REGION=null
|
||||
PRIVATE_AWS_BUCKET=null
|
||||
PRIVATE_AWS_URL=null
|
||||
PRIVATE_AWS_ENDPOINT=null
|
||||
PRIVATE_AWS_PATH_STYLE=null
|
||||
PRIVATE_AWS_BUCKET_ROOT=null
|
||||
|
||||
# --------------------------------------------
|
||||
|
||||
+20
-1
@@ -40,12 +40,26 @@ DB_SANITIZE_BY_DEFAULT=false
|
||||
# --------------------------------------------
|
||||
# OPTIONAL: SSL DATABASE SETTINGS
|
||||
# --------------------------------------------
|
||||
# Enable SSL connection to database (true/false)
|
||||
DB_SSL=false
|
||||
|
||||
# Set to true for cloud databases like AWS RDS, Azure Database, Google Cloud SQL
|
||||
# Set to false for self-hosted databases with client certificates
|
||||
DB_SSL_IS_PAAS=false
|
||||
|
||||
# Required when DB_SSL_IS_PAAS=false (client certificate authentication)
|
||||
DB_SSL_KEY_PATH=null
|
||||
DB_SSL_CERT_PATH=null
|
||||
|
||||
# Path to CA certificate bundle (required for SSL connections)
|
||||
# For AWS RDS, download from: https://truststore.pki.rds.amazonaws.com/global/global-bundle.pem
|
||||
DB_SSL_CA_PATH=null
|
||||
|
||||
# SSL cipher (optional, leave null for default)
|
||||
DB_SSL_CIPHER=null
|
||||
|
||||
# Verify server certificate (true/false, defaults to false if not set)
|
||||
# Set to false for development or when using self-signed certificates
|
||||
DB_SSL_VERIFY_SERVER=null
|
||||
|
||||
# --------------------------------------------
|
||||
@@ -143,6 +157,8 @@ PUBLIC_AWS_ACCESS_KEY_ID=null
|
||||
PUBLIC_AWS_DEFAULT_REGION=null
|
||||
PUBLIC_AWS_BUCKET=null
|
||||
PUBLIC_AWS_URL=null
|
||||
PUBLIC_AWS_ENDPOINT=null
|
||||
PUBLIC_AWS_PATH_STYLE=null
|
||||
PUBLIC_AWS_BUCKET_ROOT=null
|
||||
|
||||
# --------------------------------------------
|
||||
@@ -153,6 +169,8 @@ PRIVATE_AWS_SECRET_ACCESS_KEY=null
|
||||
PRIVATE_AWS_DEFAULT_REGION=null
|
||||
PRIVATE_AWS_BUCKET=null
|
||||
PRIVATE_AWS_URL=null
|
||||
PRIVATE_AWS_ENDPOINT=null
|
||||
PRIVATE_AWS_PATH_STYLE=null
|
||||
PRIVATE_AWS_BUCKET_ROOT=null
|
||||
|
||||
# --------------------------------------------
|
||||
@@ -190,13 +208,14 @@ APP_ALLOW_INSECURE_HOSTS=false
|
||||
GOOGLE_MAPS_API=
|
||||
LDAP_MEM_LIM=500M
|
||||
LDAP_TIME_LIM=600
|
||||
BACKUP_TIME_LIMIT=600
|
||||
IMPORT_TIME_LIMIT=600
|
||||
IMPORT_MEMORY_LIMIT=500M
|
||||
REPORT_TIME_LIMIT=12000
|
||||
API_THROTTLE_PER_MINUTE=120
|
||||
CSV_ESCAPE_FORMULAS=true
|
||||
LIVEWIRE_URL_PREFIX=null
|
||||
|
||||
MAX_UNPAGINATED=5000
|
||||
|
||||
# --------------------------------------------
|
||||
# OPTIONAL: SAML SETTINGS
|
||||
|
||||
@@ -23,7 +23,23 @@ body:
|
||||
attributes:
|
||||
label: Snipe-IT Version
|
||||
description: What version of Snipe-IT are you seeing this issue on? You can find the version number in the footer of any page in Snipe-IT.
|
||||
placeholder: ex. v8.3.1 - build 19577 (master)
|
||||
placeholder: ex. v8.3.2 - build 19577 (master)
|
||||
validations:
|
||||
required: true
|
||||
- type: input
|
||||
id: php-version
|
||||
attributes:
|
||||
label: PHP Version
|
||||
description: What version of PHP are you running? You can find the version of PHP your webserver is running in the `Admin Settings` section in the footer, and the cli version by running `php -v` via command line .
|
||||
placeholder: ex. v8.3.1 (web), PHP 8.4.12 (cli)
|
||||
validations:
|
||||
required: true
|
||||
- type: input
|
||||
id: composer-version
|
||||
attributes:
|
||||
label: Composer Version
|
||||
description: What version of composer are you running? You can find the version number by running `composer --version`.
|
||||
placeholder: ex. 2.8.10
|
||||
validations:
|
||||
required: true
|
||||
- type: input
|
||||
@@ -48,6 +64,16 @@ body:
|
||||
- Not sure
|
||||
validations:
|
||||
required: true
|
||||
- type: dropdown
|
||||
id: upgrade-or-fresh
|
||||
attributes:
|
||||
label: Is this a fresh install or an upgrade?
|
||||
options:
|
||||
- Fresh install
|
||||
- Upgrade
|
||||
- NA
|
||||
validations:
|
||||
required: true
|
||||
- type: textarea
|
||||
id: what-happened
|
||||
attributes:
|
||||
@@ -67,6 +93,38 @@ body:
|
||||
- Safari
|
||||
- Microsoft Edge
|
||||
- Other
|
||||
- type: dropdown
|
||||
id: on-demo
|
||||
attributes:
|
||||
label: Can you reproduce this on the public demo?
|
||||
description: You can check this at https://demo.snipeitapp.com.
|
||||
options:
|
||||
- 'Yes'
|
||||
- 'No'
|
||||
- N/A
|
||||
validations:
|
||||
required: true
|
||||
- type: dropdown
|
||||
id: fmcs
|
||||
attributes:
|
||||
label: Do you have full multiple company support enabled?
|
||||
description: You can check this in your Snipe-IT installation at `Admin Settings > General Settings > Scoping`.
|
||||
options:
|
||||
- 'Yes'
|
||||
- 'No'
|
||||
validations:
|
||||
required: true
|
||||
- type: dropdown
|
||||
id: fmcs-location
|
||||
attributes:
|
||||
label: If you have full multiple company support enabled, do you have location scoping to company enabled?
|
||||
description: You can check this in your Snipe-IT installation at `Admin Settings > General Settings > Scoping`.
|
||||
options:
|
||||
- 'Yes'
|
||||
- 'No'
|
||||
- I do not have full multiple company support enabled
|
||||
validations:
|
||||
required: true
|
||||
- type: textarea
|
||||
id: server-logs
|
||||
attributes:
|
||||
|
||||
@@ -1,10 +1,11 @@
|
||||
frontend: ["*.js", "*.css", "*.vue", "*.scss", "*.less", "*.blade.*", "resources/views/livewire/*"]
|
||||
frontend: ["*.js", "*.css", "*.scss", "*.less", "*.blade.*", "resources/views/livewire/*","resources/views/layouts/default.blade.php"]
|
||||
skins: ["*.js", "*.css", "*.scss", "*.less"]
|
||||
css: ["*.css","*.scss", "*.less"]
|
||||
javascript: ["*.js", "package.json", "package.lock"]
|
||||
backend: ["/app/*", "composer.json", "composer.lock"]
|
||||
translations: ["/resources/lang"]
|
||||
translations: ["/resources/lang/*"]
|
||||
livewire: ["/app/Http/Livewire/*", "resources/views/livewire/*"]
|
||||
blade-components: ["resources/views/blade/*"]
|
||||
backups: ["*backup*"]
|
||||
restore: ["*restore*"]
|
||||
saml: ["*saml*"]
|
||||
@@ -16,7 +17,7 @@ api: ["/app/Http/Controllers/Api/*"]
|
||||
notifications: ["/app/Notifications/*"]
|
||||
importer: ["/app/Importer/*","/app/Http/Livewire/Importer.php", "resources/views/livewire/importer.php"]
|
||||
cli / artisan: ["/app/Console/*"]
|
||||
LDAP: ["*Ldap*", "/app/Console/Commands/Ldap*","/app/Models/Ldap.php"]
|
||||
LDAP: ["*Ldap*", "/app/Console/Commands/Ldap*","/app/Models/Ldap.php", "/resources/views/users/ldap.blade.php","/resources/views/settings/ldap.blade.php"]
|
||||
docker: ["*docker/*", "Dockerfile", "Dockerfile.alpine", "Dockerfile.fpm-alpine", ".dockerignore", ".env.docker"]
|
||||
tests: ["/tests/*", "/database/factories/*", "/stubs"]
|
||||
config: .github
|
||||
|
||||
@@ -26,14 +26,14 @@ jobs:
|
||||
language: [ 'javascript' ]
|
||||
steps:
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v5
|
||||
uses: actions/checkout@v6
|
||||
|
||||
# Initializes the CodeQL tools for scanning.
|
||||
- name: Initialize CodeQL
|
||||
uses: github/codeql-action/init@v3
|
||||
uses: github/codeql-action/init@v4
|
||||
with:
|
||||
languages: ${{ matrix.language }}
|
||||
- name: Autobuild
|
||||
uses: github/codeql-action/autobuild@v3
|
||||
uses: github/codeql-action/autobuild@v4
|
||||
- name: Perform CodeQL Analysis
|
||||
uses: github/codeql-action/analyze@v3
|
||||
uses: github/codeql-action/analyze@v4
|
||||
|
||||
@@ -32,7 +32,7 @@ jobs:
|
||||
steps:
|
||||
# Checkout the repository to the GitHub Actions runner
|
||||
- name: Checkout code
|
||||
uses: actions/checkout@v5
|
||||
uses: actions/checkout@v6
|
||||
|
||||
# Execute Codacy Analysis CLI and generate a SARIF output with the security issues identified during the analysis
|
||||
- name: Run Codacy Analysis CLI
|
||||
@@ -52,6 +52,6 @@ jobs:
|
||||
|
||||
# Upload the SARIF file generated in the previous step
|
||||
- name: Upload SARIF results file
|
||||
uses: github/codeql-action/upload-sarif@v3
|
||||
uses: github/codeql-action/upload-sarif@v4
|
||||
with:
|
||||
sarif_file: results.sarif
|
||||
|
||||
@@ -9,7 +9,7 @@ jobs:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v5
|
||||
uses: actions/checkout@v6
|
||||
|
||||
- name: Crowdin push
|
||||
uses: crowdin/github-action@v2
|
||||
|
||||
@@ -42,7 +42,7 @@ jobs:
|
||||
steps:
|
||||
# https://github.com/actions/checkout
|
||||
- name: Checkout codebase
|
||||
uses: actions/checkout@v5
|
||||
uses: actions/checkout@v6
|
||||
|
||||
# https://github.com/docker/setup-buildx-action
|
||||
- name: Setup Docker Buildx
|
||||
|
||||
@@ -42,7 +42,7 @@ jobs:
|
||||
steps:
|
||||
# https://github.com/actions/checkout
|
||||
- name: Checkout codebase
|
||||
uses: actions/checkout@v5
|
||||
uses: actions/checkout@v6
|
||||
|
||||
# https://github.com/docker/setup-buildx-action
|
||||
- name: Setup Docker Buildx
|
||||
|
||||
@@ -11,7 +11,7 @@ jobs:
|
||||
dockerHubDescription:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v5
|
||||
- uses: actions/checkout@v6
|
||||
|
||||
- name: Docker Hub Description
|
||||
uses: grokability/dockerhub-description@7ea9d275c7cdbe2b676a093a0308c50665e3b8b4
|
||||
|
||||
@@ -37,13 +37,13 @@ jobs:
|
||||
php-version: "${{ matrix.php-version }}"
|
||||
coverage: none
|
||||
|
||||
- uses: actions/checkout@v5
|
||||
- uses: actions/checkout@v6
|
||||
|
||||
- name: Get Composer Cache Directory
|
||||
id: composer-cache
|
||||
run: |
|
||||
echo "dir=$(composer config cache-files-dir)" >> $GITHUB_OUTPUT
|
||||
- uses: actions/cache@v4
|
||||
- uses: actions/cache@v5
|
||||
with:
|
||||
path: ${{ steps.composer-cache.outputs.dir }}
|
||||
key: ${{ runner.os }}-${{ matrix.php-version }}-composer-${{ hashFiles('**/composer.lock') }}
|
||||
@@ -82,7 +82,7 @@ jobs:
|
||||
|
||||
- name: Upload Laravel logs as artifacts
|
||||
if: always()
|
||||
uses: actions/upload-artifact@v4
|
||||
uses: actions/upload-artifact@v7
|
||||
with:
|
||||
name: laravel-logs-php-${{ matrix.php-version }}-run-${{ github.run_attempt }}
|
||||
path: |
|
||||
|
||||
@@ -34,13 +34,13 @@ jobs:
|
||||
php-version: "${{ matrix.php-version }}"
|
||||
coverage: none
|
||||
|
||||
- uses: actions/checkout@v5
|
||||
- uses: actions/checkout@v6
|
||||
|
||||
- name: Get Composer Cache Directory
|
||||
id: composer-cache
|
||||
run: |
|
||||
echo "dir=$(composer config cache-files-dir)" >> $GITHUB_OUTPUT
|
||||
- uses: actions/cache@v4
|
||||
- uses: actions/cache@v5
|
||||
with:
|
||||
path: ${{ steps.composer-cache.outputs.dir }}
|
||||
key: ${{ runner.os }}-${{ matrix.php-version }}-composer-${{ hashFiles('**/composer.lock') }}
|
||||
@@ -81,7 +81,7 @@ jobs:
|
||||
|
||||
- name: Upload Laravel logs as artifacts
|
||||
if: always()
|
||||
uses: actions/upload-artifact@v4
|
||||
uses: actions/upload-artifact@v7
|
||||
with:
|
||||
name: laravel-logs-php-${{ matrix.php-version }}-run-${{ github.run_attempt }}
|
||||
path: |
|
||||
|
||||
@@ -25,13 +25,13 @@ jobs:
|
||||
php-version: "${{ matrix.php-version }}"
|
||||
coverage: none
|
||||
|
||||
- uses: actions/checkout@v5
|
||||
- uses: actions/checkout@v6
|
||||
|
||||
- name: Get Composer Cache Directory
|
||||
id: composer-cache
|
||||
run: |
|
||||
echo "dir=$(composer config cache-files-dir)" >> $GITHUB_OUTPUT
|
||||
- uses: actions/cache@v4
|
||||
- uses: actions/cache@v5
|
||||
with:
|
||||
path: ${{ steps.composer-cache.outputs.dir }}
|
||||
key: ${{ runner.os }}-${{ matrix.php-version }}-composer-${{ hashFiles('**/composer.lock') }}
|
||||
@@ -67,7 +67,7 @@ jobs:
|
||||
|
||||
- name: Upload Laravel logs as artifacts
|
||||
if: always()
|
||||
uses: actions/upload-artifact@v4
|
||||
uses: actions/upload-artifact@v7
|
||||
with:
|
||||
name: laravel-logs-php-${{ matrix.php-version }}-run-${{ github.run_attempt }}
|
||||
path: |
|
||||
|
||||
@@ -1,4 +0,0 @@
|
||||
# GENERATED. YOU SHOULDN'T MODIFY OR DELETE THIS FILE.
|
||||
# Scribe uses this file to know when you change something manually in your docs.
|
||||
.scribe/intro.md=f325b28dd095cc9f79495c3014b20f70
|
||||
.scribe/auth.md=a1780016c25c90a3c1e981b22cfb10e6
|
||||
@@ -1,7 +0,0 @@
|
||||
# Authenticating requests
|
||||
|
||||
To authenticate requests, include an **`Authorization`** header with the value **`"Bearer your-token"`**.
|
||||
|
||||
All authenticated endpoints are marked with a `requires authentication` badge in the documentation below.
|
||||
|
||||
If your account has API access enabled, you can generate a token by clicking in the top right account menu and clicking <b>API tokens</b>.
|
||||
@@ -1,329 +0,0 @@
|
||||
name: Account
|
||||
description: ''
|
||||
endpoints:
|
||||
-
|
||||
httpMethods:
|
||||
- GET
|
||||
uri: api/v1/account/requests
|
||||
metadata:
|
||||
groupName: Account
|
||||
groupDescription: ''
|
||||
subgroup: ''
|
||||
subgroupDescription: ''
|
||||
title: 'Display Requested Assets'
|
||||
description: ''
|
||||
authenticated: true
|
||||
deprecated: false
|
||||
custom: []
|
||||
headers:
|
||||
Authorization: 'Bearer 6g43cv8PD1aE5beadkZfhV6'
|
||||
Content-Type: application/json
|
||||
Accept: application/json
|
||||
urlParameters: []
|
||||
cleanUrlParameters: []
|
||||
queryParameters: []
|
||||
cleanQueryParameters: []
|
||||
bodyParameters: []
|
||||
cleanBodyParameters: []
|
||||
fileParameters: []
|
||||
responses:
|
||||
-
|
||||
status: 401
|
||||
content: '{"error":"Unauthorized or unauthenticated."}'
|
||||
headers:
|
||||
cache-control: 'max-age=0, must-revalidate, no-cache, no-store, private'
|
||||
content-type: application/json
|
||||
vary: Origin
|
||||
pragma: no-cache
|
||||
expires: 'Sun, 02 Jan 1990 00:00:00 GMT'
|
||||
x-content-type-options: nosniff
|
||||
feature-policy: "accelerometer 'none';autoplay 'none';camera 'none';display-capture 'none';document-domain 'none';encrypted-media 'none';fullscreen 'none';geolocation 'none';sync-xhr 'none';usb 'none';xr-spatial-tracking 'none'"
|
||||
referrer-policy: same-origin
|
||||
content-security-policy: "default-src 'self';style-src 'self' 'unsafe-inline';script-src 'self' 'unsafe-inline' 'unsafe-eval';connect-src 'self';object-src 'none';font-src 'self' data:;img-src 'self' data: https://snipe-it.test https://avatars.githubusercontent.com/u/ https://www.google.com/images/branding/googlelogo/2x/ https://snipe-flysystem-public-test.s3-us-west-2.amazonaws.com https://secure.gravatar.com http://gravatar.com maps.google.com maps.gstatic.com *.googleapis.com"
|
||||
set-cookie: 'snipe-dev_local=qIWm6chVMaJXUcKG9E8EHhnb7F9wQT14AjEraiFE; expires=Sat, 18 Oct 2025 20:42:51 GMT; Max-Age=720000; path=/; secure; httponly; samesite=lax'
|
||||
description: null
|
||||
custom: []
|
||||
responseFields: []
|
||||
auth:
|
||||
- headers
|
||||
- Authorization
|
||||
- 'Bearer 6g43cv8PD1aE5beadkZfhV6'
|
||||
controller: null
|
||||
method: null
|
||||
route: null
|
||||
custom: []
|
||||
-
|
||||
httpMethods:
|
||||
- GET
|
||||
uri: api/v1/account/eulas
|
||||
metadata:
|
||||
groupName: Account
|
||||
groupDescription: ''
|
||||
subgroup: ''
|
||||
subgroupDescription: ''
|
||||
title: 'Display Accepted EULAs'
|
||||
description: ''
|
||||
authenticated: true
|
||||
deprecated: false
|
||||
custom: []
|
||||
headers:
|
||||
Authorization: 'Bearer 6g43cv8PD1aE5beadkZfhV6'
|
||||
Content-Type: application/json
|
||||
Accept: application/json
|
||||
urlParameters: []
|
||||
cleanUrlParameters: []
|
||||
queryParameters: []
|
||||
cleanQueryParameters: []
|
||||
bodyParameters: []
|
||||
cleanBodyParameters: []
|
||||
fileParameters: []
|
||||
responses:
|
||||
-
|
||||
status: 401
|
||||
content: '{"error":"Unauthorized or unauthenticated."}'
|
||||
headers:
|
||||
cache-control: 'max-age=0, must-revalidate, no-cache, no-store, private'
|
||||
content-type: application/json
|
||||
vary: Origin
|
||||
pragma: no-cache
|
||||
expires: 'Sun, 02 Jan 1990 00:00:00 GMT'
|
||||
x-content-type-options: nosniff
|
||||
feature-policy: "accelerometer 'none';autoplay 'none';camera 'none';display-capture 'none';document-domain 'none';encrypted-media 'none';fullscreen 'none';geolocation 'none';sync-xhr 'none';usb 'none';xr-spatial-tracking 'none'"
|
||||
referrer-policy: same-origin
|
||||
content-security-policy: "default-src 'self';style-src 'self' 'unsafe-inline';script-src 'self' 'unsafe-inline' 'unsafe-eval';connect-src 'self';object-src 'none';font-src 'self' data:;img-src 'self' data: https://snipe-it.test https://avatars.githubusercontent.com/u/ https://www.google.com/images/branding/googlelogo/2x/ https://snipe-flysystem-public-test.s3-us-west-2.amazonaws.com https://secure.gravatar.com http://gravatar.com maps.google.com maps.gstatic.com *.googleapis.com"
|
||||
set-cookie: 'snipe-dev_local=nhItaWioeRLO0dKBgjno1X73ttHn50uXRQ7L7BAc; expires=Sat, 18 Oct 2025 20:42:51 GMT; Max-Age=720000; path=/; secure; httponly; samesite=lax'
|
||||
description: null
|
||||
custom: []
|
||||
responseFields: []
|
||||
auth:
|
||||
- headers
|
||||
- Authorization
|
||||
- 'Bearer 6g43cv8PD1aE5beadkZfhV6'
|
||||
controller: null
|
||||
method: null
|
||||
route: null
|
||||
custom: []
|
||||
-
|
||||
httpMethods:
|
||||
- POST
|
||||
uri: 'api/v1/account/request/{asset_id}'
|
||||
metadata:
|
||||
groupName: Account
|
||||
groupDescription: ''
|
||||
subgroup: ''
|
||||
subgroupDescription: ''
|
||||
title: 'Store Asset Request'
|
||||
description: ''
|
||||
authenticated: true
|
||||
deprecated: false
|
||||
custom: []
|
||||
headers:
|
||||
Authorization: 'Bearer 6g43cv8PD1aE5beadkZfhV6'
|
||||
Content-Type: application/json
|
||||
Accept: application/json
|
||||
urlParameters:
|
||||
asset_id:
|
||||
name: asset_id
|
||||
description: 'The ID of the asset.'
|
||||
required: true
|
||||
example: 1
|
||||
type: integer
|
||||
enumValues: []
|
||||
exampleWasSpecified: false
|
||||
nullable: false
|
||||
custom: []
|
||||
cleanUrlParameters:
|
||||
asset_id: 1
|
||||
queryParameters: []
|
||||
cleanQueryParameters: []
|
||||
bodyParameters: []
|
||||
cleanBodyParameters: []
|
||||
fileParameters: []
|
||||
responses: []
|
||||
responseFields: []
|
||||
auth:
|
||||
- headers
|
||||
- Authorization
|
||||
- 'Bearer 6g43cv8PD1aE5beadkZfhV6'
|
||||
controller: null
|
||||
method: null
|
||||
route: null
|
||||
custom: []
|
||||
-
|
||||
httpMethods:
|
||||
- POST
|
||||
uri: 'api/v1/account/request/{asset_id}/cancel'
|
||||
metadata:
|
||||
groupName: Account
|
||||
groupDescription: ''
|
||||
subgroup: ''
|
||||
subgroupDescription: ''
|
||||
title: 'Cancel Asset Request'
|
||||
description: ''
|
||||
authenticated: true
|
||||
deprecated: false
|
||||
custom: []
|
||||
headers:
|
||||
Authorization: 'Bearer 6g43cv8PD1aE5beadkZfhV6'
|
||||
Content-Type: application/json
|
||||
Accept: application/json
|
||||
urlParameters:
|
||||
asset_id:
|
||||
name: asset_id
|
||||
description: 'The ID of the asset.'
|
||||
required: true
|
||||
example: 1
|
||||
type: integer
|
||||
enumValues: []
|
||||
exampleWasSpecified: false
|
||||
nullable: false
|
||||
custom: []
|
||||
cleanUrlParameters:
|
||||
asset_id: 1
|
||||
queryParameters: []
|
||||
cleanQueryParameters: []
|
||||
bodyParameters: []
|
||||
cleanBodyParameters: []
|
||||
fileParameters: []
|
||||
responses: []
|
||||
responseFields: []
|
||||
auth:
|
||||
- headers
|
||||
- Authorization
|
||||
- 'Bearer 6g43cv8PD1aE5beadkZfhV6'
|
||||
controller: null
|
||||
method: null
|
||||
route: null
|
||||
custom: []
|
||||
-
|
||||
httpMethods:
|
||||
- POST
|
||||
uri: api/v1/account/personal-access-tokens
|
||||
metadata:
|
||||
groupName: Account
|
||||
groupDescription: ''
|
||||
subgroup: ''
|
||||
subgroupDescription: ''
|
||||
title: 'Create API token'
|
||||
description: ''
|
||||
authenticated: true
|
||||
deprecated: false
|
||||
custom: []
|
||||
headers:
|
||||
Authorization: 'Bearer 6g43cv8PD1aE5beadkZfhV6'
|
||||
Content-Type: application/json
|
||||
Accept: application/json
|
||||
urlParameters: []
|
||||
cleanUrlParameters: []
|
||||
queryParameters: []
|
||||
cleanQueryParameters: []
|
||||
bodyParameters: []
|
||||
cleanBodyParameters: []
|
||||
fileParameters: []
|
||||
responses: []
|
||||
responseFields: []
|
||||
auth:
|
||||
- headers
|
||||
- Authorization
|
||||
- 'Bearer 6g43cv8PD1aE5beadkZfhV6'
|
||||
controller: null
|
||||
method: null
|
||||
route: null
|
||||
custom: []
|
||||
-
|
||||
httpMethods:
|
||||
- GET
|
||||
uri: api/v1/account/personal-access-tokens
|
||||
metadata:
|
||||
groupName: Account
|
||||
groupDescription: ''
|
||||
subgroup: ''
|
||||
subgroupDescription: ''
|
||||
title: 'Show API tokens'
|
||||
description: ''
|
||||
authenticated: true
|
||||
deprecated: false
|
||||
custom: []
|
||||
headers:
|
||||
Authorization: 'Bearer 6g43cv8PD1aE5beadkZfhV6'
|
||||
Content-Type: application/json
|
||||
Accept: application/json
|
||||
urlParameters: []
|
||||
cleanUrlParameters: []
|
||||
queryParameters: []
|
||||
cleanQueryParameters: []
|
||||
bodyParameters: []
|
||||
cleanBodyParameters: []
|
||||
fileParameters: []
|
||||
responses:
|
||||
-
|
||||
status: 401
|
||||
content: '{"error":"Unauthorized or unauthenticated."}'
|
||||
headers:
|
||||
cache-control: 'max-age=0, must-revalidate, no-cache, no-store, private'
|
||||
content-type: application/json
|
||||
vary: Origin
|
||||
pragma: no-cache
|
||||
expires: 'Sun, 02 Jan 1990 00:00:00 GMT'
|
||||
x-content-type-options: nosniff
|
||||
feature-policy: "accelerometer 'none';autoplay 'none';camera 'none';display-capture 'none';document-domain 'none';encrypted-media 'none';fullscreen 'none';geolocation 'none';sync-xhr 'none';usb 'none';xr-spatial-tracking 'none'"
|
||||
referrer-policy: same-origin
|
||||
content-security-policy: "default-src 'self';style-src 'self' 'unsafe-inline';script-src 'self' 'unsafe-inline' 'unsafe-eval';connect-src 'self';object-src 'none';font-src 'self' data:;img-src 'self' data: https://snipe-it.test https://avatars.githubusercontent.com/u/ https://www.google.com/images/branding/googlelogo/2x/ https://snipe-flysystem-public-test.s3-us-west-2.amazonaws.com https://secure.gravatar.com http://gravatar.com maps.google.com maps.gstatic.com *.googleapis.com"
|
||||
set-cookie: 'snipe-dev_local=yUjH3zpUXM18qZVCvvVEp1y5zfNNok8NctCrwGof; expires=Sat, 18 Oct 2025 20:42:51 GMT; Max-Age=720000; path=/; secure; httponly; samesite=lax'
|
||||
description: null
|
||||
custom: []
|
||||
responseFields: []
|
||||
auth:
|
||||
- headers
|
||||
- Authorization
|
||||
- 'Bearer 6g43cv8PD1aE5beadkZfhV6'
|
||||
controller: null
|
||||
method: null
|
||||
route: null
|
||||
custom: []
|
||||
-
|
||||
httpMethods:
|
||||
- DELETE
|
||||
uri: 'api/v1/account/personal-access-tokens/{tokenId}'
|
||||
metadata:
|
||||
groupName: Account
|
||||
groupDescription: ''
|
||||
subgroup: ''
|
||||
subgroupDescription: ''
|
||||
title: 'Delete API token'
|
||||
description: ''
|
||||
authenticated: true
|
||||
deprecated: false
|
||||
custom: []
|
||||
headers:
|
||||
Authorization: 'Bearer 6g43cv8PD1aE5beadkZfhV6'
|
||||
Content-Type: application/json
|
||||
Accept: application/json
|
||||
urlParameters:
|
||||
tokenId:
|
||||
name: tokenId
|
||||
description: ''
|
||||
required: true
|
||||
example: architecto
|
||||
type: string
|
||||
enumValues: []
|
||||
exampleWasSpecified: false
|
||||
nullable: false
|
||||
custom: []
|
||||
cleanUrlParameters:
|
||||
tokenId: architecto
|
||||
queryParameters: []
|
||||
cleanQueryParameters: []
|
||||
bodyParameters: []
|
||||
cleanBodyParameters: []
|
||||
fileParameters: []
|
||||
responses: []
|
||||
responseFields: []
|
||||
auth:
|
||||
- headers
|
||||
- Authorization
|
||||
- 'Bearer 6g43cv8PD1aE5beadkZfhV6'
|
||||
controller: null
|
||||
method: null
|
||||
route: null
|
||||
custom: []
|
||||
File diff suppressed because it is too large
Load Diff
@@ -1,636 +0,0 @@
|
||||
name: Accessories
|
||||
description: ''
|
||||
endpoints:
|
||||
-
|
||||
httpMethods:
|
||||
- GET
|
||||
uri: 'api/v1/accessories/{accessory}/checkedout'
|
||||
metadata:
|
||||
groupName: Accessories
|
||||
groupDescription: ''
|
||||
subgroup: ''
|
||||
subgroupDescription: ''
|
||||
title: 'Show Accessory Checkouts'
|
||||
description: ''
|
||||
authenticated: true
|
||||
deprecated: false
|
||||
custom: []
|
||||
headers:
|
||||
Authorization: 'Bearer 6g43cv8PD1aE5beadkZfhV6'
|
||||
Content-Type: application/json
|
||||
Accept: application/json
|
||||
urlParameters:
|
||||
accessory:
|
||||
name: accessory
|
||||
description: 'The accessory.'
|
||||
required: true
|
||||
example: 1
|
||||
type: integer
|
||||
enumValues: []
|
||||
exampleWasSpecified: false
|
||||
nullable: false
|
||||
custom: []
|
||||
cleanUrlParameters:
|
||||
accessory: 1
|
||||
queryParameters: []
|
||||
cleanQueryParameters: []
|
||||
bodyParameters: []
|
||||
cleanBodyParameters: []
|
||||
fileParameters: []
|
||||
responses:
|
||||
-
|
||||
status: 401
|
||||
content: '{"error":"Unauthorized or unauthenticated."}'
|
||||
headers:
|
||||
cache-control: 'max-age=0, must-revalidate, no-cache, no-store, private'
|
||||
content-type: application/json
|
||||
vary: Origin
|
||||
pragma: no-cache
|
||||
expires: 'Sun, 02 Jan 1990 00:00:00 GMT'
|
||||
x-content-type-options: nosniff
|
||||
feature-policy: "accelerometer 'none';autoplay 'none';camera 'none';display-capture 'none';document-domain 'none';encrypted-media 'none';fullscreen 'none';geolocation 'none';sync-xhr 'none';usb 'none';xr-spatial-tracking 'none'"
|
||||
referrer-policy: same-origin
|
||||
content-security-policy: "default-src 'self';style-src 'self' 'unsafe-inline';script-src 'self' 'unsafe-inline' 'unsafe-eval';connect-src 'self';object-src 'none';font-src 'self' data:;img-src 'self' data: https://snipe-it.test https://avatars.githubusercontent.com/u/ https://www.google.com/images/branding/googlelogo/2x/ https://snipe-flysystem-public-test.s3-us-west-2.amazonaws.com https://secure.gravatar.com http://gravatar.com maps.google.com maps.gstatic.com *.googleapis.com"
|
||||
set-cookie: 'snipe-dev_local=QwqPH3txF8T3F17zuocUxlzlAourAOPvfWbLeuj9; expires=Sat, 18 Oct 2025 20:42:51 GMT; Max-Age=720000; path=/; secure; httponly; samesite=lax'
|
||||
description: null
|
||||
custom: []
|
||||
responseFields: []
|
||||
auth:
|
||||
- headers
|
||||
- Authorization
|
||||
- 'Bearer 6g43cv8PD1aE5beadkZfhV6'
|
||||
controller: null
|
||||
method: null
|
||||
route: null
|
||||
custom: []
|
||||
-
|
||||
httpMethods:
|
||||
- POST
|
||||
uri: 'api/v1/accessories/{accessory_id}/checkout'
|
||||
metadata:
|
||||
groupName: Accessories
|
||||
groupDescription: ''
|
||||
subgroup: ''
|
||||
subgroupDescription: ''
|
||||
title: 'Checkout Accessory'
|
||||
description: |-
|
||||
If Slack is enabled and/or asset acceptance is enabled, it will also
|
||||
trigger a Slack message and send an email.
|
||||
authenticated: true
|
||||
deprecated: false
|
||||
custom: []
|
||||
headers:
|
||||
Authorization: 'Bearer 6g43cv8PD1aE5beadkZfhV6'
|
||||
Content-Type: application/json
|
||||
Accept: application/json
|
||||
urlParameters:
|
||||
accessory_id:
|
||||
name: accessory_id
|
||||
description: 'The ID of the accessory.'
|
||||
required: true
|
||||
example: 1
|
||||
type: integer
|
||||
enumValues: []
|
||||
exampleWasSpecified: false
|
||||
nullable: false
|
||||
custom: []
|
||||
cleanUrlParameters:
|
||||
accessory_id: 1
|
||||
queryParameters: []
|
||||
cleanQueryParameters: []
|
||||
bodyParameters: []
|
||||
cleanBodyParameters: []
|
||||
fileParameters: []
|
||||
responses: []
|
||||
responseFields: []
|
||||
auth:
|
||||
- headers
|
||||
- Authorization
|
||||
- 'Bearer 6g43cv8PD1aE5beadkZfhV6'
|
||||
controller: null
|
||||
method: null
|
||||
route: null
|
||||
custom: []
|
||||
-
|
||||
httpMethods:
|
||||
- POST
|
||||
uri: 'api/v1/accessories/{accessory}/checkin'
|
||||
metadata:
|
||||
groupName: Accessories
|
||||
groupDescription: ''
|
||||
subgroup: ''
|
||||
subgroupDescription: ''
|
||||
title: 'Checkin Accessory'
|
||||
description: ''
|
||||
authenticated: true
|
||||
deprecated: false
|
||||
custom: []
|
||||
headers:
|
||||
Authorization: 'Bearer 6g43cv8PD1aE5beadkZfhV6'
|
||||
Content-Type: application/json
|
||||
Accept: application/json
|
||||
urlParameters:
|
||||
accessory:
|
||||
name: accessory
|
||||
description: 'The accessory.'
|
||||
required: true
|
||||
example: 1
|
||||
type: integer
|
||||
enumValues: []
|
||||
exampleWasSpecified: false
|
||||
nullable: false
|
||||
custom: []
|
||||
cleanUrlParameters:
|
||||
accessory: 1
|
||||
queryParameters: []
|
||||
cleanQueryParameters: []
|
||||
bodyParameters: []
|
||||
cleanBodyParameters: []
|
||||
fileParameters: []
|
||||
responses: []
|
||||
responseFields: []
|
||||
auth:
|
||||
- headers
|
||||
- Authorization
|
||||
- 'Bearer 6g43cv8PD1aE5beadkZfhV6'
|
||||
controller: null
|
||||
method: null
|
||||
route: null
|
||||
custom: []
|
||||
-
|
||||
httpMethods:
|
||||
- GET
|
||||
uri: api/v1/accessories/selectlist
|
||||
metadata:
|
||||
groupName: Accessories
|
||||
groupDescription: ''
|
||||
subgroup: ''
|
||||
subgroupDescription: ''
|
||||
title: Selectlist
|
||||
description: ''
|
||||
authenticated: true
|
||||
deprecated: false
|
||||
custom: []
|
||||
headers:
|
||||
Authorization: 'Bearer 6g43cv8PD1aE5beadkZfhV6'
|
||||
Content-Type: application/json
|
||||
Accept: application/json
|
||||
urlParameters: []
|
||||
cleanUrlParameters: []
|
||||
queryParameters:
|
||||
search:
|
||||
name: search
|
||||
description: 'A search term to filter results by name.'
|
||||
required: false
|
||||
example: null
|
||||
type: string
|
||||
enumValues: []
|
||||
exampleWasSpecified: false
|
||||
nullable: false
|
||||
custom: []
|
||||
cleanQueryParameters: []
|
||||
bodyParameters: []
|
||||
cleanBodyParameters: []
|
||||
fileParameters: []
|
||||
responses:
|
||||
-
|
||||
status: 401
|
||||
content: '{"error":"Unauthorized or unauthenticated."}'
|
||||
headers:
|
||||
cache-control: 'max-age=0, must-revalidate, no-cache, no-store, private'
|
||||
content-type: application/json
|
||||
vary: Origin
|
||||
pragma: no-cache
|
||||
expires: 'Sun, 02 Jan 1990 00:00:00 GMT'
|
||||
x-content-type-options: nosniff
|
||||
feature-policy: "accelerometer 'none';autoplay 'none';camera 'none';display-capture 'none';document-domain 'none';encrypted-media 'none';fullscreen 'none';geolocation 'none';sync-xhr 'none';usb 'none';xr-spatial-tracking 'none'"
|
||||
referrer-policy: same-origin
|
||||
content-security-policy: "default-src 'self';style-src 'self' 'unsafe-inline';script-src 'self' 'unsafe-inline' 'unsafe-eval';connect-src 'self';object-src 'none';font-src 'self' data:;img-src 'self' data: https://snipe-it.test https://avatars.githubusercontent.com/u/ https://www.google.com/images/branding/googlelogo/2x/ https://snipe-flysystem-public-test.s3-us-west-2.amazonaws.com https://secure.gravatar.com http://gravatar.com maps.google.com maps.gstatic.com *.googleapis.com"
|
||||
set-cookie: 'snipe-dev_local=kCGqdKxExAZopEwv7oy5l7SRnyqXXXDCU5Jyu7jU; expires=Sat, 18 Oct 2025 20:42:51 GMT; Max-Age=720000; path=/; secure; httponly; samesite=lax'
|
||||
description: null
|
||||
custom: []
|
||||
responseFields: []
|
||||
auth:
|
||||
- headers
|
||||
- Authorization
|
||||
- 'Bearer 6g43cv8PD1aE5beadkZfhV6'
|
||||
controller: null
|
||||
method: null
|
||||
route: null
|
||||
custom: []
|
||||
-
|
||||
httpMethods:
|
||||
- GET
|
||||
uri: api/v1/accessories
|
||||
metadata:
|
||||
groupName: Accessories
|
||||
groupDescription: ''
|
||||
subgroup: ''
|
||||
subgroupDescription: ''
|
||||
title: 'List accessories'
|
||||
description: ''
|
||||
authenticated: true
|
||||
deprecated: false
|
||||
custom: []
|
||||
headers:
|
||||
Authorization: 'Bearer 6g43cv8PD1aE5beadkZfhV6'
|
||||
Content-Type: application/json
|
||||
Accept: application/json
|
||||
urlParameters: []
|
||||
cleanUrlParameters: []
|
||||
queryParameters:
|
||||
search:
|
||||
name: search
|
||||
description: 'A search term to filter results by.'
|
||||
required: false
|
||||
example: keyboard
|
||||
type: string
|
||||
enumValues: []
|
||||
exampleWasSpecified: true
|
||||
nullable: false
|
||||
custom: []
|
||||
'filter[<fieldname>]':
|
||||
name: 'filter[<fieldname>]'
|
||||
description: 'A field to filter by. Example'
|
||||
required: false
|
||||
example: architecto
|
||||
type: string
|
||||
enumValues: []
|
||||
exampleWasSpecified: false
|
||||
nullable: false
|
||||
custom: []
|
||||
company_id:
|
||||
name: company_id
|
||||
description: 'Filter by company ID.'
|
||||
required: false
|
||||
example: 1
|
||||
type: integer
|
||||
enumValues: []
|
||||
exampleWasSpecified: true
|
||||
nullable: false
|
||||
custom: []
|
||||
category_id:
|
||||
name: category_id
|
||||
description: 'Filter by category ID.'
|
||||
required: false
|
||||
example: 1
|
||||
type: integer
|
||||
enumValues: []
|
||||
exampleWasSpecified: true
|
||||
nullable: false
|
||||
custom: []
|
||||
manufacturer_id:
|
||||
name: manufacturer_id
|
||||
description: 'Filter by manufacturer ID.'
|
||||
required: false
|
||||
example: 1
|
||||
type: integer
|
||||
enumValues: []
|
||||
exampleWasSpecified: true
|
||||
nullable: false
|
||||
custom: []
|
||||
supplier_id:
|
||||
name: supplier_id
|
||||
description: 'Filter by supplier ID.'
|
||||
required: false
|
||||
example: 1
|
||||
type: integer
|
||||
enumValues: []
|
||||
exampleWasSpecified: true
|
||||
nullable: false
|
||||
custom: []
|
||||
location_id:
|
||||
name: location_id
|
||||
description: 'Filter by location ID.'
|
||||
required: false
|
||||
example: 1
|
||||
type: integer
|
||||
enumValues: []
|
||||
exampleWasSpecified: true
|
||||
nullable: false
|
||||
custom: []
|
||||
notes:
|
||||
name: notes
|
||||
description: 'Filter by notes.'
|
||||
required: false
|
||||
example: 'For office use only'
|
||||
type: string
|
||||
enumValues: []
|
||||
exampleWasSpecified: true
|
||||
nullable: false
|
||||
custom: []
|
||||
offset:
|
||||
name: offset
|
||||
description: 'The number of items to skip before starting to collect the result set.'
|
||||
required: false
|
||||
example: 0
|
||||
type: integer
|
||||
enumValues: []
|
||||
exampleWasSpecified: true
|
||||
nullable: false
|
||||
custom: []
|
||||
limit:
|
||||
name: limit
|
||||
description: 'The number of items to return.'
|
||||
required: false
|
||||
example: 50
|
||||
type: integer
|
||||
enumValues: []
|
||||
exampleWasSpecified: true
|
||||
nullable: false
|
||||
custom: []
|
||||
sort:
|
||||
name: sort
|
||||
description: 'The field to sort by.'
|
||||
required: false
|
||||
example: created_at
|
||||
type: string
|
||||
enumValues: []
|
||||
exampleWasSpecified: true
|
||||
nullable: false
|
||||
custom: []
|
||||
order:
|
||||
name: order
|
||||
description: 'The order to sort by.'
|
||||
required: false
|
||||
example: desc
|
||||
type: string
|
||||
enumValues: []
|
||||
exampleWasSpecified: true
|
||||
nullable: false
|
||||
custom: []
|
||||
cleanQueryParameters:
|
||||
search: keyboard
|
||||
'filter[<fieldname>]': architecto
|
||||
company_id: 1
|
||||
category_id: 1
|
||||
manufacturer_id: 1
|
||||
supplier_id: 1
|
||||
location_id: 1
|
||||
notes: 'For office use only'
|
||||
offset: 0
|
||||
limit: 50
|
||||
sort: created_at
|
||||
order: desc
|
||||
bodyParameters: []
|
||||
cleanBodyParameters: []
|
||||
fileParameters: []
|
||||
responses:
|
||||
-
|
||||
status: 401
|
||||
content: '{"error":"Unauthorized or unauthenticated."}'
|
||||
headers:
|
||||
cache-control: 'max-age=0, must-revalidate, no-cache, no-store, private'
|
||||
content-type: application/json
|
||||
vary: Origin
|
||||
pragma: no-cache
|
||||
expires: 'Sun, 02 Jan 1990 00:00:00 GMT'
|
||||
x-content-type-options: nosniff
|
||||
feature-policy: "accelerometer 'none';autoplay 'none';camera 'none';display-capture 'none';document-domain 'none';encrypted-media 'none';fullscreen 'none';geolocation 'none';sync-xhr 'none';usb 'none';xr-spatial-tracking 'none'"
|
||||
referrer-policy: same-origin
|
||||
content-security-policy: "default-src 'self';style-src 'self' 'unsafe-inline';script-src 'self' 'unsafe-inline' 'unsafe-eval';connect-src 'self';object-src 'none';font-src 'self' data:;img-src 'self' data: https://snipe-it.test https://avatars.githubusercontent.com/u/ https://www.google.com/images/branding/googlelogo/2x/ https://snipe-flysystem-public-test.s3-us-west-2.amazonaws.com https://secure.gravatar.com http://gravatar.com maps.google.com maps.gstatic.com *.googleapis.com"
|
||||
set-cookie: 'snipe-dev_local=2HABGaRbPqMGeiNPKWTPnN0AwM4t7W2yN4TFOJqm; expires=Sat, 18 Oct 2025 20:42:52 GMT; Max-Age=720000; path=/; secure; httponly; samesite=lax'
|
||||
description: null
|
||||
custom: []
|
||||
responseFields: []
|
||||
auth:
|
||||
- headers
|
||||
- Authorization
|
||||
- 'Bearer 6g43cv8PD1aE5beadkZfhV6'
|
||||
controller: null
|
||||
method: null
|
||||
route: null
|
||||
custom: []
|
||||
-
|
||||
httpMethods:
|
||||
- POST
|
||||
uri: api/v1/accessories
|
||||
metadata:
|
||||
groupName: Accessories
|
||||
groupDescription: ''
|
||||
subgroup: ''
|
||||
subgroupDescription: ''
|
||||
title: 'Create Accessory'
|
||||
description: ''
|
||||
authenticated: true
|
||||
deprecated: false
|
||||
custom: []
|
||||
headers:
|
||||
Authorization: 'Bearer 6g43cv8PD1aE5beadkZfhV6'
|
||||
Content-Type: application/json
|
||||
Accept: application/json
|
||||
urlParameters: []
|
||||
cleanUrlParameters: []
|
||||
queryParameters: []
|
||||
cleanQueryParameters: []
|
||||
bodyParameters:
|
||||
name:
|
||||
name: name
|
||||
description: 'The name of the accessory.'
|
||||
required: true
|
||||
example: 'Apple Bluetooth Keyboard'
|
||||
type: string
|
||||
enumValues: []
|
||||
exampleWasSpecified: true
|
||||
nullable: false
|
||||
custom: []
|
||||
qty:
|
||||
name: qty
|
||||
description: 'The number of accessories to create.'
|
||||
required: true
|
||||
example: 10
|
||||
type: integer
|
||||
enumValues: []
|
||||
exampleWasSpecified: true
|
||||
nullable: false
|
||||
custom: []
|
||||
category_id:
|
||||
name: category_id
|
||||
description: 'The ID of the category to assign this accessory to.'
|
||||
required: true
|
||||
example: 1
|
||||
type: integer
|
||||
enumValues: []
|
||||
exampleWasSpecified: true
|
||||
nullable: false
|
||||
custom: []
|
||||
image:
|
||||
name: image
|
||||
description: ''
|
||||
required: false
|
||||
example: null
|
||||
type: file
|
||||
enumValues: []
|
||||
exampleWasSpecified: false
|
||||
nullable: false
|
||||
custom: []
|
||||
cleanBodyParameters:
|
||||
name: 'Apple Bluetooth Keyboard'
|
||||
qty: 10
|
||||
category_id: 1
|
||||
fileParameters: []
|
||||
responses: []
|
||||
responseFields: []
|
||||
auth:
|
||||
- headers
|
||||
- Authorization
|
||||
- 'Bearer 6g43cv8PD1aE5beadkZfhV6'
|
||||
controller: null
|
||||
method: null
|
||||
route: null
|
||||
custom: []
|
||||
-
|
||||
httpMethods:
|
||||
- GET
|
||||
uri: 'api/v1/accessories/{id}'
|
||||
metadata:
|
||||
groupName: Accessories
|
||||
groupDescription: ''
|
||||
subgroup: ''
|
||||
subgroupDescription: ''
|
||||
title: 'Show Accessory'
|
||||
description: ''
|
||||
authenticated: true
|
||||
deprecated: false
|
||||
custom: []
|
||||
headers:
|
||||
Authorization: 'Bearer 6g43cv8PD1aE5beadkZfhV6'
|
||||
Content-Type: application/json
|
||||
Accept: application/json
|
||||
urlParameters:
|
||||
id:
|
||||
name: id
|
||||
description: 'The ID of the accessory.'
|
||||
required: true
|
||||
example: 1
|
||||
type: integer
|
||||
enumValues: []
|
||||
exampleWasSpecified: false
|
||||
nullable: false
|
||||
custom: []
|
||||
cleanUrlParameters:
|
||||
id: 1
|
||||
queryParameters: []
|
||||
cleanQueryParameters: []
|
||||
bodyParameters: []
|
||||
cleanBodyParameters: []
|
||||
fileParameters: []
|
||||
responses:
|
||||
-
|
||||
status: 401
|
||||
content: '{"error":"Unauthorized or unauthenticated."}'
|
||||
headers:
|
||||
cache-control: 'max-age=0, must-revalidate, no-cache, no-store, private'
|
||||
content-type: application/json
|
||||
vary: Origin
|
||||
pragma: no-cache
|
||||
expires: 'Sun, 02 Jan 1990 00:00:00 GMT'
|
||||
x-content-type-options: nosniff
|
||||
feature-policy: "accelerometer 'none';autoplay 'none';camera 'none';display-capture 'none';document-domain 'none';encrypted-media 'none';fullscreen 'none';geolocation 'none';sync-xhr 'none';usb 'none';xr-spatial-tracking 'none'"
|
||||
referrer-policy: same-origin
|
||||
content-security-policy: "default-src 'self';style-src 'self' 'unsafe-inline';script-src 'self' 'unsafe-inline' 'unsafe-eval';connect-src 'self';object-src 'none';font-src 'self' data:;img-src 'self' data: https://snipe-it.test https://avatars.githubusercontent.com/u/ https://www.google.com/images/branding/googlelogo/2x/ https://snipe-flysystem-public-test.s3-us-west-2.amazonaws.com https://secure.gravatar.com http://gravatar.com maps.google.com maps.gstatic.com *.googleapis.com"
|
||||
set-cookie: 'snipe-dev_local=1Tv5gekmNofKNDwolDkOEcEH9JUfM9rX0PaTFfWI; expires=Sat, 18 Oct 2025 20:42:52 GMT; Max-Age=720000; path=/; secure; httponly; samesite=lax'
|
||||
description: null
|
||||
custom: []
|
||||
responseFields: []
|
||||
auth:
|
||||
- headers
|
||||
- Authorization
|
||||
- 'Bearer 6g43cv8PD1aE5beadkZfhV6'
|
||||
controller: null
|
||||
method: null
|
||||
route: null
|
||||
custom: []
|
||||
-
|
||||
httpMethods:
|
||||
- PUT
|
||||
- PATCH
|
||||
uri: 'api/v1/accessories/{id}'
|
||||
metadata:
|
||||
groupName: Accessories
|
||||
groupDescription: ''
|
||||
subgroup: ''
|
||||
subgroupDescription: ''
|
||||
title: 'Update accessory.'
|
||||
description: ''
|
||||
authenticated: true
|
||||
deprecated: false
|
||||
custom: []
|
||||
headers:
|
||||
Authorization: 'Bearer 6g43cv8PD1aE5beadkZfhV6'
|
||||
Content-Type: application/json
|
||||
Accept: application/json
|
||||
urlParameters:
|
||||
id:
|
||||
name: id
|
||||
description: 'The ID of the accessory.'
|
||||
required: true
|
||||
example: 1
|
||||
type: integer
|
||||
enumValues: []
|
||||
exampleWasSpecified: false
|
||||
nullable: false
|
||||
custom: []
|
||||
cleanUrlParameters:
|
||||
id: 1
|
||||
queryParameters: []
|
||||
cleanQueryParameters: []
|
||||
bodyParameters: []
|
||||
cleanBodyParameters: []
|
||||
fileParameters: []
|
||||
responses: []
|
||||
responseFields: []
|
||||
auth:
|
||||
- headers
|
||||
- Authorization
|
||||
- 'Bearer 6g43cv8PD1aE5beadkZfhV6'
|
||||
controller: null
|
||||
method: null
|
||||
route: null
|
||||
custom: []
|
||||
-
|
||||
httpMethods:
|
||||
- DELETE
|
||||
uri: 'api/v1/accessories/{id}'
|
||||
metadata:
|
||||
groupName: Accessories
|
||||
groupDescription: ''
|
||||
subgroup: ''
|
||||
subgroupDescription: ''
|
||||
title: 'Delete Accessory'
|
||||
description: ''
|
||||
authenticated: true
|
||||
deprecated: false
|
||||
custom: []
|
||||
headers:
|
||||
Authorization: 'Bearer 6g43cv8PD1aE5beadkZfhV6'
|
||||
Content-Type: application/json
|
||||
Accept: application/json
|
||||
urlParameters:
|
||||
id:
|
||||
name: id
|
||||
description: 'The ID of the accessory.'
|
||||
required: true
|
||||
example: 1
|
||||
type: integer
|
||||
enumValues: []
|
||||
exampleWasSpecified: false
|
||||
nullable: false
|
||||
custom: []
|
||||
cleanUrlParameters:
|
||||
id: 1
|
||||
queryParameters: []
|
||||
cleanQueryParameters: []
|
||||
bodyParameters: []
|
||||
cleanBodyParameters: []
|
||||
fileParameters: []
|
||||
responses: []
|
||||
responseFields: []
|
||||
auth:
|
||||
- headers
|
||||
- Authorization
|
||||
- 'Bearer 6g43cv8PD1aE5beadkZfhV6'
|
||||
controller: null
|
||||
method: null
|
||||
route: null
|
||||
custom: []
|
||||
@@ -1,306 +0,0 @@
|
||||
name: Categories
|
||||
description: ''
|
||||
endpoints:
|
||||
-
|
||||
httpMethods:
|
||||
- GET
|
||||
uri: 'api/v1/categories/{item_type}/selectlist'
|
||||
metadata:
|
||||
groupName: Categories
|
||||
groupDescription: ''
|
||||
subgroup: ''
|
||||
subgroupDescription: ''
|
||||
title: Selectlist
|
||||
description: ''
|
||||
authenticated: true
|
||||
deprecated: false
|
||||
custom: []
|
||||
headers:
|
||||
Authorization: 'Bearer 6g43cv8PD1aE5beadkZfhV6'
|
||||
Content-Type: application/json
|
||||
Accept: application/json
|
||||
urlParameters:
|
||||
item_type:
|
||||
name: item_type
|
||||
description: ''
|
||||
required: true
|
||||
example: architecto
|
||||
type: string
|
||||
enumValues: []
|
||||
exampleWasSpecified: false
|
||||
nullable: false
|
||||
custom: []
|
||||
cleanUrlParameters:
|
||||
item_type: architecto
|
||||
queryParameters: []
|
||||
cleanQueryParameters: []
|
||||
bodyParameters: []
|
||||
cleanBodyParameters: []
|
||||
fileParameters: []
|
||||
responses:
|
||||
-
|
||||
status: 401
|
||||
content: '{"error":"Unauthorized or unauthenticated."}'
|
||||
headers:
|
||||
cache-control: 'max-age=0, must-revalidate, no-cache, no-store, private'
|
||||
content-type: application/json
|
||||
vary: Origin
|
||||
pragma: no-cache
|
||||
expires: 'Sun, 02 Jan 1990 00:00:00 GMT'
|
||||
x-content-type-options: nosniff
|
||||
feature-policy: "accelerometer 'none';autoplay 'none';camera 'none';display-capture 'none';document-domain 'none';encrypted-media 'none';fullscreen 'none';geolocation 'none';sync-xhr 'none';usb 'none';xr-spatial-tracking 'none'"
|
||||
referrer-policy: same-origin
|
||||
content-security-policy: "default-src 'self';style-src 'self' 'unsafe-inline';script-src 'self' 'unsafe-inline' 'unsafe-eval';connect-src 'self';object-src 'none';font-src 'self' data:;img-src 'self' data: https://snipe-it.test https://avatars.githubusercontent.com/u/ https://www.google.com/images/branding/googlelogo/2x/ https://snipe-flysystem-public-test.s3-us-west-2.amazonaws.com https://secure.gravatar.com http://gravatar.com maps.google.com maps.gstatic.com *.googleapis.com"
|
||||
set-cookie: 'snipe-dev_local=Wy5FSLyBn1xpLQy08hVrBlmoANJohF4ZIzpEcIZy; expires=Sat, 18 Oct 2025 20:42:52 GMT; Max-Age=720000; path=/; secure; httponly; samesite=lax'
|
||||
description: null
|
||||
custom: []
|
||||
responseFields: []
|
||||
auth:
|
||||
- headers
|
||||
- Authorization
|
||||
- 'Bearer 6g43cv8PD1aE5beadkZfhV6'
|
||||
controller: null
|
||||
method: null
|
||||
route: null
|
||||
custom: []
|
||||
-
|
||||
httpMethods:
|
||||
- GET
|
||||
uri: api/v1/categories
|
||||
metadata:
|
||||
groupName: Categories
|
||||
groupDescription: ''
|
||||
subgroup: ''
|
||||
subgroupDescription: ''
|
||||
title: 'List Categories'
|
||||
description: ''
|
||||
authenticated: true
|
||||
deprecated: false
|
||||
custom: []
|
||||
headers:
|
||||
Authorization: 'Bearer 6g43cv8PD1aE5beadkZfhV6'
|
||||
Content-Type: application/json
|
||||
Accept: application/json
|
||||
urlParameters: []
|
||||
cleanUrlParameters: []
|
||||
queryParameters: []
|
||||
cleanQueryParameters: []
|
||||
bodyParameters: []
|
||||
cleanBodyParameters: []
|
||||
fileParameters: []
|
||||
responses:
|
||||
-
|
||||
status: 401
|
||||
content: '{"error":"Unauthorized or unauthenticated."}'
|
||||
headers:
|
||||
cache-control: 'max-age=0, must-revalidate, no-cache, no-store, private'
|
||||
content-type: application/json
|
||||
vary: Origin
|
||||
pragma: no-cache
|
||||
expires: 'Sun, 02 Jan 1990 00:00:00 GMT'
|
||||
x-content-type-options: nosniff
|
||||
feature-policy: "accelerometer 'none';autoplay 'none';camera 'none';display-capture 'none';document-domain 'none';encrypted-media 'none';fullscreen 'none';geolocation 'none';sync-xhr 'none';usb 'none';xr-spatial-tracking 'none'"
|
||||
referrer-policy: same-origin
|
||||
content-security-policy: "default-src 'self';style-src 'self' 'unsafe-inline';script-src 'self' 'unsafe-inline' 'unsafe-eval';connect-src 'self';object-src 'none';font-src 'self' data:;img-src 'self' data: https://snipe-it.test https://avatars.githubusercontent.com/u/ https://www.google.com/images/branding/googlelogo/2x/ https://snipe-flysystem-public-test.s3-us-west-2.amazonaws.com https://secure.gravatar.com http://gravatar.com maps.google.com maps.gstatic.com *.googleapis.com"
|
||||
set-cookie: 'snipe-dev_local=ErvltKvHZdVobMWCabFa83cWRCOTTtIgAPf7kLWS; expires=Sat, 18 Oct 2025 20:42:52 GMT; Max-Age=720000; path=/; secure; httponly; samesite=lax'
|
||||
description: null
|
||||
custom: []
|
||||
responseFields: []
|
||||
auth:
|
||||
- headers
|
||||
- Authorization
|
||||
- 'Bearer 6g43cv8PD1aE5beadkZfhV6'
|
||||
controller: null
|
||||
method: null
|
||||
route: null
|
||||
custom: []
|
||||
-
|
||||
httpMethods:
|
||||
- POST
|
||||
uri: api/v1/categories
|
||||
metadata:
|
||||
groupName: Categories
|
||||
groupDescription: ''
|
||||
subgroup: ''
|
||||
subgroupDescription: ''
|
||||
title: 'Create Category'
|
||||
description: ''
|
||||
authenticated: true
|
||||
deprecated: false
|
||||
custom: []
|
||||
headers:
|
||||
Authorization: 'Bearer 6g43cv8PD1aE5beadkZfhV6'
|
||||
Content-Type: application/json
|
||||
Accept: application/json
|
||||
urlParameters: []
|
||||
cleanUrlParameters: []
|
||||
queryParameters: []
|
||||
cleanQueryParameters: []
|
||||
bodyParameters: []
|
||||
cleanBodyParameters: []
|
||||
fileParameters: []
|
||||
responses: []
|
||||
responseFields: []
|
||||
auth:
|
||||
- headers
|
||||
- Authorization
|
||||
- 'Bearer 6g43cv8PD1aE5beadkZfhV6'
|
||||
controller: null
|
||||
method: null
|
||||
route: null
|
||||
custom: []
|
||||
-
|
||||
httpMethods:
|
||||
- GET
|
||||
uri: 'api/v1/categories/{id}'
|
||||
metadata:
|
||||
groupName: Categories
|
||||
groupDescription: ''
|
||||
subgroup: ''
|
||||
subgroupDescription: ''
|
||||
title: 'Show Category'
|
||||
description: ''
|
||||
authenticated: true
|
||||
deprecated: false
|
||||
custom: []
|
||||
headers:
|
||||
Authorization: 'Bearer 6g43cv8PD1aE5beadkZfhV6'
|
||||
Content-Type: application/json
|
||||
Accept: application/json
|
||||
urlParameters:
|
||||
id:
|
||||
name: id
|
||||
description: 'The ID of the category.'
|
||||
required: true
|
||||
example: architecto
|
||||
type: string
|
||||
enumValues: []
|
||||
exampleWasSpecified: false
|
||||
nullable: false
|
||||
custom: []
|
||||
cleanUrlParameters:
|
||||
id: architecto
|
||||
queryParameters: []
|
||||
cleanQueryParameters: []
|
||||
bodyParameters: []
|
||||
cleanBodyParameters: []
|
||||
fileParameters: []
|
||||
responses:
|
||||
-
|
||||
status: 401
|
||||
content: '{"error":"Unauthorized or unauthenticated."}'
|
||||
headers:
|
||||
cache-control: 'max-age=0, must-revalidate, no-cache, no-store, private'
|
||||
content-type: application/json
|
||||
vary: Origin
|
||||
pragma: no-cache
|
||||
expires: 'Sun, 02 Jan 1990 00:00:00 GMT'
|
||||
x-content-type-options: nosniff
|
||||
feature-policy: "accelerometer 'none';autoplay 'none';camera 'none';display-capture 'none';document-domain 'none';encrypted-media 'none';fullscreen 'none';geolocation 'none';sync-xhr 'none';usb 'none';xr-spatial-tracking 'none'"
|
||||
referrer-policy: same-origin
|
||||
content-security-policy: "default-src 'self';style-src 'self' 'unsafe-inline';script-src 'self' 'unsafe-inline' 'unsafe-eval';connect-src 'self';object-src 'none';font-src 'self' data:;img-src 'self' data: https://snipe-it.test https://avatars.githubusercontent.com/u/ https://www.google.com/images/branding/googlelogo/2x/ https://snipe-flysystem-public-test.s3-us-west-2.amazonaws.com https://secure.gravatar.com http://gravatar.com maps.google.com maps.gstatic.com *.googleapis.com"
|
||||
set-cookie: 'snipe-dev_local=V2YFWiG0waCLFesMFr3kkLb0Io41yz4MPzVEfytq; expires=Sat, 18 Oct 2025 20:42:52 GMT; Max-Age=720000; path=/; secure; httponly; samesite=lax'
|
||||
description: null
|
||||
custom: []
|
||||
responseFields: []
|
||||
auth:
|
||||
- headers
|
||||
- Authorization
|
||||
- 'Bearer 6g43cv8PD1aE5beadkZfhV6'
|
||||
controller: null
|
||||
method: null
|
||||
route: null
|
||||
custom: []
|
||||
-
|
||||
httpMethods:
|
||||
- PUT
|
||||
- PATCH
|
||||
uri: 'api/v1/categories/{id}'
|
||||
metadata:
|
||||
groupName: Categories
|
||||
groupDescription: ''
|
||||
subgroup: ''
|
||||
subgroupDescription: ''
|
||||
title: 'Update Category'
|
||||
description: ''
|
||||
authenticated: true
|
||||
deprecated: false
|
||||
custom: []
|
||||
headers:
|
||||
Authorization: 'Bearer 6g43cv8PD1aE5beadkZfhV6'
|
||||
Content-Type: application/json
|
||||
Accept: application/json
|
||||
urlParameters:
|
||||
id:
|
||||
name: id
|
||||
description: 'The ID of the category.'
|
||||
required: true
|
||||
example: architecto
|
||||
type: string
|
||||
enumValues: []
|
||||
exampleWasSpecified: false
|
||||
nullable: false
|
||||
custom: []
|
||||
cleanUrlParameters:
|
||||
id: architecto
|
||||
queryParameters: []
|
||||
cleanQueryParameters: []
|
||||
bodyParameters: []
|
||||
cleanBodyParameters: []
|
||||
fileParameters: []
|
||||
responses: []
|
||||
responseFields: []
|
||||
auth:
|
||||
- headers
|
||||
- Authorization
|
||||
- 'Bearer 6g43cv8PD1aE5beadkZfhV6'
|
||||
controller: null
|
||||
method: null
|
||||
route: null
|
||||
custom: []
|
||||
-
|
||||
httpMethods:
|
||||
- DELETE
|
||||
uri: 'api/v1/categories/{id}'
|
||||
metadata:
|
||||
groupName: Categories
|
||||
groupDescription: ''
|
||||
subgroup: ''
|
||||
subgroupDescription: ''
|
||||
title: 'Delete Category'
|
||||
description: ''
|
||||
authenticated: true
|
||||
deprecated: false
|
||||
custom: []
|
||||
headers:
|
||||
Authorization: 'Bearer 6g43cv8PD1aE5beadkZfhV6'
|
||||
Content-Type: application/json
|
||||
Accept: application/json
|
||||
urlParameters:
|
||||
id:
|
||||
name: id
|
||||
description: 'The ID of the category.'
|
||||
required: true
|
||||
example: architecto
|
||||
type: string
|
||||
enumValues: []
|
||||
exampleWasSpecified: false
|
||||
nullable: false
|
||||
custom: []
|
||||
cleanUrlParameters:
|
||||
id: architecto
|
||||
queryParameters: []
|
||||
cleanQueryParameters: []
|
||||
bodyParameters: []
|
||||
cleanBodyParameters: []
|
||||
fileParameters: []
|
||||
responses: []
|
||||
responseFields: []
|
||||
auth:
|
||||
- headers
|
||||
- Authorization
|
||||
- 'Bearer 6g43cv8PD1aE5beadkZfhV6'
|
||||
controller: null
|
||||
method: null
|
||||
route: null
|
||||
custom: []
|
||||
@@ -1,295 +0,0 @@
|
||||
name: Companies
|
||||
description: ''
|
||||
endpoints:
|
||||
-
|
||||
httpMethods:
|
||||
- GET
|
||||
uri: api/v1/companies/selectlist
|
||||
metadata:
|
||||
groupName: Companies
|
||||
groupDescription: ''
|
||||
subgroup: ''
|
||||
subgroupDescription: ''
|
||||
title: Selectlist
|
||||
description: ''
|
||||
authenticated: true
|
||||
deprecated: false
|
||||
custom: []
|
||||
headers:
|
||||
Authorization: 'Bearer 6g43cv8PD1aE5beadkZfhV6'
|
||||
Content-Type: application/json
|
||||
Accept: application/json
|
||||
urlParameters: []
|
||||
cleanUrlParameters: []
|
||||
queryParameters: []
|
||||
cleanQueryParameters: []
|
||||
bodyParameters: []
|
||||
cleanBodyParameters: []
|
||||
fileParameters: []
|
||||
responses:
|
||||
-
|
||||
status: 401
|
||||
content: '{"error":"Unauthorized or unauthenticated."}'
|
||||
headers:
|
||||
cache-control: 'max-age=0, must-revalidate, no-cache, no-store, private'
|
||||
content-type: application/json
|
||||
vary: Origin
|
||||
pragma: no-cache
|
||||
expires: 'Sun, 02 Jan 1990 00:00:00 GMT'
|
||||
x-content-type-options: nosniff
|
||||
feature-policy: "accelerometer 'none';autoplay 'none';camera 'none';display-capture 'none';document-domain 'none';encrypted-media 'none';fullscreen 'none';geolocation 'none';sync-xhr 'none';usb 'none';xr-spatial-tracking 'none'"
|
||||
referrer-policy: same-origin
|
||||
content-security-policy: "default-src 'self';style-src 'self' 'unsafe-inline';script-src 'self' 'unsafe-inline' 'unsafe-eval';connect-src 'self';object-src 'none';font-src 'self' data:;img-src 'self' data: https://snipe-it.test https://avatars.githubusercontent.com/u/ https://www.google.com/images/branding/googlelogo/2x/ https://snipe-flysystem-public-test.s3-us-west-2.amazonaws.com https://secure.gravatar.com http://gravatar.com maps.google.com maps.gstatic.com *.googleapis.com"
|
||||
set-cookie: 'snipe-dev_local=IqjgsK1DVTQS5qlZI7l96rTJH0m95aILfWx6eAS2; expires=Sat, 18 Oct 2025 20:42:52 GMT; Max-Age=720000; path=/; secure; httponly; samesite=lax'
|
||||
description: null
|
||||
custom: []
|
||||
responseFields: []
|
||||
auth:
|
||||
- headers
|
||||
- Authorization
|
||||
- 'Bearer 6g43cv8PD1aE5beadkZfhV6'
|
||||
controller: null
|
||||
method: null
|
||||
route: null
|
||||
custom: []
|
||||
-
|
||||
httpMethods:
|
||||
- GET
|
||||
uri: api/v1/companies
|
||||
metadata:
|
||||
groupName: Companies
|
||||
groupDescription: ''
|
||||
subgroup: ''
|
||||
subgroupDescription: ''
|
||||
title: 'List Companies'
|
||||
description: ''
|
||||
authenticated: true
|
||||
deprecated: false
|
||||
custom: []
|
||||
headers:
|
||||
Authorization: 'Bearer 6g43cv8PD1aE5beadkZfhV6'
|
||||
Content-Type: application/json
|
||||
Accept: application/json
|
||||
urlParameters: []
|
||||
cleanUrlParameters: []
|
||||
queryParameters: []
|
||||
cleanQueryParameters: []
|
||||
bodyParameters: []
|
||||
cleanBodyParameters: []
|
||||
fileParameters: []
|
||||
responses:
|
||||
-
|
||||
status: 401
|
||||
content: '{"error":"Unauthorized or unauthenticated."}'
|
||||
headers:
|
||||
cache-control: 'max-age=0, must-revalidate, no-cache, no-store, private'
|
||||
content-type: application/json
|
||||
vary: Origin
|
||||
pragma: no-cache
|
||||
expires: 'Sun, 02 Jan 1990 00:00:00 GMT'
|
||||
x-content-type-options: nosniff
|
||||
feature-policy: "accelerometer 'none';autoplay 'none';camera 'none';display-capture 'none';document-domain 'none';encrypted-media 'none';fullscreen 'none';geolocation 'none';sync-xhr 'none';usb 'none';xr-spatial-tracking 'none'"
|
||||
referrer-policy: same-origin
|
||||
content-security-policy: "default-src 'self';style-src 'self' 'unsafe-inline';script-src 'self' 'unsafe-inline' 'unsafe-eval';connect-src 'self';object-src 'none';font-src 'self' data:;img-src 'self' data: https://snipe-it.test https://avatars.githubusercontent.com/u/ https://www.google.com/images/branding/googlelogo/2x/ https://snipe-flysystem-public-test.s3-us-west-2.amazonaws.com https://secure.gravatar.com http://gravatar.com maps.google.com maps.gstatic.com *.googleapis.com"
|
||||
set-cookie: 'snipe-dev_local=cEVlfAwtjQtu004rU9aEgFwcozHbApb3l0gEpL3C; expires=Sat, 18 Oct 2025 20:42:52 GMT; Max-Age=720000; path=/; secure; httponly; samesite=lax'
|
||||
description: null
|
||||
custom: []
|
||||
responseFields: []
|
||||
auth:
|
||||
- headers
|
||||
- Authorization
|
||||
- 'Bearer 6g43cv8PD1aE5beadkZfhV6'
|
||||
controller: null
|
||||
method: null
|
||||
route: null
|
||||
custom: []
|
||||
-
|
||||
httpMethods:
|
||||
- POST
|
||||
uri: api/v1/companies
|
||||
metadata:
|
||||
groupName: Companies
|
||||
groupDescription: ''
|
||||
subgroup: ''
|
||||
subgroupDescription: ''
|
||||
title: 'Create Company'
|
||||
description: ''
|
||||
authenticated: true
|
||||
deprecated: false
|
||||
custom: []
|
||||
headers:
|
||||
Authorization: 'Bearer 6g43cv8PD1aE5beadkZfhV6'
|
||||
Content-Type: application/json
|
||||
Accept: application/json
|
||||
urlParameters: []
|
||||
cleanUrlParameters: []
|
||||
queryParameters: []
|
||||
cleanQueryParameters: []
|
||||
bodyParameters: []
|
||||
cleanBodyParameters: []
|
||||
fileParameters: []
|
||||
responses: []
|
||||
responseFields: []
|
||||
auth:
|
||||
- headers
|
||||
- Authorization
|
||||
- 'Bearer 6g43cv8PD1aE5beadkZfhV6'
|
||||
controller: null
|
||||
method: null
|
||||
route: null
|
||||
custom: []
|
||||
-
|
||||
httpMethods:
|
||||
- GET
|
||||
uri: 'api/v1/companies/{id}'
|
||||
metadata:
|
||||
groupName: Companies
|
||||
groupDescription: ''
|
||||
subgroup: ''
|
||||
subgroupDescription: ''
|
||||
title: 'Show Company'
|
||||
description: ''
|
||||
authenticated: true
|
||||
deprecated: false
|
||||
custom: []
|
||||
headers:
|
||||
Authorization: 'Bearer 6g43cv8PD1aE5beadkZfhV6'
|
||||
Content-Type: application/json
|
||||
Accept: application/json
|
||||
urlParameters:
|
||||
id:
|
||||
name: id
|
||||
description: 'The ID of the company.'
|
||||
required: true
|
||||
example: 1
|
||||
type: integer
|
||||
enumValues: []
|
||||
exampleWasSpecified: false
|
||||
nullable: false
|
||||
custom: []
|
||||
cleanUrlParameters:
|
||||
id: 1
|
||||
queryParameters: []
|
||||
cleanQueryParameters: []
|
||||
bodyParameters: []
|
||||
cleanBodyParameters: []
|
||||
fileParameters: []
|
||||
responses:
|
||||
-
|
||||
status: 401
|
||||
content: '{"error":"Unauthorized or unauthenticated."}'
|
||||
headers:
|
||||
cache-control: 'max-age=0, must-revalidate, no-cache, no-store, private'
|
||||
content-type: application/json
|
||||
vary: Origin
|
||||
pragma: no-cache
|
||||
expires: 'Sun, 02 Jan 1990 00:00:00 GMT'
|
||||
x-content-type-options: nosniff
|
||||
feature-policy: "accelerometer 'none';autoplay 'none';camera 'none';display-capture 'none';document-domain 'none';encrypted-media 'none';fullscreen 'none';geolocation 'none';sync-xhr 'none';usb 'none';xr-spatial-tracking 'none'"
|
||||
referrer-policy: same-origin
|
||||
content-security-policy: "default-src 'self';style-src 'self' 'unsafe-inline';script-src 'self' 'unsafe-inline' 'unsafe-eval';connect-src 'self';object-src 'none';font-src 'self' data:;img-src 'self' data: https://snipe-it.test https://avatars.githubusercontent.com/u/ https://www.google.com/images/branding/googlelogo/2x/ https://snipe-flysystem-public-test.s3-us-west-2.amazonaws.com https://secure.gravatar.com http://gravatar.com maps.google.com maps.gstatic.com *.googleapis.com"
|
||||
set-cookie: 'snipe-dev_local=YqczMPKZfCp7CKkULGsRoDqufIWQ9yGkni3Cto4R; expires=Sat, 18 Oct 2025 20:42:52 GMT; Max-Age=720000; path=/; secure; httponly; samesite=lax'
|
||||
description: null
|
||||
custom: []
|
||||
responseFields: []
|
||||
auth:
|
||||
- headers
|
||||
- Authorization
|
||||
- 'Bearer 6g43cv8PD1aE5beadkZfhV6'
|
||||
controller: null
|
||||
method: null
|
||||
route: null
|
||||
custom: []
|
||||
-
|
||||
httpMethods:
|
||||
- PUT
|
||||
- PATCH
|
||||
uri: 'api/v1/companies/{id}'
|
||||
metadata:
|
||||
groupName: Companies
|
||||
groupDescription: ''
|
||||
subgroup: ''
|
||||
subgroupDescription: ''
|
||||
title: 'Update Company'
|
||||
description: ''
|
||||
authenticated: true
|
||||
deprecated: false
|
||||
custom: []
|
||||
headers:
|
||||
Authorization: 'Bearer 6g43cv8PD1aE5beadkZfhV6'
|
||||
Content-Type: application/json
|
||||
Accept: application/json
|
||||
urlParameters:
|
||||
id:
|
||||
name: id
|
||||
description: 'The ID of the company.'
|
||||
required: true
|
||||
example: 1
|
||||
type: integer
|
||||
enumValues: []
|
||||
exampleWasSpecified: false
|
||||
nullable: false
|
||||
custom: []
|
||||
cleanUrlParameters:
|
||||
id: 1
|
||||
queryParameters: []
|
||||
cleanQueryParameters: []
|
||||
bodyParameters: []
|
||||
cleanBodyParameters: []
|
||||
fileParameters: []
|
||||
responses: []
|
||||
responseFields: []
|
||||
auth:
|
||||
- headers
|
||||
- Authorization
|
||||
- 'Bearer 6g43cv8PD1aE5beadkZfhV6'
|
||||
controller: null
|
||||
method: null
|
||||
route: null
|
||||
custom: []
|
||||
-
|
||||
httpMethods:
|
||||
- DELETE
|
||||
uri: 'api/v1/companies/{id}'
|
||||
metadata:
|
||||
groupName: Companies
|
||||
groupDescription: ''
|
||||
subgroup: ''
|
||||
subgroupDescription: ''
|
||||
title: 'Delete Company'
|
||||
description: ''
|
||||
authenticated: true
|
||||
deprecated: false
|
||||
custom: []
|
||||
headers:
|
||||
Authorization: 'Bearer 6g43cv8PD1aE5beadkZfhV6'
|
||||
Content-Type: application/json
|
||||
Accept: application/json
|
||||
urlParameters:
|
||||
id:
|
||||
name: id
|
||||
description: 'The ID of the company.'
|
||||
required: true
|
||||
example: 1
|
||||
type: integer
|
||||
enumValues: []
|
||||
exampleWasSpecified: false
|
||||
nullable: false
|
||||
custom: []
|
||||
cleanUrlParameters:
|
||||
id: 1
|
||||
queryParameters: []
|
||||
cleanQueryParameters: []
|
||||
bodyParameters: []
|
||||
cleanBodyParameters: []
|
||||
fileParameters: []
|
||||
responses: []
|
||||
responseFields: []
|
||||
auth:
|
||||
- headers
|
||||
- Authorization
|
||||
- 'Bearer 6g43cv8PD1aE5beadkZfhV6'
|
||||
controller: null
|
||||
method: null
|
||||
route: null
|
||||
custom: []
|
||||
@@ -1,394 +0,0 @@
|
||||
name: Departments
|
||||
description: ''
|
||||
endpoints:
|
||||
-
|
||||
httpMethods:
|
||||
- GET
|
||||
uri: api/v1/departments/selectlist
|
||||
metadata:
|
||||
groupName: Departments
|
||||
groupDescription: ''
|
||||
subgroup: ''
|
||||
subgroupDescription: ''
|
||||
title: Selectlist
|
||||
description: ''
|
||||
authenticated: true
|
||||
deprecated: false
|
||||
custom: []
|
||||
headers:
|
||||
Authorization: 'Bearer 6g43cv8PD1aE5beadkZfhV6'
|
||||
Content-Type: application/json
|
||||
Accept: application/json
|
||||
urlParameters: []
|
||||
cleanUrlParameters: []
|
||||
queryParameters: []
|
||||
cleanQueryParameters: []
|
||||
bodyParameters: []
|
||||
cleanBodyParameters: []
|
||||
fileParameters: []
|
||||
responses:
|
||||
-
|
||||
status: 401
|
||||
content: '{"error":"Unauthorized or unauthenticated."}'
|
||||
headers:
|
||||
cache-control: 'max-age=0, must-revalidate, no-cache, no-store, private'
|
||||
content-type: application/json
|
||||
vary: Origin
|
||||
pragma: no-cache
|
||||
expires: 'Sun, 02 Jan 1990 00:00:00 GMT'
|
||||
x-content-type-options: nosniff
|
||||
feature-policy: "accelerometer 'none';autoplay 'none';camera 'none';display-capture 'none';document-domain 'none';encrypted-media 'none';fullscreen 'none';geolocation 'none';sync-xhr 'none';usb 'none';xr-spatial-tracking 'none'"
|
||||
referrer-policy: same-origin
|
||||
content-security-policy: "default-src 'self';style-src 'self' 'unsafe-inline';script-src 'self' 'unsafe-inline' 'unsafe-eval';connect-src 'self';object-src 'none';font-src 'self' data:;img-src 'self' data: https://snipe-it.test https://avatars.githubusercontent.com/u/ https://www.google.com/images/branding/googlelogo/2x/ https://snipe-flysystem-public-test.s3-us-west-2.amazonaws.com https://secure.gravatar.com http://gravatar.com maps.google.com maps.gstatic.com *.googleapis.com"
|
||||
set-cookie: 'snipe-dev_local=0Ld2mnJEdBRIaREXQ37xGTuIS9SWJ4pT3WC79wc3; expires=Sat, 18 Oct 2025 20:42:52 GMT; Max-Age=720000; path=/; secure; httponly; samesite=lax'
|
||||
description: null
|
||||
custom: []
|
||||
responseFields: []
|
||||
auth:
|
||||
- headers
|
||||
- Authorization
|
||||
- 'Bearer 6g43cv8PD1aE5beadkZfhV6'
|
||||
controller: null
|
||||
method: null
|
||||
route: null
|
||||
custom: []
|
||||
-
|
||||
httpMethods:
|
||||
- GET
|
||||
uri: api/v1/departments
|
||||
metadata:
|
||||
groupName: Departments
|
||||
groupDescription: ''
|
||||
subgroup: ''
|
||||
subgroupDescription: ''
|
||||
title: 'List Departments'
|
||||
description: ''
|
||||
authenticated: true
|
||||
deprecated: false
|
||||
custom: []
|
||||
headers:
|
||||
Authorization: 'Bearer 6g43cv8PD1aE5beadkZfhV6'
|
||||
Content-Type: application/json
|
||||
Accept: application/json
|
||||
urlParameters: []
|
||||
cleanUrlParameters: []
|
||||
queryParameters:
|
||||
search:
|
||||
name: search
|
||||
description: 'Search term to filter results.'
|
||||
required: false
|
||||
example: IT
|
||||
type: string
|
||||
enumValues: []
|
||||
exampleWasSpecified: true
|
||||
nullable: false
|
||||
custom: []
|
||||
name:
|
||||
name: name
|
||||
description: 'Filter by exact department name.'
|
||||
required: false
|
||||
example: IT
|
||||
type: string
|
||||
enumValues: []
|
||||
exampleWasSpecified: true
|
||||
nullable: false
|
||||
custom: []
|
||||
company_id:
|
||||
name: company_id
|
||||
description: 'Filter by exact company ID.'
|
||||
required: false
|
||||
example: 1
|
||||
type: integer
|
||||
enumValues: []
|
||||
exampleWasSpecified: true
|
||||
nullable: false
|
||||
custom: []
|
||||
manager_id:
|
||||
name: manager_id
|
||||
description: 'Filter by exact manager (user) ID. Example:'
|
||||
required: false
|
||||
example: 16
|
||||
type: integer
|
||||
enumValues: []
|
||||
exampleWasSpecified: false
|
||||
nullable: false
|
||||
custom: []
|
||||
location_id:
|
||||
name: location_id
|
||||
description: 'Filter by exact location ID.'
|
||||
required: false
|
||||
example: 1
|
||||
type: integer
|
||||
enumValues: []
|
||||
exampleWasSpecified: true
|
||||
nullable: false
|
||||
custom: []
|
||||
sort:
|
||||
name: sort
|
||||
description: 'Column to sort results by. Allowed values: id, name, image, users_count, notes, created_at, updated_at, location, manager, company. Default: created_at.'
|
||||
required: false
|
||||
example: name
|
||||
type: string
|
||||
enumValues: []
|
||||
exampleWasSpecified: true
|
||||
nullable: false
|
||||
custom: []
|
||||
order:
|
||||
name: order
|
||||
description: 'Order of sorted results. Allowed values: asc, desc. Default: desc.'
|
||||
required: false
|
||||
example: asc
|
||||
type: string
|
||||
enumValues: []
|
||||
exampleWasSpecified: true
|
||||
nullable: false
|
||||
custom: []
|
||||
offset:
|
||||
name: offset
|
||||
description: 'Offset/starting position of the results. Default: 0.'
|
||||
required: false
|
||||
example: 0
|
||||
type: integer
|
||||
enumValues: []
|
||||
exampleWasSpecified: true
|
||||
nullable: false
|
||||
custom: []
|
||||
limit:
|
||||
name: limit
|
||||
description: 'Limit the number of results returned. Default: 25. Maximum: 100.'
|
||||
required: false
|
||||
example: 50
|
||||
type: integer
|
||||
enumValues: []
|
||||
exampleWasSpecified: true
|
||||
nullable: false
|
||||
custom: []
|
||||
cleanQueryParameters:
|
||||
search: IT
|
||||
name: IT
|
||||
company_id: 1
|
||||
manager_id: 16
|
||||
location_id: 1
|
||||
sort: name
|
||||
order: asc
|
||||
offset: 0
|
||||
limit: 50
|
||||
bodyParameters: []
|
||||
cleanBodyParameters: []
|
||||
fileParameters: []
|
||||
responses:
|
||||
-
|
||||
status: 401
|
||||
content: '{"error":"Unauthorized or unauthenticated."}'
|
||||
headers:
|
||||
cache-control: 'max-age=0, must-revalidate, no-cache, no-store, private'
|
||||
content-type: application/json
|
||||
vary: Origin
|
||||
pragma: no-cache
|
||||
expires: 'Sun, 02 Jan 1990 00:00:00 GMT'
|
||||
x-content-type-options: nosniff
|
||||
feature-policy: "accelerometer 'none';autoplay 'none';camera 'none';display-capture 'none';document-domain 'none';encrypted-media 'none';fullscreen 'none';geolocation 'none';sync-xhr 'none';usb 'none';xr-spatial-tracking 'none'"
|
||||
referrer-policy: same-origin
|
||||
content-security-policy: "default-src 'self';style-src 'self' 'unsafe-inline';script-src 'self' 'unsafe-inline' 'unsafe-eval';connect-src 'self';object-src 'none';font-src 'self' data:;img-src 'self' data: https://snipe-it.test https://avatars.githubusercontent.com/u/ https://www.google.com/images/branding/googlelogo/2x/ https://snipe-flysystem-public-test.s3-us-west-2.amazonaws.com https://secure.gravatar.com http://gravatar.com maps.google.com maps.gstatic.com *.googleapis.com"
|
||||
set-cookie: 'snipe-dev_local=A3I9GYZHlismQEeDjfx7XM9EFccWImskxth6x9OH; expires=Sat, 18 Oct 2025 20:42:52 GMT; Max-Age=720000; path=/; secure; httponly; samesite=lax'
|
||||
description: null
|
||||
custom: []
|
||||
responseFields: []
|
||||
auth:
|
||||
- headers
|
||||
- Authorization
|
||||
- 'Bearer 6g43cv8PD1aE5beadkZfhV6'
|
||||
controller: null
|
||||
method: null
|
||||
route: null
|
||||
custom: []
|
||||
-
|
||||
httpMethods:
|
||||
- POST
|
||||
uri: api/v1/departments
|
||||
metadata:
|
||||
groupName: Departments
|
||||
groupDescription: ''
|
||||
subgroup: ''
|
||||
subgroupDescription: ''
|
||||
title: 'Create Department'
|
||||
description: ''
|
||||
authenticated: true
|
||||
deprecated: false
|
||||
custom: []
|
||||
headers:
|
||||
Authorization: 'Bearer 6g43cv8PD1aE5beadkZfhV6'
|
||||
Content-Type: application/json
|
||||
Accept: application/json
|
||||
urlParameters: []
|
||||
cleanUrlParameters: []
|
||||
queryParameters: []
|
||||
cleanQueryParameters: []
|
||||
bodyParameters: []
|
||||
cleanBodyParameters: []
|
||||
fileParameters: []
|
||||
responses: []
|
||||
responseFields: []
|
||||
auth:
|
||||
- headers
|
||||
- Authorization
|
||||
- 'Bearer 6g43cv8PD1aE5beadkZfhV6'
|
||||
controller: null
|
||||
method: null
|
||||
route: null
|
||||
custom: []
|
||||
-
|
||||
httpMethods:
|
||||
- GET
|
||||
uri: 'api/v1/departments/{id}'
|
||||
metadata:
|
||||
groupName: Departments
|
||||
groupDescription: ''
|
||||
subgroup: ''
|
||||
subgroupDescription: ''
|
||||
title: 'Show Department'
|
||||
description: ''
|
||||
authenticated: true
|
||||
deprecated: false
|
||||
custom: []
|
||||
headers:
|
||||
Authorization: 'Bearer 6g43cv8PD1aE5beadkZfhV6'
|
||||
Content-Type: application/json
|
||||
Accept: application/json
|
||||
urlParameters:
|
||||
id:
|
||||
name: id
|
||||
description: 'The ID of the department.'
|
||||
required: true
|
||||
example: architecto
|
||||
type: string
|
||||
enumValues: []
|
||||
exampleWasSpecified: false
|
||||
nullable: false
|
||||
custom: []
|
||||
cleanUrlParameters:
|
||||
id: architecto
|
||||
queryParameters: []
|
||||
cleanQueryParameters: []
|
||||
bodyParameters: []
|
||||
cleanBodyParameters: []
|
||||
fileParameters: []
|
||||
responses:
|
||||
-
|
||||
status: 401
|
||||
content: '{"error":"Unauthorized or unauthenticated."}'
|
||||
headers:
|
||||
cache-control: 'max-age=0, must-revalidate, no-cache, no-store, private'
|
||||
content-type: application/json
|
||||
vary: Origin
|
||||
pragma: no-cache
|
||||
expires: 'Sun, 02 Jan 1990 00:00:00 GMT'
|
||||
x-content-type-options: nosniff
|
||||
feature-policy: "accelerometer 'none';autoplay 'none';camera 'none';display-capture 'none';document-domain 'none';encrypted-media 'none';fullscreen 'none';geolocation 'none';sync-xhr 'none';usb 'none';xr-spatial-tracking 'none'"
|
||||
referrer-policy: same-origin
|
||||
content-security-policy: "default-src 'self';style-src 'self' 'unsafe-inline';script-src 'self' 'unsafe-inline' 'unsafe-eval';connect-src 'self';object-src 'none';font-src 'self' data:;img-src 'self' data: https://snipe-it.test https://avatars.githubusercontent.com/u/ https://www.google.com/images/branding/googlelogo/2x/ https://snipe-flysystem-public-test.s3-us-west-2.amazonaws.com https://secure.gravatar.com http://gravatar.com maps.google.com maps.gstatic.com *.googleapis.com"
|
||||
set-cookie: 'snipe-dev_local=f5nA1I31NqT4m4T3BeSDmKt2LuBQs7KtcZZNRDKq; expires=Sat, 18 Oct 2025 20:42:52 GMT; Max-Age=720000; path=/; secure; httponly; samesite=lax'
|
||||
description: null
|
||||
custom: []
|
||||
responseFields: []
|
||||
auth:
|
||||
- headers
|
||||
- Authorization
|
||||
- 'Bearer 6g43cv8PD1aE5beadkZfhV6'
|
||||
controller: null
|
||||
method: null
|
||||
route: null
|
||||
custom: []
|
||||
-
|
||||
httpMethods:
|
||||
- PUT
|
||||
- PATCH
|
||||
uri: 'api/v1/departments/{id}'
|
||||
metadata:
|
||||
groupName: Departments
|
||||
groupDescription: ''
|
||||
subgroup: ''
|
||||
subgroupDescription: ''
|
||||
title: 'Update Department'
|
||||
description: ''
|
||||
authenticated: true
|
||||
deprecated: false
|
||||
custom: []
|
||||
headers:
|
||||
Authorization: 'Bearer 6g43cv8PD1aE5beadkZfhV6'
|
||||
Content-Type: application/json
|
||||
Accept: application/json
|
||||
urlParameters:
|
||||
id:
|
||||
name: id
|
||||
description: 'The ID of the department.'
|
||||
required: true
|
||||
example: architecto
|
||||
type: string
|
||||
enumValues: []
|
||||
exampleWasSpecified: false
|
||||
nullable: false
|
||||
custom: []
|
||||
cleanUrlParameters:
|
||||
id: architecto
|
||||
queryParameters: []
|
||||
cleanQueryParameters: []
|
||||
bodyParameters: []
|
||||
cleanBodyParameters: []
|
||||
fileParameters: []
|
||||
responses: []
|
||||
responseFields: []
|
||||
auth:
|
||||
- headers
|
||||
- Authorization
|
||||
- 'Bearer 6g43cv8PD1aE5beadkZfhV6'
|
||||
controller: null
|
||||
method: null
|
||||
route: null
|
||||
custom: []
|
||||
-
|
||||
httpMethods:
|
||||
- DELETE
|
||||
uri: 'api/v1/departments/{id}'
|
||||
metadata:
|
||||
groupName: Departments
|
||||
groupDescription: ''
|
||||
subgroup: ''
|
||||
subgroupDescription: ''
|
||||
title: 'Delete Department'
|
||||
description: ''
|
||||
authenticated: true
|
||||
deprecated: false
|
||||
custom: []
|
||||
headers:
|
||||
Authorization: 'Bearer 6g43cv8PD1aE5beadkZfhV6'
|
||||
Content-Type: application/json
|
||||
Accept: application/json
|
||||
urlParameters:
|
||||
id:
|
||||
name: id
|
||||
description: 'The ID of the department.'
|
||||
required: true
|
||||
example: architecto
|
||||
type: string
|
||||
enumValues: []
|
||||
exampleWasSpecified: false
|
||||
nullable: false
|
||||
custom: []
|
||||
cleanUrlParameters:
|
||||
id: architecto
|
||||
queryParameters: []
|
||||
cleanQueryParameters: []
|
||||
bodyParameters: []
|
||||
cleanBodyParameters: []
|
||||
fileParameters: []
|
||||
responses: []
|
||||
responseFields: []
|
||||
auth:
|
||||
- headers
|
||||
- Authorization
|
||||
- 'Bearer 6g43cv8PD1aE5beadkZfhV6'
|
||||
controller: null
|
||||
method: null
|
||||
route: null
|
||||
custom: []
|
||||
@@ -1,419 +0,0 @@
|
||||
name: Components
|
||||
description: ''
|
||||
endpoints:
|
||||
-
|
||||
httpMethods:
|
||||
- GET
|
||||
uri: 'api/v1/components/{component}/assets'
|
||||
metadata:
|
||||
groupName: Components
|
||||
groupDescription: ''
|
||||
subgroup: ''
|
||||
subgroupDescription: ''
|
||||
title: 'Component Assets'
|
||||
description: ''
|
||||
authenticated: true
|
||||
deprecated: false
|
||||
custom: []
|
||||
headers:
|
||||
Authorization: 'Bearer 6g43cv8PD1aE5beadkZfhV6'
|
||||
Content-Type: application/json
|
||||
Accept: application/json
|
||||
urlParameters:
|
||||
component:
|
||||
name: component
|
||||
description: 'The component.'
|
||||
required: true
|
||||
example: 3
|
||||
type: integer
|
||||
enumValues: []
|
||||
exampleWasSpecified: false
|
||||
nullable: false
|
||||
custom: []
|
||||
cleanUrlParameters:
|
||||
component: 3
|
||||
queryParameters: []
|
||||
cleanQueryParameters: []
|
||||
bodyParameters: []
|
||||
cleanBodyParameters: []
|
||||
fileParameters: []
|
||||
responses:
|
||||
-
|
||||
status: 401
|
||||
content: '{"error":"Unauthorized or unauthenticated."}'
|
||||
headers:
|
||||
cache-control: 'max-age=0, must-revalidate, no-cache, no-store, private'
|
||||
content-type: application/json
|
||||
vary: Origin
|
||||
pragma: no-cache
|
||||
expires: 'Sun, 02 Jan 1990 00:00:00 GMT'
|
||||
x-content-type-options: nosniff
|
||||
feature-policy: "accelerometer 'none';autoplay 'none';camera 'none';display-capture 'none';document-domain 'none';encrypted-media 'none';fullscreen 'none';geolocation 'none';sync-xhr 'none';usb 'none';xr-spatial-tracking 'none'"
|
||||
referrer-policy: same-origin
|
||||
content-security-policy: "default-src 'self';style-src 'self' 'unsafe-inline';script-src 'self' 'unsafe-inline' 'unsafe-eval';connect-src 'self';object-src 'none';font-src 'self' data:;img-src 'self' data: https://snipe-it.test https://avatars.githubusercontent.com/u/ https://www.google.com/images/branding/googlelogo/2x/ https://snipe-flysystem-public-test.s3-us-west-2.amazonaws.com https://secure.gravatar.com http://gravatar.com maps.google.com maps.gstatic.com *.googleapis.com"
|
||||
set-cookie: 'snipe-dev_local=wiPOiV7Xae1fyzS2Jv3w9d060WDRgnET70IrBjTj; expires=Sat, 18 Oct 2025 20:42:52 GMT; Max-Age=720000; path=/; secure; httponly; samesite=lax'
|
||||
description: null
|
||||
custom: []
|
||||
responseFields: []
|
||||
auth:
|
||||
- headers
|
||||
- Authorization
|
||||
- 'Bearer 6g43cv8PD1aE5beadkZfhV6'
|
||||
controller: null
|
||||
method: null
|
||||
route: null
|
||||
custom: []
|
||||
-
|
||||
httpMethods:
|
||||
- POST
|
||||
uri: 'api/v1/components/{id}/checkin'
|
||||
metadata:
|
||||
groupName: Components
|
||||
groupDescription: ''
|
||||
subgroup: ''
|
||||
subgroupDescription: ''
|
||||
title: 'Checkin Component'
|
||||
description: ''
|
||||
authenticated: true
|
||||
deprecated: false
|
||||
custom: []
|
||||
headers:
|
||||
Authorization: 'Bearer 6g43cv8PD1aE5beadkZfhV6'
|
||||
Content-Type: application/json
|
||||
Accept: application/json
|
||||
urlParameters:
|
||||
id:
|
||||
name: id
|
||||
description: 'The ID of the component.'
|
||||
required: true
|
||||
example: 3
|
||||
type: integer
|
||||
enumValues: []
|
||||
exampleWasSpecified: false
|
||||
nullable: false
|
||||
custom: []
|
||||
cleanUrlParameters:
|
||||
id: 3
|
||||
queryParameters: []
|
||||
cleanQueryParameters: []
|
||||
bodyParameters: []
|
||||
cleanBodyParameters: []
|
||||
fileParameters: []
|
||||
responses: []
|
||||
responseFields: []
|
||||
auth:
|
||||
- headers
|
||||
- Authorization
|
||||
- 'Bearer 6g43cv8PD1aE5beadkZfhV6'
|
||||
controller: null
|
||||
method: null
|
||||
route: null
|
||||
custom: []
|
||||
-
|
||||
httpMethods:
|
||||
- POST
|
||||
uri: 'api/v1/components/{id}/checkout'
|
||||
metadata:
|
||||
groupName: Components
|
||||
groupDescription: ''
|
||||
subgroup: ''
|
||||
subgroupDescription: ''
|
||||
title: 'Checkout Component'
|
||||
description: ''
|
||||
authenticated: true
|
||||
deprecated: false
|
||||
custom: []
|
||||
headers:
|
||||
Authorization: 'Bearer 6g43cv8PD1aE5beadkZfhV6'
|
||||
Content-Type: application/json
|
||||
Accept: application/json
|
||||
urlParameters:
|
||||
id:
|
||||
name: id
|
||||
description: 'The ID of the component.'
|
||||
required: true
|
||||
example: 3
|
||||
type: integer
|
||||
enumValues: []
|
||||
exampleWasSpecified: false
|
||||
nullable: false
|
||||
custom: []
|
||||
cleanUrlParameters:
|
||||
id: 3
|
||||
queryParameters: []
|
||||
cleanQueryParameters: []
|
||||
bodyParameters:
|
||||
assigned_to:
|
||||
name: assigned_to
|
||||
description: 'The <code>id</code> of an existing record in the assets table.'
|
||||
required: true
|
||||
example: architecto
|
||||
type: string
|
||||
enumValues: []
|
||||
exampleWasSpecified: false
|
||||
nullable: false
|
||||
custom: []
|
||||
assigned_qty:
|
||||
name: assigned_qty
|
||||
description: ''
|
||||
required: false
|
||||
example: null
|
||||
type: string
|
||||
enumValues: []
|
||||
exampleWasSpecified: false
|
||||
nullable: false
|
||||
custom: []
|
||||
cleanBodyParameters:
|
||||
assigned_to: architecto
|
||||
fileParameters: []
|
||||
responses: []
|
||||
responseFields: []
|
||||
auth:
|
||||
- headers
|
||||
- Authorization
|
||||
- 'Bearer 6g43cv8PD1aE5beadkZfhV6'
|
||||
controller: null
|
||||
method: null
|
||||
route: null
|
||||
custom: []
|
||||
-
|
||||
httpMethods:
|
||||
- GET
|
||||
uri: api/v1/components
|
||||
metadata:
|
||||
groupName: Components
|
||||
groupDescription: ''
|
||||
subgroup: ''
|
||||
subgroupDescription: ''
|
||||
title: 'List Categories'
|
||||
description: ''
|
||||
authenticated: true
|
||||
deprecated: false
|
||||
custom: []
|
||||
headers:
|
||||
Authorization: 'Bearer 6g43cv8PD1aE5beadkZfhV6'
|
||||
Content-Type: application/json
|
||||
Accept: application/json
|
||||
urlParameters: []
|
||||
cleanUrlParameters: []
|
||||
queryParameters: []
|
||||
cleanQueryParameters: []
|
||||
bodyParameters: []
|
||||
cleanBodyParameters: []
|
||||
fileParameters: []
|
||||
responses:
|
||||
-
|
||||
status: 401
|
||||
content: '{"error":"Unauthorized or unauthenticated."}'
|
||||
headers:
|
||||
cache-control: 'max-age=0, must-revalidate, no-cache, no-store, private'
|
||||
content-type: application/json
|
||||
vary: Origin
|
||||
pragma: no-cache
|
||||
expires: 'Sun, 02 Jan 1990 00:00:00 GMT'
|
||||
x-content-type-options: nosniff
|
||||
feature-policy: "accelerometer 'none';autoplay 'none';camera 'none';display-capture 'none';document-domain 'none';encrypted-media 'none';fullscreen 'none';geolocation 'none';sync-xhr 'none';usb 'none';xr-spatial-tracking 'none'"
|
||||
referrer-policy: same-origin
|
||||
content-security-policy: "default-src 'self';style-src 'self' 'unsafe-inline';script-src 'self' 'unsafe-inline' 'unsafe-eval';connect-src 'self';object-src 'none';font-src 'self' data:;img-src 'self' data: https://snipe-it.test https://avatars.githubusercontent.com/u/ https://www.google.com/images/branding/googlelogo/2x/ https://snipe-flysystem-public-test.s3-us-west-2.amazonaws.com https://secure.gravatar.com http://gravatar.com maps.google.com maps.gstatic.com *.googleapis.com"
|
||||
set-cookie: 'snipe-dev_local=vXpBDH4e4puagaeAOAWHnpHEOQ7rCwXKeEDeGn5W; expires=Sat, 18 Oct 2025 20:42:52 GMT; Max-Age=720000; path=/; secure; httponly; samesite=lax'
|
||||
description: null
|
||||
custom: []
|
||||
responseFields: []
|
||||
auth:
|
||||
- headers
|
||||
- Authorization
|
||||
- 'Bearer 6g43cv8PD1aE5beadkZfhV6'
|
||||
controller: null
|
||||
method: null
|
||||
route: null
|
||||
custom: []
|
||||
-
|
||||
httpMethods:
|
||||
- POST
|
||||
uri: api/v1/components
|
||||
metadata:
|
||||
groupName: Components
|
||||
groupDescription: ''
|
||||
subgroup: ''
|
||||
subgroupDescription: ''
|
||||
title: 'Create Component'
|
||||
description: ''
|
||||
authenticated: true
|
||||
deprecated: false
|
||||
custom: []
|
||||
headers:
|
||||
Authorization: 'Bearer 6g43cv8PD1aE5beadkZfhV6'
|
||||
Content-Type: application/json
|
||||
Accept: application/json
|
||||
urlParameters: []
|
||||
cleanUrlParameters: []
|
||||
queryParameters: []
|
||||
cleanQueryParameters: []
|
||||
bodyParameters: []
|
||||
cleanBodyParameters: []
|
||||
fileParameters: []
|
||||
responses: []
|
||||
responseFields: []
|
||||
auth:
|
||||
- headers
|
||||
- Authorization
|
||||
- 'Bearer 6g43cv8PD1aE5beadkZfhV6'
|
||||
controller: null
|
||||
method: null
|
||||
route: null
|
||||
custom: []
|
||||
-
|
||||
httpMethods:
|
||||
- GET
|
||||
uri: 'api/v1/components/{id}'
|
||||
metadata:
|
||||
groupName: Components
|
||||
groupDescription: ''
|
||||
subgroup: ''
|
||||
subgroupDescription: ''
|
||||
title: 'Show Component'
|
||||
description: ''
|
||||
authenticated: true
|
||||
deprecated: false
|
||||
custom: []
|
||||
headers:
|
||||
Authorization: 'Bearer 6g43cv8PD1aE5beadkZfhV6'
|
||||
Content-Type: application/json
|
||||
Accept: application/json
|
||||
urlParameters:
|
||||
id:
|
||||
name: id
|
||||
description: 'The ID of the component.'
|
||||
required: true
|
||||
example: 3
|
||||
type: integer
|
||||
enumValues: []
|
||||
exampleWasSpecified: false
|
||||
nullable: false
|
||||
custom: []
|
||||
cleanUrlParameters:
|
||||
id: 3
|
||||
queryParameters: []
|
||||
cleanQueryParameters: []
|
||||
bodyParameters: []
|
||||
cleanBodyParameters: []
|
||||
fileParameters: []
|
||||
responses:
|
||||
-
|
||||
status: 401
|
||||
content: '{"error":"Unauthorized or unauthenticated."}'
|
||||
headers:
|
||||
cache-control: 'max-age=0, must-revalidate, no-cache, no-store, private'
|
||||
content-type: application/json
|
||||
vary: Origin
|
||||
pragma: no-cache
|
||||
expires: 'Sun, 02 Jan 1990 00:00:00 GMT'
|
||||
x-content-type-options: nosniff
|
||||
feature-policy: "accelerometer 'none';autoplay 'none';camera 'none';display-capture 'none';document-domain 'none';encrypted-media 'none';fullscreen 'none';geolocation 'none';sync-xhr 'none';usb 'none';xr-spatial-tracking 'none'"
|
||||
referrer-policy: same-origin
|
||||
content-security-policy: "default-src 'self';style-src 'self' 'unsafe-inline';script-src 'self' 'unsafe-inline' 'unsafe-eval';connect-src 'self';object-src 'none';font-src 'self' data:;img-src 'self' data: https://snipe-it.test https://avatars.githubusercontent.com/u/ https://www.google.com/images/branding/googlelogo/2x/ https://snipe-flysystem-public-test.s3-us-west-2.amazonaws.com https://secure.gravatar.com http://gravatar.com maps.google.com maps.gstatic.com *.googleapis.com"
|
||||
set-cookie: 'snipe-dev_local=mIFtURJNZowrCIpSMAMYNVYW5XvKIReOCIJ57XgL; expires=Sat, 18 Oct 2025 20:42:52 GMT; Max-Age=720000; path=/; secure; httponly; samesite=lax'
|
||||
description: null
|
||||
custom: []
|
||||
responseFields: []
|
||||
auth:
|
||||
- headers
|
||||
- Authorization
|
||||
- 'Bearer 6g43cv8PD1aE5beadkZfhV6'
|
||||
controller: null
|
||||
method: null
|
||||
route: null
|
||||
custom: []
|
||||
-
|
||||
httpMethods:
|
||||
- PUT
|
||||
- PATCH
|
||||
uri: 'api/v1/components/{id}'
|
||||
metadata:
|
||||
groupName: Components
|
||||
groupDescription: ''
|
||||
subgroup: ''
|
||||
subgroupDescription: ''
|
||||
title: 'Update Component'
|
||||
description: ''
|
||||
authenticated: true
|
||||
deprecated: false
|
||||
custom: []
|
||||
headers:
|
||||
Authorization: 'Bearer 6g43cv8PD1aE5beadkZfhV6'
|
||||
Content-Type: application/json
|
||||
Accept: application/json
|
||||
urlParameters:
|
||||
id:
|
||||
name: id
|
||||
description: 'The ID of the component.'
|
||||
required: true
|
||||
example: 3
|
||||
type: integer
|
||||
enumValues: []
|
||||
exampleWasSpecified: false
|
||||
nullable: false
|
||||
custom: []
|
||||
cleanUrlParameters:
|
||||
id: 3
|
||||
queryParameters: []
|
||||
cleanQueryParameters: []
|
||||
bodyParameters: []
|
||||
cleanBodyParameters: []
|
||||
fileParameters: []
|
||||
responses: []
|
||||
responseFields: []
|
||||
auth:
|
||||
- headers
|
||||
- Authorization
|
||||
- 'Bearer 6g43cv8PD1aE5beadkZfhV6'
|
||||
controller: null
|
||||
method: null
|
||||
route: null
|
||||
custom: []
|
||||
-
|
||||
httpMethods:
|
||||
- DELETE
|
||||
uri: 'api/v1/components/{id}'
|
||||
metadata:
|
||||
groupName: Components
|
||||
groupDescription: ''
|
||||
subgroup: ''
|
||||
subgroupDescription: ''
|
||||
title: 'Delete Component'
|
||||
description: ''
|
||||
authenticated: true
|
||||
deprecated: false
|
||||
custom: []
|
||||
headers:
|
||||
Authorization: 'Bearer 6g43cv8PD1aE5beadkZfhV6'
|
||||
Content-Type: application/json
|
||||
Accept: application/json
|
||||
urlParameters:
|
||||
id:
|
||||
name: id
|
||||
description: 'The ID of the component.'
|
||||
required: true
|
||||
example: 3
|
||||
type: integer
|
||||
enumValues: []
|
||||
exampleWasSpecified: false
|
||||
nullable: false
|
||||
custom: []
|
||||
cleanUrlParameters:
|
||||
id: 3
|
||||
queryParameters: []
|
||||
cleanQueryParameters: []
|
||||
bodyParameters: []
|
||||
cleanBodyParameters: []
|
||||
fileParameters: []
|
||||
responses: []
|
||||
responseFields: []
|
||||
auth:
|
||||
- headers
|
||||
- Authorization
|
||||
- 'Bearer 6g43cv8PD1aE5beadkZfhV6'
|
||||
controller: null
|
||||
method: null
|
||||
route: null
|
||||
custom: []
|
||||
@@ -1,535 +0,0 @@
|
||||
name: Consumables
|
||||
description: ''
|
||||
endpoints:
|
||||
-
|
||||
httpMethods:
|
||||
- GET
|
||||
uri: api/v1/consumables/selectlist
|
||||
metadata:
|
||||
groupName: Consumables
|
||||
groupDescription: ''
|
||||
subgroup: ''
|
||||
subgroupDescription: ''
|
||||
title: Selectlist
|
||||
description: ''
|
||||
authenticated: true
|
||||
deprecated: false
|
||||
custom: []
|
||||
headers:
|
||||
Authorization: 'Bearer 6g43cv8PD1aE5beadkZfhV6'
|
||||
Content-Type: application/json
|
||||
Accept: application/json
|
||||
urlParameters: []
|
||||
cleanUrlParameters: []
|
||||
queryParameters: []
|
||||
cleanQueryParameters: []
|
||||
bodyParameters: []
|
||||
cleanBodyParameters: []
|
||||
fileParameters: []
|
||||
responses:
|
||||
-
|
||||
status: 401
|
||||
content: '{"error":"Unauthorized or unauthenticated."}'
|
||||
headers:
|
||||
cache-control: 'max-age=0, must-revalidate, no-cache, no-store, private'
|
||||
content-type: application/json
|
||||
vary: Origin
|
||||
pragma: no-cache
|
||||
expires: 'Sun, 02 Jan 1990 00:00:00 GMT'
|
||||
x-content-type-options: nosniff
|
||||
feature-policy: "accelerometer 'none';autoplay 'none';camera 'none';display-capture 'none';document-domain 'none';encrypted-media 'none';fullscreen 'none';geolocation 'none';sync-xhr 'none';usb 'none';xr-spatial-tracking 'none'"
|
||||
referrer-policy: same-origin
|
||||
content-security-policy: "default-src 'self';style-src 'self' 'unsafe-inline';script-src 'self' 'unsafe-inline' 'unsafe-eval';connect-src 'self';object-src 'none';font-src 'self' data:;img-src 'self' data: https://snipe-it.test https://avatars.githubusercontent.com/u/ https://www.google.com/images/branding/googlelogo/2x/ https://snipe-flysystem-public-test.s3-us-west-2.amazonaws.com https://secure.gravatar.com http://gravatar.com maps.google.com maps.gstatic.com *.googleapis.com"
|
||||
set-cookie: 'snipe-dev_local=9SzZeaG6J8yoJtsrcqY5kJPcLvX7ObZeYK0JivkB; expires=Sat, 18 Oct 2025 20:42:52 GMT; Max-Age=720000; path=/; secure; httponly; samesite=lax'
|
||||
description: null
|
||||
custom: []
|
||||
responseFields: []
|
||||
auth:
|
||||
- headers
|
||||
- Authorization
|
||||
- 'Bearer 6g43cv8PD1aE5beadkZfhV6'
|
||||
controller: null
|
||||
method: null
|
||||
route: null
|
||||
custom: []
|
||||
-
|
||||
httpMethods:
|
||||
- GET
|
||||
uri: 'api/v1/consumables/{id}/users'
|
||||
metadata:
|
||||
groupName: Consumables
|
||||
groupDescription: ''
|
||||
subgroup: ''
|
||||
subgroupDescription: ''
|
||||
title: 'User Assignments'
|
||||
description: ''
|
||||
authenticated: true
|
||||
deprecated: false
|
||||
custom: []
|
||||
headers:
|
||||
Authorization: 'Bearer 6g43cv8PD1aE5beadkZfhV6'
|
||||
Content-Type: application/json
|
||||
Accept: application/json
|
||||
urlParameters:
|
||||
id:
|
||||
name: id
|
||||
description: 'The ID of the consumable.'
|
||||
required: true
|
||||
example: 1
|
||||
type: integer
|
||||
enumValues: []
|
||||
exampleWasSpecified: false
|
||||
nullable: false
|
||||
custom: []
|
||||
cleanUrlParameters:
|
||||
id: 1
|
||||
queryParameters: []
|
||||
cleanQueryParameters: []
|
||||
bodyParameters: []
|
||||
cleanBodyParameters: []
|
||||
fileParameters: []
|
||||
responses:
|
||||
-
|
||||
status: 401
|
||||
content: '{"error":"Unauthorized or unauthenticated."}'
|
||||
headers:
|
||||
cache-control: 'max-age=0, must-revalidate, no-cache, no-store, private'
|
||||
content-type: application/json
|
||||
vary: Origin
|
||||
pragma: no-cache
|
||||
expires: 'Sun, 02 Jan 1990 00:00:00 GMT'
|
||||
x-content-type-options: nosniff
|
||||
feature-policy: "accelerometer 'none';autoplay 'none';camera 'none';display-capture 'none';document-domain 'none';encrypted-media 'none';fullscreen 'none';geolocation 'none';sync-xhr 'none';usb 'none';xr-spatial-tracking 'none'"
|
||||
referrer-policy: same-origin
|
||||
content-security-policy: "default-src 'self';style-src 'self' 'unsafe-inline';script-src 'self' 'unsafe-inline' 'unsafe-eval';connect-src 'self';object-src 'none';font-src 'self' data:;img-src 'self' data: https://snipe-it.test https://avatars.githubusercontent.com/u/ https://www.google.com/images/branding/googlelogo/2x/ https://snipe-flysystem-public-test.s3-us-west-2.amazonaws.com https://secure.gravatar.com http://gravatar.com maps.google.com maps.gstatic.com *.googleapis.com"
|
||||
set-cookie: 'snipe-dev_local=eO7NKRGNCHJ34NL6woGI5Ux80o2tg9rIBW0LuGGd; expires=Sat, 18 Oct 2025 20:42:52 GMT; Max-Age=720000; path=/; secure; httponly; samesite=lax'
|
||||
description: null
|
||||
custom: []
|
||||
responseFields: []
|
||||
auth:
|
||||
- headers
|
||||
- Authorization
|
||||
- 'Bearer 6g43cv8PD1aE5beadkZfhV6'
|
||||
controller: null
|
||||
method: null
|
||||
route: null
|
||||
custom: []
|
||||
-
|
||||
httpMethods:
|
||||
- POST
|
||||
uri: 'api/v1/consumables/{consumable}/checkout'
|
||||
metadata:
|
||||
groupName: Consumables
|
||||
groupDescription: ''
|
||||
subgroup: ''
|
||||
subgroupDescription: ''
|
||||
title: 'Checkout Consumable'
|
||||
description: ''
|
||||
authenticated: true
|
||||
deprecated: false
|
||||
custom: []
|
||||
headers:
|
||||
Authorization: 'Bearer 6g43cv8PD1aE5beadkZfhV6'
|
||||
Content-Type: application/json
|
||||
Accept: application/json
|
||||
urlParameters:
|
||||
consumable:
|
||||
name: consumable
|
||||
description: 'The consumable.'
|
||||
required: true
|
||||
example: 1
|
||||
type: integer
|
||||
enumValues: []
|
||||
exampleWasSpecified: false
|
||||
nullable: false
|
||||
custom: []
|
||||
cleanUrlParameters:
|
||||
consumable: 1
|
||||
queryParameters: []
|
||||
cleanQueryParameters: []
|
||||
bodyParameters: []
|
||||
cleanBodyParameters: []
|
||||
fileParameters: []
|
||||
responses: []
|
||||
responseFields: []
|
||||
auth:
|
||||
- headers
|
||||
- Authorization
|
||||
- 'Bearer 6g43cv8PD1aE5beadkZfhV6'
|
||||
controller: null
|
||||
method: null
|
||||
route: null
|
||||
custom: []
|
||||
-
|
||||
httpMethods:
|
||||
- GET
|
||||
uri: api/v1/consumables
|
||||
metadata:
|
||||
groupName: Consumables
|
||||
groupDescription: ''
|
||||
subgroup: ''
|
||||
subgroupDescription: ''
|
||||
title: 'List Consumables'
|
||||
description: ''
|
||||
authenticated: true
|
||||
deprecated: false
|
||||
custom: []
|
||||
headers:
|
||||
Authorization: 'Bearer 6g43cv8PD1aE5beadkZfhV6'
|
||||
Content-Type: application/json
|
||||
Accept: application/json
|
||||
urlParameters: []
|
||||
cleanUrlParameters: []
|
||||
queryParameters:
|
||||
filter:
|
||||
name: filter
|
||||
description: 'A JSON encoded array of key/value pairs to filter results by.'
|
||||
required: false
|
||||
example: '{"company":"1","location":"2"}'
|
||||
type: string
|
||||
enumValues: []
|
||||
exampleWasSpecified: true
|
||||
nullable: false
|
||||
custom: []
|
||||
search:
|
||||
name: search
|
||||
description: 'A search term to filter results by.'
|
||||
required: false
|
||||
example: architecto
|
||||
type: string
|
||||
enumValues: []
|
||||
exampleWasSpecified: false
|
||||
nullable: false
|
||||
custom: []
|
||||
name:
|
||||
name: name
|
||||
description: 'Filter by exact name.'
|
||||
required: false
|
||||
example: architecto
|
||||
type: string
|
||||
enumValues: []
|
||||
exampleWasSpecified: false
|
||||
nullable: false
|
||||
custom: []
|
||||
company_id:
|
||||
name: company_id
|
||||
description: 'Filter by exact company ID.'
|
||||
required: false
|
||||
example: 16
|
||||
type: integer
|
||||
enumValues: []
|
||||
exampleWasSpecified: false
|
||||
nullable: false
|
||||
custom: []
|
||||
category_id:
|
||||
name: category_id
|
||||
description: 'Filter by exact category ID.'
|
||||
required: false
|
||||
example: 16
|
||||
type: integer
|
||||
enumValues: []
|
||||
exampleWasSpecified: false
|
||||
nullable: false
|
||||
custom: []
|
||||
model_number:
|
||||
name: model_number
|
||||
description: 'Filter by exact model number.'
|
||||
required: false
|
||||
example: architecto
|
||||
type: string
|
||||
enumValues: []
|
||||
exampleWasSpecified: false
|
||||
nullable: false
|
||||
custom: []
|
||||
manufacturer_id:
|
||||
name: manufacturer_id
|
||||
description: 'Filter by exact manufacturer ID.'
|
||||
required: false
|
||||
example: 16
|
||||
type: integer
|
||||
enumValues: []
|
||||
exampleWasSpecified: false
|
||||
nullable: false
|
||||
custom: []
|
||||
supplier_id:
|
||||
name: supplier_id
|
||||
description: 'Filter by exact supplier ID.'
|
||||
required: false
|
||||
example: 16
|
||||
type: integer
|
||||
enumValues: []
|
||||
exampleWasSpecified: false
|
||||
nullable: false
|
||||
custom: []
|
||||
location_id:
|
||||
name: location_id
|
||||
description: 'Filter by exact location ID.'
|
||||
required: false
|
||||
example: 16
|
||||
type: integer
|
||||
enumValues: []
|
||||
exampleWasSpecified: false
|
||||
nullable: false
|
||||
custom: []
|
||||
notes:
|
||||
name: notes
|
||||
description: 'Filter by exact notes.'
|
||||
required: false
|
||||
example: architecto
|
||||
type: string
|
||||
enumValues: []
|
||||
exampleWasSpecified: false
|
||||
nullable: false
|
||||
custom: []
|
||||
sort:
|
||||
name: sort
|
||||
description: 'The column to sort results by. Must be one of the following: id, name, order_number, min_amt, purchase_date, purchase_cost, company, category, model_number, item_no, manufacturer, location, qty, image, company, location, category, supplier, manufacturer. Default is created_at.'
|
||||
required: false
|
||||
example: architecto
|
||||
type: string
|
||||
enumValues: []
|
||||
exampleWasSpecified: false
|
||||
nullable: false
|
||||
custom: []
|
||||
order:
|
||||
name: order
|
||||
description: 'The order to sort results by. Must be one of the following: asc, desc. Default is desc.'
|
||||
required: false
|
||||
example: architecto
|
||||
type: string
|
||||
enumValues: []
|
||||
exampleWasSpecified: false
|
||||
nullable: false
|
||||
custom: []
|
||||
cleanQueryParameters:
|
||||
filter: '{"company":"1","location":"2"}'
|
||||
search: architecto
|
||||
name: architecto
|
||||
company_id: 16
|
||||
category_id: 16
|
||||
model_number: architecto
|
||||
manufacturer_id: 16
|
||||
supplier_id: 16
|
||||
location_id: 16
|
||||
notes: architecto
|
||||
sort: architecto
|
||||
order: architecto
|
||||
bodyParameters: []
|
||||
cleanBodyParameters: []
|
||||
fileParameters: []
|
||||
responses:
|
||||
-
|
||||
status: 401
|
||||
content: '{"error":"Unauthorized or unauthenticated."}'
|
||||
headers:
|
||||
cache-control: 'max-age=0, must-revalidate, no-cache, no-store, private'
|
||||
content-type: application/json
|
||||
vary: Origin
|
||||
pragma: no-cache
|
||||
expires: 'Sun, 02 Jan 1990 00:00:00 GMT'
|
||||
x-content-type-options: nosniff
|
||||
feature-policy: "accelerometer 'none';autoplay 'none';camera 'none';display-capture 'none';document-domain 'none';encrypted-media 'none';fullscreen 'none';geolocation 'none';sync-xhr 'none';usb 'none';xr-spatial-tracking 'none'"
|
||||
referrer-policy: same-origin
|
||||
content-security-policy: "default-src 'self';style-src 'self' 'unsafe-inline';script-src 'self' 'unsafe-inline' 'unsafe-eval';connect-src 'self';object-src 'none';font-src 'self' data:;img-src 'self' data: https://snipe-it.test https://avatars.githubusercontent.com/u/ https://www.google.com/images/branding/googlelogo/2x/ https://snipe-flysystem-public-test.s3-us-west-2.amazonaws.com https://secure.gravatar.com http://gravatar.com maps.google.com maps.gstatic.com *.googleapis.com"
|
||||
set-cookie: 'snipe-dev_local=WMv6quPUXaLnZTkEXk5aBwdTDMuUgt7fQTd6uLZf; expires=Sat, 18 Oct 2025 20:42:52 GMT; Max-Age=720000; path=/; secure; httponly; samesite=lax'
|
||||
description: null
|
||||
custom: []
|
||||
responseFields: []
|
||||
auth:
|
||||
- headers
|
||||
- Authorization
|
||||
- 'Bearer 6g43cv8PD1aE5beadkZfhV6'
|
||||
controller: null
|
||||
method: null
|
||||
route: null
|
||||
custom: []
|
||||
-
|
||||
httpMethods:
|
||||
- POST
|
||||
uri: api/v1/consumables
|
||||
metadata:
|
||||
groupName: Consumables
|
||||
groupDescription: ''
|
||||
subgroup: ''
|
||||
subgroupDescription: ''
|
||||
title: 'Store a newly created resource in storage.'
|
||||
description: ''
|
||||
authenticated: true
|
||||
deprecated: false
|
||||
custom: []
|
||||
headers:
|
||||
Authorization: 'Bearer 6g43cv8PD1aE5beadkZfhV6'
|
||||
Content-Type: application/json
|
||||
Accept: application/json
|
||||
urlParameters: []
|
||||
cleanUrlParameters: []
|
||||
queryParameters: []
|
||||
cleanQueryParameters: []
|
||||
bodyParameters: []
|
||||
cleanBodyParameters: []
|
||||
fileParameters: []
|
||||
responses: []
|
||||
responseFields: []
|
||||
auth:
|
||||
- headers
|
||||
- Authorization
|
||||
- 'Bearer 6g43cv8PD1aE5beadkZfhV6'
|
||||
controller: null
|
||||
method: null
|
||||
route: null
|
||||
custom: []
|
||||
-
|
||||
httpMethods:
|
||||
- GET
|
||||
uri: 'api/v1/consumables/{id}'
|
||||
metadata:
|
||||
groupName: Consumables
|
||||
groupDescription: ''
|
||||
subgroup: ''
|
||||
subgroupDescription: ''
|
||||
title: 'Show Consumable'
|
||||
description: ''
|
||||
authenticated: true
|
||||
deprecated: false
|
||||
custom: []
|
||||
headers:
|
||||
Authorization: 'Bearer 6g43cv8PD1aE5beadkZfhV6'
|
||||
Content-Type: application/json
|
||||
Accept: application/json
|
||||
urlParameters:
|
||||
id:
|
||||
name: id
|
||||
description: 'The ID of the consumable.'
|
||||
required: true
|
||||
example: 1
|
||||
type: integer
|
||||
enumValues: []
|
||||
exampleWasSpecified: false
|
||||
nullable: false
|
||||
custom: []
|
||||
cleanUrlParameters:
|
||||
id: 1
|
||||
queryParameters: []
|
||||
cleanQueryParameters: []
|
||||
bodyParameters: []
|
||||
cleanBodyParameters: []
|
||||
fileParameters: []
|
||||
responses:
|
||||
-
|
||||
status: 401
|
||||
content: '{"error":"Unauthorized or unauthenticated."}'
|
||||
headers:
|
||||
cache-control: 'max-age=0, must-revalidate, no-cache, no-store, private'
|
||||
content-type: application/json
|
||||
vary: Origin
|
||||
pragma: no-cache
|
||||
expires: 'Sun, 02 Jan 1990 00:00:00 GMT'
|
||||
x-content-type-options: nosniff
|
||||
feature-policy: "accelerometer 'none';autoplay 'none';camera 'none';display-capture 'none';document-domain 'none';encrypted-media 'none';fullscreen 'none';geolocation 'none';sync-xhr 'none';usb 'none';xr-spatial-tracking 'none'"
|
||||
referrer-policy: same-origin
|
||||
content-security-policy: "default-src 'self';style-src 'self' 'unsafe-inline';script-src 'self' 'unsafe-inline' 'unsafe-eval';connect-src 'self';object-src 'none';font-src 'self' data:;img-src 'self' data: https://snipe-it.test https://avatars.githubusercontent.com/u/ https://www.google.com/images/branding/googlelogo/2x/ https://snipe-flysystem-public-test.s3-us-west-2.amazonaws.com https://secure.gravatar.com http://gravatar.com maps.google.com maps.gstatic.com *.googleapis.com"
|
||||
set-cookie: 'snipe-dev_local=oTfWSAjrq9p5g7qEYt7eFY4Dl7io060HverF1daF; expires=Sat, 18 Oct 2025 20:42:52 GMT; Max-Age=720000; path=/; secure; httponly; samesite=lax'
|
||||
description: null
|
||||
custom: []
|
||||
responseFields: []
|
||||
auth:
|
||||
- headers
|
||||
- Authorization
|
||||
- 'Bearer 6g43cv8PD1aE5beadkZfhV6'
|
||||
controller: null
|
||||
method: null
|
||||
route: null
|
||||
custom: []
|
||||
-
|
||||
httpMethods:
|
||||
- PUT
|
||||
- PATCH
|
||||
uri: 'api/v1/consumables/{id}'
|
||||
metadata:
|
||||
groupName: Consumables
|
||||
groupDescription: ''
|
||||
subgroup: ''
|
||||
subgroupDescription: ''
|
||||
title: 'Update Consumable'
|
||||
description: ''
|
||||
authenticated: true
|
||||
deprecated: false
|
||||
custom: []
|
||||
headers:
|
||||
Authorization: 'Bearer 6g43cv8PD1aE5beadkZfhV6'
|
||||
Content-Type: application/json
|
||||
Accept: application/json
|
||||
urlParameters:
|
||||
id:
|
||||
name: id
|
||||
description: 'The ID of the consumable.'
|
||||
required: true
|
||||
example: 1
|
||||
type: integer
|
||||
enumValues: []
|
||||
exampleWasSpecified: false
|
||||
nullable: false
|
||||
custom: []
|
||||
cleanUrlParameters:
|
||||
id: 1
|
||||
queryParameters: []
|
||||
cleanQueryParameters: []
|
||||
bodyParameters: []
|
||||
cleanBodyParameters: []
|
||||
fileParameters: []
|
||||
responses: []
|
||||
responseFields: []
|
||||
auth:
|
||||
- headers
|
||||
- Authorization
|
||||
- 'Bearer 6g43cv8PD1aE5beadkZfhV6'
|
||||
controller: null
|
||||
method: null
|
||||
route: null
|
||||
custom: []
|
||||
-
|
||||
httpMethods:
|
||||
- DELETE
|
||||
uri: 'api/v1/consumables/{id}'
|
||||
metadata:
|
||||
groupName: Consumables
|
||||
groupDescription: ''
|
||||
subgroup: ''
|
||||
subgroupDescription: ''
|
||||
title: 'Delete Consumable'
|
||||
description: ''
|
||||
authenticated: true
|
||||
deprecated: false
|
||||
custom: []
|
||||
headers:
|
||||
Authorization: 'Bearer 6g43cv8PD1aE5beadkZfhV6'
|
||||
Content-Type: application/json
|
||||
Accept: application/json
|
||||
urlParameters:
|
||||
id:
|
||||
name: id
|
||||
description: 'The ID of the consumable.'
|
||||
required: true
|
||||
example: 1
|
||||
type: integer
|
||||
enumValues: []
|
||||
exampleWasSpecified: false
|
||||
nullable: false
|
||||
custom: []
|
||||
cleanUrlParameters:
|
||||
id: 1
|
||||
queryParameters: []
|
||||
cleanQueryParameters: []
|
||||
bodyParameters: []
|
||||
cleanBodyParameters: []
|
||||
fileParameters: []
|
||||
responses: []
|
||||
responseFields: []
|
||||
auth:
|
||||
- headers
|
||||
- Authorization
|
||||
- 'Bearer 6g43cv8PD1aE5beadkZfhV6'
|
||||
controller: null
|
||||
method: null
|
||||
route: null
|
||||
custom: []
|
||||
@@ -1,244 +0,0 @@
|
||||
name: Depreciations
|
||||
description: ''
|
||||
endpoints:
|
||||
-
|
||||
httpMethods:
|
||||
- GET
|
||||
uri: api/v1/depreciations
|
||||
metadata:
|
||||
groupName: Depreciations
|
||||
groupDescription: ''
|
||||
subgroup: ''
|
||||
subgroupDescription: ''
|
||||
title: 'List Depreciations'
|
||||
description: ''
|
||||
authenticated: true
|
||||
deprecated: false
|
||||
custom: []
|
||||
headers:
|
||||
Authorization: 'Bearer 6g43cv8PD1aE5beadkZfhV6'
|
||||
Content-Type: application/json
|
||||
Accept: application/json
|
||||
urlParameters: []
|
||||
cleanUrlParameters: []
|
||||
queryParameters: []
|
||||
cleanQueryParameters: []
|
||||
bodyParameters: []
|
||||
cleanBodyParameters: []
|
||||
fileParameters: []
|
||||
responses:
|
||||
-
|
||||
status: 401
|
||||
content: '{"error":"Unauthorized or unauthenticated."}'
|
||||
headers:
|
||||
cache-control: 'max-age=0, must-revalidate, no-cache, no-store, private'
|
||||
content-type: application/json
|
||||
vary: Origin
|
||||
pragma: no-cache
|
||||
expires: 'Sun, 02 Jan 1990 00:00:00 GMT'
|
||||
x-content-type-options: nosniff
|
||||
feature-policy: "accelerometer 'none';autoplay 'none';camera 'none';display-capture 'none';document-domain 'none';encrypted-media 'none';fullscreen 'none';geolocation 'none';sync-xhr 'none';usb 'none';xr-spatial-tracking 'none'"
|
||||
referrer-policy: same-origin
|
||||
content-security-policy: "default-src 'self';style-src 'self' 'unsafe-inline';script-src 'self' 'unsafe-inline' 'unsafe-eval';connect-src 'self';object-src 'none';font-src 'self' data:;img-src 'self' data: https://snipe-it.test https://avatars.githubusercontent.com/u/ https://www.google.com/images/branding/googlelogo/2x/ https://snipe-flysystem-public-test.s3-us-west-2.amazonaws.com https://secure.gravatar.com http://gravatar.com maps.google.com maps.gstatic.com *.googleapis.com"
|
||||
set-cookie: 'snipe-dev_local=TaZAI56rS9h74YByHlSA9ZrXGsTjQD4onwKaqiFF; expires=Sat, 18 Oct 2025 20:42:52 GMT; Max-Age=720000; path=/; secure; httponly; samesite=lax'
|
||||
description: null
|
||||
custom: []
|
||||
responseFields: []
|
||||
auth:
|
||||
- headers
|
||||
- Authorization
|
||||
- 'Bearer 6g43cv8PD1aE5beadkZfhV6'
|
||||
controller: null
|
||||
method: null
|
||||
route: null
|
||||
custom: []
|
||||
-
|
||||
httpMethods:
|
||||
- POST
|
||||
uri: api/v1/depreciations
|
||||
metadata:
|
||||
groupName: Depreciations
|
||||
groupDescription: ''
|
||||
subgroup: ''
|
||||
subgroupDescription: ''
|
||||
title: 'Create Depreciation'
|
||||
description: ''
|
||||
authenticated: true
|
||||
deprecated: false
|
||||
custom: []
|
||||
headers:
|
||||
Authorization: 'Bearer 6g43cv8PD1aE5beadkZfhV6'
|
||||
Content-Type: application/json
|
||||
Accept: application/json
|
||||
urlParameters: []
|
||||
cleanUrlParameters: []
|
||||
queryParameters: []
|
||||
cleanQueryParameters: []
|
||||
bodyParameters: []
|
||||
cleanBodyParameters: []
|
||||
fileParameters: []
|
||||
responses: []
|
||||
responseFields: []
|
||||
auth:
|
||||
- headers
|
||||
- Authorization
|
||||
- 'Bearer 6g43cv8PD1aE5beadkZfhV6'
|
||||
controller: null
|
||||
method: null
|
||||
route: null
|
||||
custom: []
|
||||
-
|
||||
httpMethods:
|
||||
- GET
|
||||
uri: 'api/v1/depreciations/{depreciation_id}'
|
||||
metadata:
|
||||
groupName: Depreciations
|
||||
groupDescription: ''
|
||||
subgroup: ''
|
||||
subgroupDescription: ''
|
||||
title: 'Show Depreciation'
|
||||
description: ''
|
||||
authenticated: true
|
||||
deprecated: false
|
||||
custom: []
|
||||
headers:
|
||||
Authorization: 'Bearer 6g43cv8PD1aE5beadkZfhV6'
|
||||
Content-Type: application/json
|
||||
Accept: application/json
|
||||
urlParameters:
|
||||
depreciation_id:
|
||||
name: depreciation_id
|
||||
description: 'The ID of the depreciation.'
|
||||
required: true
|
||||
example: architecto
|
||||
type: string
|
||||
enumValues: []
|
||||
exampleWasSpecified: false
|
||||
nullable: false
|
||||
custom: []
|
||||
cleanUrlParameters:
|
||||
depreciation_id: architecto
|
||||
queryParameters: []
|
||||
cleanQueryParameters: []
|
||||
bodyParameters: []
|
||||
cleanBodyParameters: []
|
||||
fileParameters: []
|
||||
responses:
|
||||
-
|
||||
status: 401
|
||||
content: '{"error":"Unauthorized or unauthenticated."}'
|
||||
headers:
|
||||
cache-control: 'max-age=0, must-revalidate, no-cache, no-store, private'
|
||||
content-type: application/json
|
||||
vary: Origin
|
||||
pragma: no-cache
|
||||
expires: 'Sun, 02 Jan 1990 00:00:00 GMT'
|
||||
x-content-type-options: nosniff
|
||||
feature-policy: "accelerometer 'none';autoplay 'none';camera 'none';display-capture 'none';document-domain 'none';encrypted-media 'none';fullscreen 'none';geolocation 'none';sync-xhr 'none';usb 'none';xr-spatial-tracking 'none'"
|
||||
referrer-policy: same-origin
|
||||
content-security-policy: "default-src 'self';style-src 'self' 'unsafe-inline';script-src 'self' 'unsafe-inline' 'unsafe-eval';connect-src 'self';object-src 'none';font-src 'self' data:;img-src 'self' data: https://snipe-it.test https://avatars.githubusercontent.com/u/ https://www.google.com/images/branding/googlelogo/2x/ https://snipe-flysystem-public-test.s3-us-west-2.amazonaws.com https://secure.gravatar.com http://gravatar.com maps.google.com maps.gstatic.com *.googleapis.com"
|
||||
set-cookie: 'snipe-dev_local=qFky4u180BfuHQB1d4a5A7K5Q4MOHcVdqELFA4ow; expires=Sat, 18 Oct 2025 20:42:52 GMT; Max-Age=720000; path=/; secure; httponly; samesite=lax'
|
||||
description: null
|
||||
custom: []
|
||||
responseFields: []
|
||||
auth:
|
||||
- headers
|
||||
- Authorization
|
||||
- 'Bearer 6g43cv8PD1aE5beadkZfhV6'
|
||||
controller: null
|
||||
method: null
|
||||
route: null
|
||||
custom: []
|
||||
-
|
||||
httpMethods:
|
||||
- PUT
|
||||
- PATCH
|
||||
uri: 'api/v1/depreciations/{depreciation_id}'
|
||||
metadata:
|
||||
groupName: Depreciations
|
||||
groupDescription: ''
|
||||
subgroup: ''
|
||||
subgroupDescription: ''
|
||||
title: 'Update Depreciation'
|
||||
description: ''
|
||||
authenticated: true
|
||||
deprecated: false
|
||||
custom: []
|
||||
headers:
|
||||
Authorization: 'Bearer 6g43cv8PD1aE5beadkZfhV6'
|
||||
Content-Type: application/json
|
||||
Accept: application/json
|
||||
urlParameters:
|
||||
depreciation_id:
|
||||
name: depreciation_id
|
||||
description: 'The ID of the depreciation.'
|
||||
required: true
|
||||
example: architecto
|
||||
type: string
|
||||
enumValues: []
|
||||
exampleWasSpecified: false
|
||||
nullable: false
|
||||
custom: []
|
||||
cleanUrlParameters:
|
||||
depreciation_id: architecto
|
||||
queryParameters: []
|
||||
cleanQueryParameters: []
|
||||
bodyParameters: []
|
||||
cleanBodyParameters: []
|
||||
fileParameters: []
|
||||
responses: []
|
||||
responseFields: []
|
||||
auth:
|
||||
- headers
|
||||
- Authorization
|
||||
- 'Bearer 6g43cv8PD1aE5beadkZfhV6'
|
||||
controller: null
|
||||
method: null
|
||||
route: null
|
||||
custom: []
|
||||
-
|
||||
httpMethods:
|
||||
- DELETE
|
||||
uri: 'api/v1/depreciations/{depreciation_id}'
|
||||
metadata:
|
||||
groupName: Depreciations
|
||||
groupDescription: ''
|
||||
subgroup: ''
|
||||
subgroupDescription: ''
|
||||
title: 'Delete Depreciation'
|
||||
description: ''
|
||||
authenticated: true
|
||||
deprecated: false
|
||||
custom: []
|
||||
headers:
|
||||
Authorization: 'Bearer 6g43cv8PD1aE5beadkZfhV6'
|
||||
Content-Type: application/json
|
||||
Accept: application/json
|
||||
urlParameters:
|
||||
depreciation_id:
|
||||
name: depreciation_id
|
||||
description: 'The ID of the depreciation.'
|
||||
required: true
|
||||
example: architecto
|
||||
type: string
|
||||
enumValues: []
|
||||
exampleWasSpecified: false
|
||||
nullable: false
|
||||
custom: []
|
||||
cleanUrlParameters:
|
||||
depreciation_id: architecto
|
||||
queryParameters: []
|
||||
cleanQueryParameters: []
|
||||
bodyParameters: []
|
||||
cleanBodyParameters: []
|
||||
fileParameters: []
|
||||
responses: []
|
||||
responseFields: []
|
||||
auth:
|
||||
- headers
|
||||
- Authorization
|
||||
- 'Bearer 6g43cv8PD1aE5beadkZfhV6'
|
||||
controller: null
|
||||
method: null
|
||||
route: null
|
||||
custom: []
|
||||
@@ -1,726 +0,0 @@
|
||||
name: 'Custom Fields'
|
||||
description: ''
|
||||
endpoints:
|
||||
-
|
||||
httpMethods:
|
||||
- POST
|
||||
uri: 'api/v1/fields/fieldsets/{id}/order'
|
||||
metadata:
|
||||
groupName: 'Custom Fields'
|
||||
groupDescription: ''
|
||||
subgroup: ''
|
||||
subgroupDescription: ''
|
||||
title: 'Reorder Fields'
|
||||
description: ''
|
||||
authenticated: true
|
||||
deprecated: false
|
||||
custom: []
|
||||
headers:
|
||||
Authorization: 'Bearer 6g43cv8PD1aE5beadkZfhV6'
|
||||
Content-Type: application/json
|
||||
Accept: application/json
|
||||
urlParameters:
|
||||
id:
|
||||
name: id
|
||||
description: 'The ID of the fieldset.'
|
||||
required: true
|
||||
example: architecto
|
||||
type: string
|
||||
enumValues: []
|
||||
exampleWasSpecified: false
|
||||
nullable: false
|
||||
custom: []
|
||||
cleanUrlParameters:
|
||||
id: architecto
|
||||
queryParameters: []
|
||||
cleanQueryParameters: []
|
||||
bodyParameters: []
|
||||
cleanBodyParameters: []
|
||||
fileParameters: []
|
||||
responses: []
|
||||
responseFields: []
|
||||
auth:
|
||||
- headers
|
||||
- Authorization
|
||||
- 'Bearer 6g43cv8PD1aE5beadkZfhV6'
|
||||
controller: null
|
||||
method: null
|
||||
route: null
|
||||
custom: []
|
||||
-
|
||||
httpMethods:
|
||||
- POST
|
||||
uri: 'api/v1/fields/{field}/associate'
|
||||
metadata:
|
||||
groupName: 'Custom Fields'
|
||||
groupDescription: ''
|
||||
subgroup: ''
|
||||
subgroupDescription: ''
|
||||
title: 'Add Field to Fieldset'
|
||||
description: ''
|
||||
authenticated: true
|
||||
deprecated: false
|
||||
custom: []
|
||||
headers:
|
||||
Authorization: 'Bearer 6g43cv8PD1aE5beadkZfhV6'
|
||||
Content-Type: application/json
|
||||
Accept: application/json
|
||||
urlParameters:
|
||||
field:
|
||||
name: field
|
||||
description: 'The field.'
|
||||
required: true
|
||||
example: architecto
|
||||
type: string
|
||||
enumValues: []
|
||||
exampleWasSpecified: false
|
||||
nullable: false
|
||||
custom: []
|
||||
cleanUrlParameters:
|
||||
field: architecto
|
||||
queryParameters: []
|
||||
cleanQueryParameters: []
|
||||
bodyParameters: []
|
||||
cleanBodyParameters: []
|
||||
fileParameters: []
|
||||
responses: []
|
||||
responseFields: []
|
||||
auth:
|
||||
- headers
|
||||
- Authorization
|
||||
- 'Bearer 6g43cv8PD1aE5beadkZfhV6'
|
||||
controller: null
|
||||
method: null
|
||||
route: null
|
||||
custom: []
|
||||
-
|
||||
httpMethods:
|
||||
- POST
|
||||
uri: 'api/v1/fields/{field}/disassociate'
|
||||
metadata:
|
||||
groupName: 'Custom Fields'
|
||||
groupDescription: ''
|
||||
subgroup: ''
|
||||
subgroupDescription: ''
|
||||
title: 'Remove Field from Fieldset'
|
||||
description: ''
|
||||
authenticated: true
|
||||
deprecated: false
|
||||
custom: []
|
||||
headers:
|
||||
Authorization: 'Bearer 6g43cv8PD1aE5beadkZfhV6'
|
||||
Content-Type: application/json
|
||||
Accept: application/json
|
||||
urlParameters:
|
||||
field:
|
||||
name: field
|
||||
description: 'The field.'
|
||||
required: true
|
||||
example: architecto
|
||||
type: string
|
||||
enumValues: []
|
||||
exampleWasSpecified: false
|
||||
nullable: false
|
||||
custom: []
|
||||
cleanUrlParameters:
|
||||
field: architecto
|
||||
queryParameters: []
|
||||
cleanQueryParameters: []
|
||||
bodyParameters: []
|
||||
cleanBodyParameters: []
|
||||
fileParameters: []
|
||||
responses: []
|
||||
responseFields: []
|
||||
auth:
|
||||
- headers
|
||||
- Authorization
|
||||
- 'Bearer 6g43cv8PD1aE5beadkZfhV6'
|
||||
controller: null
|
||||
method: null
|
||||
route: null
|
||||
custom: []
|
||||
-
|
||||
httpMethods:
|
||||
- GET
|
||||
uri: api/v1/fields
|
||||
metadata:
|
||||
groupName: 'Custom Fields'
|
||||
groupDescription: ''
|
||||
subgroup: ''
|
||||
subgroupDescription: ''
|
||||
title: 'List Custom Fields'
|
||||
description: ''
|
||||
authenticated: true
|
||||
deprecated: false
|
||||
custom: []
|
||||
headers:
|
||||
Authorization: 'Bearer 6g43cv8PD1aE5beadkZfhV6'
|
||||
Content-Type: application/json
|
||||
Accept: application/json
|
||||
urlParameters: []
|
||||
cleanUrlParameters: []
|
||||
queryParameters: []
|
||||
cleanQueryParameters: []
|
||||
bodyParameters: []
|
||||
cleanBodyParameters: []
|
||||
fileParameters: []
|
||||
responses:
|
||||
-
|
||||
status: 401
|
||||
content: '{"error":"Unauthorized or unauthenticated."}'
|
||||
headers:
|
||||
cache-control: 'max-age=0, must-revalidate, no-cache, no-store, private'
|
||||
content-type: application/json
|
||||
vary: Origin
|
||||
pragma: no-cache
|
||||
expires: 'Sun, 02 Jan 1990 00:00:00 GMT'
|
||||
x-content-type-options: nosniff
|
||||
feature-policy: "accelerometer 'none';autoplay 'none';camera 'none';display-capture 'none';document-domain 'none';encrypted-media 'none';fullscreen 'none';geolocation 'none';sync-xhr 'none';usb 'none';xr-spatial-tracking 'none'"
|
||||
referrer-policy: same-origin
|
||||
content-security-policy: "default-src 'self';style-src 'self' 'unsafe-inline';script-src 'self' 'unsafe-inline' 'unsafe-eval';connect-src 'self';object-src 'none';font-src 'self' data:;img-src 'self' data: https://snipe-it.test https://avatars.githubusercontent.com/u/ https://www.google.com/images/branding/googlelogo/2x/ https://snipe-flysystem-public-test.s3-us-west-2.amazonaws.com https://secure.gravatar.com http://gravatar.com maps.google.com maps.gstatic.com *.googleapis.com"
|
||||
set-cookie: 'snipe-dev_local=MTrOxDhLsWMBw1aLYKK9q1GA3VjT43PhCRp7KBa9; expires=Sat, 18 Oct 2025 20:42:52 GMT; Max-Age=720000; path=/; secure; httponly; samesite=lax'
|
||||
description: null
|
||||
custom: []
|
||||
responseFields: []
|
||||
auth:
|
||||
- headers
|
||||
- Authorization
|
||||
- 'Bearer 6g43cv8PD1aE5beadkZfhV6'
|
||||
controller: null
|
||||
method: null
|
||||
route: null
|
||||
custom: []
|
||||
-
|
||||
httpMethods:
|
||||
- POST
|
||||
uri: api/v1/fields
|
||||
metadata:
|
||||
groupName: 'Custom Fields'
|
||||
groupDescription: ''
|
||||
subgroup: ''
|
||||
subgroupDescription: ''
|
||||
title: 'Create Field'
|
||||
description: ''
|
||||
authenticated: true
|
||||
deprecated: false
|
||||
custom: []
|
||||
headers:
|
||||
Authorization: 'Bearer 6g43cv8PD1aE5beadkZfhV6'
|
||||
Content-Type: application/json
|
||||
Accept: application/json
|
||||
urlParameters: []
|
||||
cleanUrlParameters: []
|
||||
queryParameters: []
|
||||
cleanQueryParameters: []
|
||||
bodyParameters: []
|
||||
cleanBodyParameters: []
|
||||
fileParameters: []
|
||||
responses: []
|
||||
responseFields: []
|
||||
auth:
|
||||
- headers
|
||||
- Authorization
|
||||
- 'Bearer 6g43cv8PD1aE5beadkZfhV6'
|
||||
controller: null
|
||||
method: null
|
||||
route: null
|
||||
custom: []
|
||||
-
|
||||
httpMethods:
|
||||
- GET
|
||||
uri: 'api/v1/fields/{field}'
|
||||
metadata:
|
||||
groupName: 'Custom Fields'
|
||||
groupDescription: ''
|
||||
subgroup: ''
|
||||
subgroupDescription: ''
|
||||
title: 'Show Field'
|
||||
description: ''
|
||||
authenticated: true
|
||||
deprecated: false
|
||||
custom: []
|
||||
headers:
|
||||
Authorization: 'Bearer 6g43cv8PD1aE5beadkZfhV6'
|
||||
Content-Type: application/json
|
||||
Accept: application/json
|
||||
urlParameters:
|
||||
field:
|
||||
name: field
|
||||
description: 'The field.'
|
||||
required: true
|
||||
example: architecto
|
||||
type: string
|
||||
enumValues: []
|
||||
exampleWasSpecified: false
|
||||
nullable: false
|
||||
custom: []
|
||||
cleanUrlParameters:
|
||||
field: architecto
|
||||
queryParameters: []
|
||||
cleanQueryParameters: []
|
||||
bodyParameters: []
|
||||
cleanBodyParameters: []
|
||||
fileParameters: []
|
||||
responses:
|
||||
-
|
||||
status: 401
|
||||
content: '{"error":"Unauthorized or unauthenticated."}'
|
||||
headers:
|
||||
cache-control: 'max-age=0, must-revalidate, no-cache, no-store, private'
|
||||
content-type: application/json
|
||||
vary: Origin
|
||||
pragma: no-cache
|
||||
expires: 'Sun, 02 Jan 1990 00:00:00 GMT'
|
||||
x-content-type-options: nosniff
|
||||
feature-policy: "accelerometer 'none';autoplay 'none';camera 'none';display-capture 'none';document-domain 'none';encrypted-media 'none';fullscreen 'none';geolocation 'none';sync-xhr 'none';usb 'none';xr-spatial-tracking 'none'"
|
||||
referrer-policy: same-origin
|
||||
content-security-policy: "default-src 'self';style-src 'self' 'unsafe-inline';script-src 'self' 'unsafe-inline' 'unsafe-eval';connect-src 'self';object-src 'none';font-src 'self' data:;img-src 'self' data: https://snipe-it.test https://avatars.githubusercontent.com/u/ https://www.google.com/images/branding/googlelogo/2x/ https://snipe-flysystem-public-test.s3-us-west-2.amazonaws.com https://secure.gravatar.com http://gravatar.com maps.google.com maps.gstatic.com *.googleapis.com"
|
||||
set-cookie: 'snipe-dev_local=jdlBn85i46xp3MdUb7Dbb1igonFqeCNdzQwTOmnl; expires=Sat, 18 Oct 2025 20:42:52 GMT; Max-Age=720000; path=/; secure; httponly; samesite=lax'
|
||||
description: null
|
||||
custom: []
|
||||
responseFields: []
|
||||
auth:
|
||||
- headers
|
||||
- Authorization
|
||||
- 'Bearer 6g43cv8PD1aE5beadkZfhV6'
|
||||
controller: null
|
||||
method: null
|
||||
route: null
|
||||
custom: []
|
||||
-
|
||||
httpMethods:
|
||||
- PUT
|
||||
- PATCH
|
||||
uri: 'api/v1/fields/{field}'
|
||||
metadata:
|
||||
groupName: 'Custom Fields'
|
||||
groupDescription: ''
|
||||
subgroup: ''
|
||||
subgroupDescription: ''
|
||||
title: 'Update Field'
|
||||
description: ''
|
||||
authenticated: true
|
||||
deprecated: false
|
||||
custom: []
|
||||
headers:
|
||||
Authorization: 'Bearer 6g43cv8PD1aE5beadkZfhV6'
|
||||
Content-Type: application/json
|
||||
Accept: application/json
|
||||
urlParameters:
|
||||
field:
|
||||
name: field
|
||||
description: 'The field.'
|
||||
required: true
|
||||
example: architecto
|
||||
type: string
|
||||
enumValues: []
|
||||
exampleWasSpecified: false
|
||||
nullable: false
|
||||
custom: []
|
||||
cleanUrlParameters:
|
||||
field: architecto
|
||||
queryParameters: []
|
||||
cleanQueryParameters: []
|
||||
bodyParameters: []
|
||||
cleanBodyParameters: []
|
||||
fileParameters: []
|
||||
responses: []
|
||||
responseFields: []
|
||||
auth:
|
||||
- headers
|
||||
- Authorization
|
||||
- 'Bearer 6g43cv8PD1aE5beadkZfhV6'
|
||||
controller: null
|
||||
method: null
|
||||
route: null
|
||||
custom: []
|
||||
-
|
||||
httpMethods:
|
||||
- DELETE
|
||||
uri: 'api/v1/fields/{field}'
|
||||
metadata:
|
||||
groupName: 'Custom Fields'
|
||||
groupDescription: ''
|
||||
subgroup: ''
|
||||
subgroupDescription: ''
|
||||
title: 'Delete Field'
|
||||
description: ''
|
||||
authenticated: true
|
||||
deprecated: false
|
||||
custom: []
|
||||
headers:
|
||||
Authorization: 'Bearer 6g43cv8PD1aE5beadkZfhV6'
|
||||
Content-Type: application/json
|
||||
Accept: application/json
|
||||
urlParameters:
|
||||
field:
|
||||
name: field
|
||||
description: 'The field.'
|
||||
required: true
|
||||
example: architecto
|
||||
type: string
|
||||
enumValues: []
|
||||
exampleWasSpecified: false
|
||||
nullable: false
|
||||
custom: []
|
||||
cleanUrlParameters:
|
||||
field: architecto
|
||||
queryParameters: []
|
||||
cleanQueryParameters: []
|
||||
bodyParameters: []
|
||||
cleanBodyParameters: []
|
||||
fileParameters: []
|
||||
responses: []
|
||||
responseFields: []
|
||||
auth:
|
||||
- headers
|
||||
- Authorization
|
||||
- 'Bearer 6g43cv8PD1aE5beadkZfhV6'
|
||||
controller: null
|
||||
method: null
|
||||
route: null
|
||||
custom: []
|
||||
-
|
||||
httpMethods:
|
||||
- POST
|
||||
uri: 'api/v1/fieldsets/{fieldset}/fields'
|
||||
metadata:
|
||||
groupName: 'Custom Fields'
|
||||
groupDescription: ''
|
||||
subgroup: 'Custom Fieldsets'
|
||||
subgroupDescription: ''
|
||||
title: 'Show Fields in Fieldset'
|
||||
description: ''
|
||||
authenticated: true
|
||||
deprecated: false
|
||||
custom: []
|
||||
headers:
|
||||
Authorization: 'Bearer 6g43cv8PD1aE5beadkZfhV6'
|
||||
Content-Type: application/json
|
||||
Accept: application/json
|
||||
urlParameters:
|
||||
fieldset:
|
||||
name: fieldset
|
||||
description: 'The fieldset.'
|
||||
required: true
|
||||
example: architecto
|
||||
type: string
|
||||
enumValues: []
|
||||
exampleWasSpecified: false
|
||||
nullable: false
|
||||
custom: []
|
||||
cleanUrlParameters:
|
||||
fieldset: architecto
|
||||
queryParameters: []
|
||||
cleanQueryParameters: []
|
||||
bodyParameters: []
|
||||
cleanBodyParameters: []
|
||||
fileParameters: []
|
||||
responses: []
|
||||
responseFields: []
|
||||
auth:
|
||||
- headers
|
||||
- Authorization
|
||||
- 'Bearer 6g43cv8PD1aE5beadkZfhV6'
|
||||
controller: null
|
||||
method: null
|
||||
route: null
|
||||
custom: []
|
||||
-
|
||||
httpMethods:
|
||||
- POST
|
||||
uri: 'api/v1/fieldsets/{fieldset}/fields/{model}'
|
||||
metadata:
|
||||
groupName: 'Custom Fields'
|
||||
groupDescription: ''
|
||||
subgroup: 'Custom Fieldsets'
|
||||
subgroupDescription: ''
|
||||
title: 'Fields in Fieldset with Default Values for Model'
|
||||
description: ''
|
||||
authenticated: true
|
||||
deprecated: false
|
||||
custom: []
|
||||
headers:
|
||||
Authorization: 'Bearer 6g43cv8PD1aE5beadkZfhV6'
|
||||
Content-Type: application/json
|
||||
Accept: application/json
|
||||
urlParameters:
|
||||
fieldset:
|
||||
name: fieldset
|
||||
description: 'The fieldset.'
|
||||
required: true
|
||||
example: architecto
|
||||
type: string
|
||||
enumValues: []
|
||||
exampleWasSpecified: false
|
||||
nullable: false
|
||||
custom: []
|
||||
model:
|
||||
name: model
|
||||
description: ''
|
||||
required: true
|
||||
example: architecto
|
||||
type: string
|
||||
enumValues: []
|
||||
exampleWasSpecified: false
|
||||
nullable: false
|
||||
custom: []
|
||||
cleanUrlParameters:
|
||||
fieldset: architecto
|
||||
model: architecto
|
||||
queryParameters: []
|
||||
cleanQueryParameters: []
|
||||
bodyParameters: []
|
||||
cleanBodyParameters: []
|
||||
fileParameters: []
|
||||
responses: []
|
||||
responseFields: []
|
||||
auth:
|
||||
- headers
|
||||
- Authorization
|
||||
- 'Bearer 6g43cv8PD1aE5beadkZfhV6'
|
||||
controller: null
|
||||
method: null
|
||||
route: null
|
||||
custom: []
|
||||
-
|
||||
httpMethods:
|
||||
- GET
|
||||
uri: api/v1/fieldsets
|
||||
metadata:
|
||||
groupName: 'Custom Fields'
|
||||
groupDescription: ''
|
||||
subgroup: 'Custom Fieldsets'
|
||||
subgroupDescription: ''
|
||||
title: 'List Fieldsets'
|
||||
description: ''
|
||||
authenticated: true
|
||||
deprecated: false
|
||||
custom: []
|
||||
headers:
|
||||
Authorization: 'Bearer 6g43cv8PD1aE5beadkZfhV6'
|
||||
Content-Type: application/json
|
||||
Accept: application/json
|
||||
urlParameters: []
|
||||
cleanUrlParameters: []
|
||||
queryParameters: []
|
||||
cleanQueryParameters: []
|
||||
bodyParameters: []
|
||||
cleanBodyParameters: []
|
||||
fileParameters: []
|
||||
responses:
|
||||
-
|
||||
status: 401
|
||||
content: '{"error":"Unauthorized or unauthenticated."}'
|
||||
headers:
|
||||
cache-control: 'max-age=0, must-revalidate, no-cache, no-store, private'
|
||||
content-type: application/json
|
||||
vary: Origin
|
||||
pragma: no-cache
|
||||
expires: 'Sun, 02 Jan 1990 00:00:00 GMT'
|
||||
x-content-type-options: nosniff
|
||||
feature-policy: "accelerometer 'none';autoplay 'none';camera 'none';display-capture 'none';document-domain 'none';encrypted-media 'none';fullscreen 'none';geolocation 'none';sync-xhr 'none';usb 'none';xr-spatial-tracking 'none'"
|
||||
referrer-policy: same-origin
|
||||
content-security-policy: "default-src 'self';style-src 'self' 'unsafe-inline';script-src 'self' 'unsafe-inline' 'unsafe-eval';connect-src 'self';object-src 'none';font-src 'self' data:;img-src 'self' data: https://snipe-it.test https://avatars.githubusercontent.com/u/ https://www.google.com/images/branding/googlelogo/2x/ https://snipe-flysystem-public-test.s3-us-west-2.amazonaws.com https://secure.gravatar.com http://gravatar.com maps.google.com maps.gstatic.com *.googleapis.com"
|
||||
set-cookie: 'snipe-dev_local=DtH1Q5VV2HTu9NhlX5CxdYBImN4ZqxolMxRmhDyk; expires=Sat, 18 Oct 2025 20:42:52 GMT; Max-Age=720000; path=/; secure; httponly; samesite=lax'
|
||||
description: null
|
||||
custom: []
|
||||
responseFields: []
|
||||
auth:
|
||||
- headers
|
||||
- Authorization
|
||||
- 'Bearer 6g43cv8PD1aE5beadkZfhV6'
|
||||
controller: null
|
||||
method: null
|
||||
route: null
|
||||
custom: []
|
||||
-
|
||||
httpMethods:
|
||||
- POST
|
||||
uri: api/v1/fieldsets
|
||||
metadata:
|
||||
groupName: 'Custom Fields'
|
||||
groupDescription: ''
|
||||
subgroup: 'Custom Fieldsets'
|
||||
subgroupDescription: ''
|
||||
title: 'Create Fieldset'
|
||||
description: ''
|
||||
authenticated: true
|
||||
deprecated: false
|
||||
custom: []
|
||||
headers:
|
||||
Authorization: 'Bearer 6g43cv8PD1aE5beadkZfhV6'
|
||||
Content-Type: application/json
|
||||
Accept: application/json
|
||||
urlParameters: []
|
||||
cleanUrlParameters: []
|
||||
queryParameters: []
|
||||
cleanQueryParameters: []
|
||||
bodyParameters: []
|
||||
cleanBodyParameters: []
|
||||
fileParameters: []
|
||||
responses: []
|
||||
responseFields: []
|
||||
auth:
|
||||
- headers
|
||||
- Authorization
|
||||
- 'Bearer 6g43cv8PD1aE5beadkZfhV6'
|
||||
controller: null
|
||||
method: null
|
||||
route: null
|
||||
custom: []
|
||||
-
|
||||
httpMethods:
|
||||
- GET
|
||||
uri: 'api/v1/fieldsets/{id}'
|
||||
metadata:
|
||||
groupName: 'Custom Fields'
|
||||
groupDescription: ''
|
||||
subgroup: 'Custom Fieldsets'
|
||||
subgroupDescription: ''
|
||||
title: 'Show Fieldset and Fields'
|
||||
description: ''
|
||||
authenticated: true
|
||||
deprecated: false
|
||||
custom: []
|
||||
headers:
|
||||
Authorization: 'Bearer 6g43cv8PD1aE5beadkZfhV6'
|
||||
Content-Type: application/json
|
||||
Accept: application/json
|
||||
urlParameters:
|
||||
id:
|
||||
name: id
|
||||
description: 'The ID of the fieldset.'
|
||||
required: true
|
||||
example: architecto
|
||||
type: string
|
||||
enumValues: []
|
||||
exampleWasSpecified: false
|
||||
nullable: false
|
||||
custom: []
|
||||
cleanUrlParameters:
|
||||
id: architecto
|
||||
queryParameters: []
|
||||
cleanQueryParameters: []
|
||||
bodyParameters: []
|
||||
cleanBodyParameters: []
|
||||
fileParameters: []
|
||||
responses:
|
||||
-
|
||||
status: 401
|
||||
content: '{"error":"Unauthorized or unauthenticated."}'
|
||||
headers:
|
||||
cache-control: 'max-age=0, must-revalidate, no-cache, no-store, private'
|
||||
content-type: application/json
|
||||
vary: Origin
|
||||
pragma: no-cache
|
||||
expires: 'Sun, 02 Jan 1990 00:00:00 GMT'
|
||||
x-content-type-options: nosniff
|
||||
feature-policy: "accelerometer 'none';autoplay 'none';camera 'none';display-capture 'none';document-domain 'none';encrypted-media 'none';fullscreen 'none';geolocation 'none';sync-xhr 'none';usb 'none';xr-spatial-tracking 'none'"
|
||||
referrer-policy: same-origin
|
||||
content-security-policy: "default-src 'self';style-src 'self' 'unsafe-inline';script-src 'self' 'unsafe-inline' 'unsafe-eval';connect-src 'self';object-src 'none';font-src 'self' data:;img-src 'self' data: https://snipe-it.test https://avatars.githubusercontent.com/u/ https://www.google.com/images/branding/googlelogo/2x/ https://snipe-flysystem-public-test.s3-us-west-2.amazonaws.com https://secure.gravatar.com http://gravatar.com maps.google.com maps.gstatic.com *.googleapis.com"
|
||||
set-cookie: 'snipe-dev_local=haApTgbAdDCFdvIN3hU8DshPXbfKMRdlXqBMBKdM; expires=Sat, 18 Oct 2025 20:42:52 GMT; Max-Age=720000; path=/; secure; httponly; samesite=lax'
|
||||
description: null
|
||||
custom: []
|
||||
responseFields: []
|
||||
auth:
|
||||
- headers
|
||||
- Authorization
|
||||
- 'Bearer 6g43cv8PD1aE5beadkZfhV6'
|
||||
controller: null
|
||||
method: null
|
||||
route: null
|
||||
custom: []
|
||||
-
|
||||
httpMethods:
|
||||
- PUT
|
||||
- PATCH
|
||||
uri: 'api/v1/fieldsets/{id}'
|
||||
metadata:
|
||||
groupName: 'Custom Fields'
|
||||
groupDescription: ''
|
||||
subgroup: 'Custom Fieldsets'
|
||||
subgroupDescription: ''
|
||||
title: 'Update Fieldset'
|
||||
description: ''
|
||||
authenticated: true
|
||||
deprecated: false
|
||||
custom: []
|
||||
headers:
|
||||
Authorization: 'Bearer 6g43cv8PD1aE5beadkZfhV6'
|
||||
Content-Type: application/json
|
||||
Accept: application/json
|
||||
urlParameters:
|
||||
id:
|
||||
name: id
|
||||
description: 'The ID of the fieldset.'
|
||||
required: true
|
||||
example: architecto
|
||||
type: string
|
||||
enumValues: []
|
||||
exampleWasSpecified: false
|
||||
nullable: false
|
||||
custom: []
|
||||
cleanUrlParameters:
|
||||
id: architecto
|
||||
queryParameters: []
|
||||
cleanQueryParameters: []
|
||||
bodyParameters: []
|
||||
cleanBodyParameters: []
|
||||
fileParameters: []
|
||||
responses: []
|
||||
responseFields: []
|
||||
auth:
|
||||
- headers
|
||||
- Authorization
|
||||
- 'Bearer 6g43cv8PD1aE5beadkZfhV6'
|
||||
controller: null
|
||||
method: null
|
||||
route: null
|
||||
custom: []
|
||||
-
|
||||
httpMethods:
|
||||
- DELETE
|
||||
uri: 'api/v1/fieldsets/{id}'
|
||||
metadata:
|
||||
groupName: 'Custom Fields'
|
||||
groupDescription: ''
|
||||
subgroup: 'Custom Fieldsets'
|
||||
subgroupDescription: ''
|
||||
title: 'Delete Fieldset'
|
||||
description: ''
|
||||
authenticated: true
|
||||
deprecated: false
|
||||
custom: []
|
||||
headers:
|
||||
Authorization: 'Bearer 6g43cv8PD1aE5beadkZfhV6'
|
||||
Content-Type: application/json
|
||||
Accept: application/json
|
||||
urlParameters:
|
||||
id:
|
||||
name: id
|
||||
description: 'The ID of the fieldset.'
|
||||
required: true
|
||||
example: architecto
|
||||
type: string
|
||||
enumValues: []
|
||||
exampleWasSpecified: false
|
||||
nullable: false
|
||||
custom: []
|
||||
cleanUrlParameters:
|
||||
id: architecto
|
||||
queryParameters: []
|
||||
cleanQueryParameters: []
|
||||
bodyParameters: []
|
||||
cleanBodyParameters: []
|
||||
fileParameters: []
|
||||
responses: []
|
||||
responseFields: []
|
||||
auth:
|
||||
- headers
|
||||
- Authorization
|
||||
- 'Bearer 6g43cv8PD1aE5beadkZfhV6'
|
||||
controller: null
|
||||
method: null
|
||||
route: null
|
||||
custom: []
|
||||
@@ -1,244 +0,0 @@
|
||||
name: 'User Groups'
|
||||
description: ''
|
||||
endpoints:
|
||||
-
|
||||
httpMethods:
|
||||
- GET
|
||||
uri: api/v1/groups
|
||||
metadata:
|
||||
groupName: 'User Groups'
|
||||
groupDescription: ''
|
||||
subgroup: ''
|
||||
subgroupDescription: ''
|
||||
title: 'Display a listing of the resource.'
|
||||
description: ''
|
||||
authenticated: true
|
||||
deprecated: false
|
||||
custom: []
|
||||
headers:
|
||||
Authorization: 'Bearer 6g43cv8PD1aE5beadkZfhV6'
|
||||
Content-Type: application/json
|
||||
Accept: application/json
|
||||
urlParameters: []
|
||||
cleanUrlParameters: []
|
||||
queryParameters: []
|
||||
cleanQueryParameters: []
|
||||
bodyParameters: []
|
||||
cleanBodyParameters: []
|
||||
fileParameters: []
|
||||
responses:
|
||||
-
|
||||
status: 401
|
||||
content: '{"error":"Unauthorized or unauthenticated."}'
|
||||
headers:
|
||||
cache-control: 'max-age=0, must-revalidate, no-cache, no-store, private'
|
||||
content-type: application/json
|
||||
vary: Origin
|
||||
pragma: no-cache
|
||||
expires: 'Sun, 02 Jan 1990 00:00:00 GMT'
|
||||
x-content-type-options: nosniff
|
||||
feature-policy: "accelerometer 'none';autoplay 'none';camera 'none';display-capture 'none';document-domain 'none';encrypted-media 'none';fullscreen 'none';geolocation 'none';sync-xhr 'none';usb 'none';xr-spatial-tracking 'none'"
|
||||
referrer-policy: same-origin
|
||||
content-security-policy: "default-src 'self';style-src 'self' 'unsafe-inline';script-src 'self' 'unsafe-inline' 'unsafe-eval';connect-src 'self';object-src 'none';font-src 'self' data:;img-src 'self' data: https://snipe-it.test https://avatars.githubusercontent.com/u/ https://www.google.com/images/branding/googlelogo/2x/ https://snipe-flysystem-public-test.s3-us-west-2.amazonaws.com https://secure.gravatar.com http://gravatar.com maps.google.com maps.gstatic.com *.googleapis.com"
|
||||
set-cookie: 'snipe-dev_local=evRZVbrjaLPlDGuAmSjuQxAfBkaXVVI3h6YJ8xCC; expires=Sat, 18 Oct 2025 20:42:52 GMT; Max-Age=720000; path=/; secure; httponly; samesite=lax'
|
||||
description: null
|
||||
custom: []
|
||||
responseFields: []
|
||||
auth:
|
||||
- headers
|
||||
- Authorization
|
||||
- 'Bearer 6g43cv8PD1aE5beadkZfhV6'
|
||||
controller: null
|
||||
method: null
|
||||
route: null
|
||||
custom: []
|
||||
-
|
||||
httpMethods:
|
||||
- POST
|
||||
uri: api/v1/groups
|
||||
metadata:
|
||||
groupName: 'User Groups'
|
||||
groupDescription: ''
|
||||
subgroup: ''
|
||||
subgroupDescription: ''
|
||||
title: 'Create Group'
|
||||
description: ''
|
||||
authenticated: true
|
||||
deprecated: false
|
||||
custom: []
|
||||
headers:
|
||||
Authorization: 'Bearer 6g43cv8PD1aE5beadkZfhV6'
|
||||
Content-Type: application/json
|
||||
Accept: application/json
|
||||
urlParameters: []
|
||||
cleanUrlParameters: []
|
||||
queryParameters: []
|
||||
cleanQueryParameters: []
|
||||
bodyParameters: []
|
||||
cleanBodyParameters: []
|
||||
fileParameters: []
|
||||
responses: []
|
||||
responseFields: []
|
||||
auth:
|
||||
- headers
|
||||
- Authorization
|
||||
- 'Bearer 6g43cv8PD1aE5beadkZfhV6'
|
||||
controller: null
|
||||
method: null
|
||||
route: null
|
||||
custom: []
|
||||
-
|
||||
httpMethods:
|
||||
- GET
|
||||
uri: 'api/v1/groups/{id}'
|
||||
metadata:
|
||||
groupName: 'User Groups'
|
||||
groupDescription: ''
|
||||
subgroup: ''
|
||||
subgroupDescription: ''
|
||||
title: 'Show Group'
|
||||
description: ''
|
||||
authenticated: true
|
||||
deprecated: false
|
||||
custom: []
|
||||
headers:
|
||||
Authorization: 'Bearer 6g43cv8PD1aE5beadkZfhV6'
|
||||
Content-Type: application/json
|
||||
Accept: application/json
|
||||
urlParameters:
|
||||
id:
|
||||
name: id
|
||||
description: 'The ID of the group.'
|
||||
required: true
|
||||
example: architecto
|
||||
type: string
|
||||
enumValues: []
|
||||
exampleWasSpecified: false
|
||||
nullable: false
|
||||
custom: []
|
||||
cleanUrlParameters:
|
||||
id: architecto
|
||||
queryParameters: []
|
||||
cleanQueryParameters: []
|
||||
bodyParameters: []
|
||||
cleanBodyParameters: []
|
||||
fileParameters: []
|
||||
responses:
|
||||
-
|
||||
status: 401
|
||||
content: '{"error":"Unauthorized or unauthenticated."}'
|
||||
headers:
|
||||
cache-control: 'max-age=0, must-revalidate, no-cache, no-store, private'
|
||||
content-type: application/json
|
||||
vary: Origin
|
||||
pragma: no-cache
|
||||
expires: 'Sun, 02 Jan 1990 00:00:00 GMT'
|
||||
x-content-type-options: nosniff
|
||||
feature-policy: "accelerometer 'none';autoplay 'none';camera 'none';display-capture 'none';document-domain 'none';encrypted-media 'none';fullscreen 'none';geolocation 'none';sync-xhr 'none';usb 'none';xr-spatial-tracking 'none'"
|
||||
referrer-policy: same-origin
|
||||
content-security-policy: "default-src 'self';style-src 'self' 'unsafe-inline';script-src 'self' 'unsafe-inline' 'unsafe-eval';connect-src 'self';object-src 'none';font-src 'self' data:;img-src 'self' data: https://snipe-it.test https://avatars.githubusercontent.com/u/ https://www.google.com/images/branding/googlelogo/2x/ https://snipe-flysystem-public-test.s3-us-west-2.amazonaws.com https://secure.gravatar.com http://gravatar.com maps.google.com maps.gstatic.com *.googleapis.com"
|
||||
set-cookie: 'snipe-dev_local=lUFcyrjpTiMJiziJCYaZzhxr9o4YDOHuJhtyxe9O; expires=Sat, 18 Oct 2025 20:42:52 GMT; Max-Age=720000; path=/; secure; httponly; samesite=lax'
|
||||
description: null
|
||||
custom: []
|
||||
responseFields: []
|
||||
auth:
|
||||
- headers
|
||||
- Authorization
|
||||
- 'Bearer 6g43cv8PD1aE5beadkZfhV6'
|
||||
controller: null
|
||||
method: null
|
||||
route: null
|
||||
custom: []
|
||||
-
|
||||
httpMethods:
|
||||
- PUT
|
||||
- PATCH
|
||||
uri: 'api/v1/groups/{id}'
|
||||
metadata:
|
||||
groupName: 'User Groups'
|
||||
groupDescription: ''
|
||||
subgroup: ''
|
||||
subgroupDescription: ''
|
||||
title: 'Update Group'
|
||||
description: ''
|
||||
authenticated: true
|
||||
deprecated: false
|
||||
custom: []
|
||||
headers:
|
||||
Authorization: 'Bearer 6g43cv8PD1aE5beadkZfhV6'
|
||||
Content-Type: application/json
|
||||
Accept: application/json
|
||||
urlParameters:
|
||||
id:
|
||||
name: id
|
||||
description: 'The ID of the group.'
|
||||
required: true
|
||||
example: architecto
|
||||
type: string
|
||||
enumValues: []
|
||||
exampleWasSpecified: false
|
||||
nullable: false
|
||||
custom: []
|
||||
cleanUrlParameters:
|
||||
id: architecto
|
||||
queryParameters: []
|
||||
cleanQueryParameters: []
|
||||
bodyParameters: []
|
||||
cleanBodyParameters: []
|
||||
fileParameters: []
|
||||
responses: []
|
||||
responseFields: []
|
||||
auth:
|
||||
- headers
|
||||
- Authorization
|
||||
- 'Bearer 6g43cv8PD1aE5beadkZfhV6'
|
||||
controller: null
|
||||
method: null
|
||||
route: null
|
||||
custom: []
|
||||
-
|
||||
httpMethods:
|
||||
- DELETE
|
||||
uri: 'api/v1/groups/{id}'
|
||||
metadata:
|
||||
groupName: 'User Groups'
|
||||
groupDescription: ''
|
||||
subgroup: ''
|
||||
subgroupDescription: ''
|
||||
title: 'Remove the specified resource from storage.'
|
||||
description: ''
|
||||
authenticated: true
|
||||
deprecated: false
|
||||
custom: []
|
||||
headers:
|
||||
Authorization: 'Bearer 6g43cv8PD1aE5beadkZfhV6'
|
||||
Content-Type: application/json
|
||||
Accept: application/json
|
||||
urlParameters:
|
||||
id:
|
||||
name: id
|
||||
description: 'The ID of the group.'
|
||||
required: true
|
||||
example: architecto
|
||||
type: string
|
||||
enumValues: []
|
||||
exampleWasSpecified: false
|
||||
nullable: false
|
||||
custom: []
|
||||
cleanUrlParameters:
|
||||
id: architecto
|
||||
queryParameters: []
|
||||
cleanQueryParameters: []
|
||||
bodyParameters: []
|
||||
cleanBodyParameters: []
|
||||
fileParameters: []
|
||||
responses: []
|
||||
responseFields: []
|
||||
auth:
|
||||
- headers
|
||||
- Authorization
|
||||
- 'Bearer 6g43cv8PD1aE5beadkZfhV6'
|
||||
controller: null
|
||||
method: null
|
||||
route: null
|
||||
custom: []
|
||||
@@ -1,354 +0,0 @@
|
||||
name: Maintenances
|
||||
description: ''
|
||||
endpoints:
|
||||
-
|
||||
httpMethods:
|
||||
- GET
|
||||
uri: api/v1/maintenances
|
||||
metadata:
|
||||
groupName: Maintenances
|
||||
groupDescription: ''
|
||||
subgroup: ''
|
||||
subgroupDescription: ''
|
||||
title: 'List Maintenances'
|
||||
description: ''
|
||||
authenticated: true
|
||||
deprecated: false
|
||||
custom: []
|
||||
headers:
|
||||
Authorization: 'Bearer 6g43cv8PD1aE5beadkZfhV6'
|
||||
Content-Type: application/json
|
||||
Accept: application/json
|
||||
urlParameters: []
|
||||
cleanUrlParameters: []
|
||||
queryParameters:
|
||||
search:
|
||||
name: search
|
||||
description: 'Search term to filter results.'
|
||||
required: false
|
||||
example: repair
|
||||
type: string
|
||||
enumValues: []
|
||||
exampleWasSpecified: true
|
||||
nullable: false
|
||||
custom: []
|
||||
asset_id:
|
||||
name: asset_id
|
||||
description: 'Filter by exact asset ID.'
|
||||
required: false
|
||||
example: 1
|
||||
type: integer
|
||||
enumValues: []
|
||||
exampleWasSpecified: true
|
||||
nullable: false
|
||||
custom: []
|
||||
supplier_id:
|
||||
name: supplier_id
|
||||
description: 'Filter by exact supplier ID.'
|
||||
required: false
|
||||
example: 1
|
||||
type: integer
|
||||
enumValues: []
|
||||
exampleWasSpecified: true
|
||||
nullable: false
|
||||
custom: []
|
||||
created_by:
|
||||
name: created_by
|
||||
description: 'Filter by exact user ID who created the maintenance. Example'
|
||||
required: false
|
||||
example: 16
|
||||
type: integer
|
||||
enumValues: []
|
||||
exampleWasSpecified: false
|
||||
nullable: false
|
||||
custom: []
|
||||
url:
|
||||
name: url
|
||||
description: 'Filter by exact URL.'
|
||||
required: false
|
||||
example: 'http://example.com'
|
||||
type: string
|
||||
enumValues: []
|
||||
exampleWasSpecified: true
|
||||
nullable: false
|
||||
custom: []
|
||||
asset_maintenance_type:
|
||||
name: asset_maintenance_type
|
||||
description: 'Filter by exact maintenance type.'
|
||||
required: false
|
||||
example: repair
|
||||
type: string
|
||||
enumValues: []
|
||||
exampleWasSpecified: true
|
||||
nullable: false
|
||||
custom: []
|
||||
sort:
|
||||
name: sort
|
||||
description: 'Column to sort results by. Allowed values: id, name, asset_maintenance_time, asset_maintenance_type, cost, start_date, completion_date, notes, asset_tag, asset_name, serial, created_by, supplier, location, is_warranty, status_label. Default: created_at.'
|
||||
required: false
|
||||
example: name
|
||||
type: string
|
||||
enumValues: []
|
||||
exampleWasSpecified: true
|
||||
nullable: false
|
||||
custom: []
|
||||
order:
|
||||
name: order
|
||||
description: 'Order of sorted results. Allowed values: asc, desc. Default: desc.'
|
||||
required: false
|
||||
example: asc
|
||||
type: string
|
||||
enumValues: []
|
||||
exampleWasSpecified: true
|
||||
nullable: false
|
||||
custom: []
|
||||
offset:
|
||||
name: offset
|
||||
description: 'Offset/starting position of the results. Default: 0.'
|
||||
required: false
|
||||
example: 0
|
||||
type: integer
|
||||
enumValues: []
|
||||
exampleWasSpecified: true
|
||||
nullable: false
|
||||
custom: []
|
||||
limit:
|
||||
name: limit
|
||||
description: 'Limit the number of results returned. Default: 25. Maximum: 100.'
|
||||
required: false
|
||||
example: 50
|
||||
type: integer
|
||||
enumValues: []
|
||||
exampleWasSpecified: true
|
||||
nullable: false
|
||||
custom: []
|
||||
cleanQueryParameters:
|
||||
search: repair
|
||||
asset_id: 1
|
||||
supplier_id: 1
|
||||
created_by: 16
|
||||
url: 'http://example.com'
|
||||
asset_maintenance_type: repair
|
||||
sort: name
|
||||
order: asc
|
||||
offset: 0
|
||||
limit: 50
|
||||
bodyParameters: []
|
||||
cleanBodyParameters: []
|
||||
fileParameters: []
|
||||
responses:
|
||||
-
|
||||
status: 401
|
||||
content: '{"error":"Unauthorized or unauthenticated."}'
|
||||
headers:
|
||||
cache-control: 'max-age=0, must-revalidate, no-cache, no-store, private'
|
||||
content-type: application/json
|
||||
vary: Origin
|
||||
pragma: no-cache
|
||||
expires: 'Sun, 02 Jan 1990 00:00:00 GMT'
|
||||
x-content-type-options: nosniff
|
||||
feature-policy: "accelerometer 'none';autoplay 'none';camera 'none';display-capture 'none';document-domain 'none';encrypted-media 'none';fullscreen 'none';geolocation 'none';sync-xhr 'none';usb 'none';xr-spatial-tracking 'none'"
|
||||
referrer-policy: same-origin
|
||||
content-security-policy: "default-src 'self';style-src 'self' 'unsafe-inline';script-src 'self' 'unsafe-inline' 'unsafe-eval';connect-src 'self';object-src 'none';font-src 'self' data:;img-src 'self' data: https://snipe-it.test https://avatars.githubusercontent.com/u/ https://www.google.com/images/branding/googlelogo/2x/ https://snipe-flysystem-public-test.s3-us-west-2.amazonaws.com https://secure.gravatar.com http://gravatar.com maps.google.com maps.gstatic.com *.googleapis.com"
|
||||
set-cookie: 'snipe-dev_local=HIPWn994ZVwWTllISCuyT1n0vLjhvE6GtJdyvVt5; expires=Sat, 18 Oct 2025 20:42:52 GMT; Max-Age=720000; path=/; secure; httponly; samesite=lax'
|
||||
description: null
|
||||
custom: []
|
||||
responseFields: []
|
||||
auth:
|
||||
- headers
|
||||
- Authorization
|
||||
- 'Bearer 6g43cv8PD1aE5beadkZfhV6'
|
||||
controller: null
|
||||
method: null
|
||||
route: null
|
||||
custom: []
|
||||
-
|
||||
httpMethods:
|
||||
- POST
|
||||
uri: api/v1/maintenances
|
||||
metadata:
|
||||
groupName: Maintenances
|
||||
groupDescription: ''
|
||||
subgroup: ''
|
||||
subgroupDescription: ''
|
||||
title: 'Create Maintenance'
|
||||
description: ''
|
||||
authenticated: true
|
||||
deprecated: false
|
||||
custom: []
|
||||
headers:
|
||||
Authorization: 'Bearer 6g43cv8PD1aE5beadkZfhV6'
|
||||
Content-Type: application/json
|
||||
Accept: application/json
|
||||
urlParameters: []
|
||||
cleanUrlParameters: []
|
||||
queryParameters: []
|
||||
cleanQueryParameters: []
|
||||
bodyParameters: []
|
||||
cleanBodyParameters: []
|
||||
fileParameters: []
|
||||
responses: []
|
||||
responseFields: []
|
||||
auth:
|
||||
- headers
|
||||
- Authorization
|
||||
- 'Bearer 6g43cv8PD1aE5beadkZfhV6'
|
||||
controller: null
|
||||
method: null
|
||||
route: null
|
||||
custom: []
|
||||
-
|
||||
httpMethods:
|
||||
- GET
|
||||
uri: 'api/v1/maintenances/{id}'
|
||||
metadata:
|
||||
groupName: Maintenances
|
||||
groupDescription: ''
|
||||
subgroup: ''
|
||||
subgroupDescription: ''
|
||||
title: 'View Maintenance'
|
||||
description: ''
|
||||
authenticated: true
|
||||
deprecated: false
|
||||
custom: []
|
||||
headers:
|
||||
Authorization: 'Bearer 6g43cv8PD1aE5beadkZfhV6'
|
||||
Content-Type: application/json
|
||||
Accept: application/json
|
||||
urlParameters:
|
||||
id:
|
||||
name: id
|
||||
description: 'The ID of the maintenance.'
|
||||
required: true
|
||||
example: 2
|
||||
type: integer
|
||||
enumValues: []
|
||||
exampleWasSpecified: false
|
||||
nullable: false
|
||||
custom: []
|
||||
cleanUrlParameters:
|
||||
id: 2
|
||||
queryParameters: []
|
||||
cleanQueryParameters: []
|
||||
bodyParameters: []
|
||||
cleanBodyParameters: []
|
||||
fileParameters: []
|
||||
responses:
|
||||
-
|
||||
status: 401
|
||||
content: '{"error":"Unauthorized or unauthenticated."}'
|
||||
headers:
|
||||
cache-control: 'max-age=0, must-revalidate, no-cache, no-store, private'
|
||||
content-type: application/json
|
||||
vary: Origin
|
||||
pragma: no-cache
|
||||
expires: 'Sun, 02 Jan 1990 00:00:00 GMT'
|
||||
x-content-type-options: nosniff
|
||||
feature-policy: "accelerometer 'none';autoplay 'none';camera 'none';display-capture 'none';document-domain 'none';encrypted-media 'none';fullscreen 'none';geolocation 'none';sync-xhr 'none';usb 'none';xr-spatial-tracking 'none'"
|
||||
referrer-policy: same-origin
|
||||
content-security-policy: "default-src 'self';style-src 'self' 'unsafe-inline';script-src 'self' 'unsafe-inline' 'unsafe-eval';connect-src 'self';object-src 'none';font-src 'self' data:;img-src 'self' data: https://snipe-it.test https://avatars.githubusercontent.com/u/ https://www.google.com/images/branding/googlelogo/2x/ https://snipe-flysystem-public-test.s3-us-west-2.amazonaws.com https://secure.gravatar.com http://gravatar.com maps.google.com maps.gstatic.com *.googleapis.com"
|
||||
set-cookie: 'snipe-dev_local=SMRgTfJyiKW4MwqoQkxPhRwZ7s0NG6iXfqrgvOF3; expires=Sat, 18 Oct 2025 20:42:52 GMT; Max-Age=720000; path=/; secure; httponly; samesite=lax'
|
||||
description: null
|
||||
custom: []
|
||||
responseFields: []
|
||||
auth:
|
||||
- headers
|
||||
- Authorization
|
||||
- 'Bearer 6g43cv8PD1aE5beadkZfhV6'
|
||||
controller: null
|
||||
method: null
|
||||
route: null
|
||||
custom: []
|
||||
-
|
||||
httpMethods:
|
||||
- PUT
|
||||
- PATCH
|
||||
uri: 'api/v1/maintenances/{id}'
|
||||
metadata:
|
||||
groupName: Maintenances
|
||||
groupDescription: ''
|
||||
subgroup: ''
|
||||
subgroupDescription: ''
|
||||
title: 'Update Maintenance'
|
||||
description: ''
|
||||
authenticated: true
|
||||
deprecated: false
|
||||
custom: []
|
||||
headers:
|
||||
Authorization: 'Bearer 6g43cv8PD1aE5beadkZfhV6'
|
||||
Content-Type: application/json
|
||||
Accept: application/json
|
||||
urlParameters:
|
||||
id:
|
||||
name: id
|
||||
description: 'The ID of the maintenance.'
|
||||
required: true
|
||||
example: 2
|
||||
type: integer
|
||||
enumValues: []
|
||||
exampleWasSpecified: false
|
||||
nullable: false
|
||||
custom: []
|
||||
cleanUrlParameters:
|
||||
id: 2
|
||||
queryParameters: []
|
||||
cleanQueryParameters: []
|
||||
bodyParameters: []
|
||||
cleanBodyParameters: []
|
||||
fileParameters: []
|
||||
responses: []
|
||||
responseFields: []
|
||||
auth:
|
||||
- headers
|
||||
- Authorization
|
||||
- 'Bearer 6g43cv8PD1aE5beadkZfhV6'
|
||||
controller: null
|
||||
method: null
|
||||
route: null
|
||||
custom: []
|
||||
-
|
||||
httpMethods:
|
||||
- DELETE
|
||||
uri: 'api/v1/maintenances/{id}'
|
||||
metadata:
|
||||
groupName: Maintenances
|
||||
groupDescription: ''
|
||||
subgroup: ''
|
||||
subgroupDescription: ''
|
||||
title: 'Delete Maintenance'
|
||||
description: ''
|
||||
authenticated: true
|
||||
deprecated: false
|
||||
custom: []
|
||||
headers:
|
||||
Authorization: 'Bearer 6g43cv8PD1aE5beadkZfhV6'
|
||||
Content-Type: application/json
|
||||
Accept: application/json
|
||||
urlParameters:
|
||||
id:
|
||||
name: id
|
||||
description: 'The ID of the maintenance.'
|
||||
required: true
|
||||
example: 2
|
||||
type: integer
|
||||
enumValues: []
|
||||
exampleWasSpecified: false
|
||||
nullable: false
|
||||
custom: []
|
||||
cleanUrlParameters:
|
||||
id: 2
|
||||
queryParameters: []
|
||||
cleanQueryParameters: []
|
||||
bodyParameters: []
|
||||
cleanBodyParameters: []
|
||||
fileParameters: []
|
||||
responses: []
|
||||
responseFields: []
|
||||
auth:
|
||||
- headers
|
||||
- Authorization
|
||||
- 'Bearer 6g43cv8PD1aE5beadkZfhV6'
|
||||
controller: null
|
||||
method: null
|
||||
route: null
|
||||
custom: []
|
||||
@@ -1,181 +0,0 @@
|
||||
name: Imports
|
||||
description: ''
|
||||
endpoints:
|
||||
-
|
||||
httpMethods:
|
||||
- POST
|
||||
uri: 'api/v1/imports/process/{import}'
|
||||
metadata:
|
||||
groupName: Imports
|
||||
groupDescription: ''
|
||||
subgroup: ''
|
||||
subgroupDescription: ''
|
||||
title: 'Process Import'
|
||||
description: ''
|
||||
authenticated: true
|
||||
deprecated: false
|
||||
custom: []
|
||||
headers:
|
||||
Authorization: 'Bearer 6g43cv8PD1aE5beadkZfhV6'
|
||||
Content-Type: application/json
|
||||
Accept: application/json
|
||||
urlParameters:
|
||||
import:
|
||||
name: import
|
||||
description: ''
|
||||
required: true
|
||||
example: architecto
|
||||
type: string
|
||||
enumValues: []
|
||||
exampleWasSpecified: false
|
||||
nullable: false
|
||||
custom: []
|
||||
cleanUrlParameters:
|
||||
import: architecto
|
||||
queryParameters: []
|
||||
cleanQueryParameters: []
|
||||
bodyParameters: []
|
||||
cleanBodyParameters: []
|
||||
fileParameters: []
|
||||
responses: []
|
||||
responseFields: []
|
||||
auth:
|
||||
- headers
|
||||
- Authorization
|
||||
- 'Bearer 6g43cv8PD1aE5beadkZfhV6'
|
||||
controller: null
|
||||
method: null
|
||||
route: null
|
||||
custom: []
|
||||
-
|
||||
httpMethods:
|
||||
- GET
|
||||
uri: api/v1/imports
|
||||
metadata:
|
||||
groupName: Imports
|
||||
groupDescription: ''
|
||||
subgroup: ''
|
||||
subgroupDescription: ''
|
||||
title: 'List Import Files'
|
||||
description: ''
|
||||
authenticated: true
|
||||
deprecated: false
|
||||
custom: []
|
||||
headers:
|
||||
Authorization: 'Bearer 6g43cv8PD1aE5beadkZfhV6'
|
||||
Content-Type: application/json
|
||||
Accept: application/json
|
||||
urlParameters: []
|
||||
cleanUrlParameters: []
|
||||
queryParameters: []
|
||||
cleanQueryParameters: []
|
||||
bodyParameters: []
|
||||
cleanBodyParameters: []
|
||||
fileParameters: []
|
||||
responses:
|
||||
-
|
||||
status: 401
|
||||
content: '{"error":"Unauthorized or unauthenticated."}'
|
||||
headers:
|
||||
cache-control: 'max-age=0, must-revalidate, no-cache, no-store, private'
|
||||
content-type: application/json
|
||||
vary: Origin
|
||||
pragma: no-cache
|
||||
expires: 'Sun, 02 Jan 1990 00:00:00 GMT'
|
||||
x-content-type-options: nosniff
|
||||
feature-policy: "accelerometer 'none';autoplay 'none';camera 'none';display-capture 'none';document-domain 'none';encrypted-media 'none';fullscreen 'none';geolocation 'none';sync-xhr 'none';usb 'none';xr-spatial-tracking 'none'"
|
||||
referrer-policy: same-origin
|
||||
content-security-policy: "default-src 'self';style-src 'self' 'unsafe-inline';script-src 'self' 'unsafe-inline' 'unsafe-eval';connect-src 'self';object-src 'none';font-src 'self' data:;img-src 'self' data: https://snipe-it.test https://avatars.githubusercontent.com/u/ https://www.google.com/images/branding/googlelogo/2x/ https://snipe-flysystem-public-test.s3-us-west-2.amazonaws.com https://secure.gravatar.com http://gravatar.com maps.google.com maps.gstatic.com *.googleapis.com"
|
||||
set-cookie: 'snipe-dev_local=lj8o7doJNMvuEIVNyZKehmNRHGnHDPN2afmwMD6i; expires=Sat, 18 Oct 2025 20:42:52 GMT; Max-Age=720000; path=/; secure; httponly; samesite=lax'
|
||||
description: null
|
||||
custom: []
|
||||
responseFields: []
|
||||
auth:
|
||||
- headers
|
||||
- Authorization
|
||||
- 'Bearer 6g43cv8PD1aE5beadkZfhV6'
|
||||
controller: null
|
||||
method: null
|
||||
route: null
|
||||
custom: []
|
||||
-
|
||||
httpMethods:
|
||||
- POST
|
||||
uri: api/v1/imports
|
||||
metadata:
|
||||
groupName: Imports
|
||||
groupDescription: ''
|
||||
subgroup: ''
|
||||
subgroupDescription: ''
|
||||
title: 'Save Import File'
|
||||
description: ''
|
||||
authenticated: true
|
||||
deprecated: false
|
||||
custom: []
|
||||
headers:
|
||||
Authorization: 'Bearer 6g43cv8PD1aE5beadkZfhV6'
|
||||
Content-Type: application/json
|
||||
Accept: application/json
|
||||
urlParameters: []
|
||||
cleanUrlParameters: []
|
||||
queryParameters: []
|
||||
cleanQueryParameters: []
|
||||
bodyParameters: []
|
||||
cleanBodyParameters: []
|
||||
fileParameters: []
|
||||
responses: []
|
||||
responseFields: []
|
||||
auth:
|
||||
- headers
|
||||
- Authorization
|
||||
- 'Bearer 6g43cv8PD1aE5beadkZfhV6'
|
||||
controller: null
|
||||
method: null
|
||||
route: null
|
||||
custom: []
|
||||
-
|
||||
httpMethods:
|
||||
- DELETE
|
||||
uri: 'api/v1/imports/{id}'
|
||||
metadata:
|
||||
groupName: Imports
|
||||
groupDescription: ''
|
||||
subgroup: ''
|
||||
subgroupDescription: ''
|
||||
title: 'Delete Import File'
|
||||
description: ''
|
||||
authenticated: true
|
||||
deprecated: false
|
||||
custom: []
|
||||
headers:
|
||||
Authorization: 'Bearer 6g43cv8PD1aE5beadkZfhV6'
|
||||
Content-Type: application/json
|
||||
Accept: application/json
|
||||
urlParameters:
|
||||
id:
|
||||
name: id
|
||||
description: 'The ID of the import.'
|
||||
required: true
|
||||
example: architecto
|
||||
type: string
|
||||
enumValues: []
|
||||
exampleWasSpecified: false
|
||||
nullable: false
|
||||
custom: []
|
||||
cleanUrlParameters:
|
||||
id: architecto
|
||||
queryParameters: []
|
||||
cleanQueryParameters: []
|
||||
bodyParameters: []
|
||||
cleanBodyParameters: []
|
||||
fileParameters: []
|
||||
responses: []
|
||||
responseFields: []
|
||||
auth:
|
||||
- headers
|
||||
- Authorization
|
||||
- 'Bearer 6g43cv8PD1aE5beadkZfhV6'
|
||||
controller: null
|
||||
method: null
|
||||
route: null
|
||||
custom: []
|
||||
@@ -1,116 +0,0 @@
|
||||
name: Labels
|
||||
description: ''
|
||||
endpoints:
|
||||
-
|
||||
httpMethods:
|
||||
- GET
|
||||
uri: 'api/v1/labels/{name}'
|
||||
metadata:
|
||||
groupName: Labels
|
||||
groupDescription: ''
|
||||
subgroup: ''
|
||||
subgroupDescription: ''
|
||||
title: 'Show Label'
|
||||
description: ''
|
||||
authenticated: true
|
||||
deprecated: false
|
||||
custom: []
|
||||
headers:
|
||||
Authorization: 'Bearer 6g43cv8PD1aE5beadkZfhV6'
|
||||
Content-Type: application/json
|
||||
Accept: application/json
|
||||
urlParameters:
|
||||
name:
|
||||
name: name
|
||||
description: ''
|
||||
required: true
|
||||
example: '|{+-0p'
|
||||
type: string
|
||||
enumValues: []
|
||||
exampleWasSpecified: false
|
||||
nullable: false
|
||||
custom: []
|
||||
cleanUrlParameters:
|
||||
name: '|{+-0p'
|
||||
queryParameters: []
|
||||
cleanQueryParameters: []
|
||||
bodyParameters: []
|
||||
cleanBodyParameters: []
|
||||
fileParameters: []
|
||||
responses:
|
||||
-
|
||||
status: 401
|
||||
content: '{"error":"Unauthorized or unauthenticated."}'
|
||||
headers:
|
||||
cache-control: 'max-age=0, must-revalidate, no-cache, no-store, private'
|
||||
content-type: application/json
|
||||
vary: Origin
|
||||
pragma: no-cache
|
||||
expires: 'Sun, 02 Jan 1990 00:00:00 GMT'
|
||||
x-content-type-options: nosniff
|
||||
feature-policy: "accelerometer 'none';autoplay 'none';camera 'none';display-capture 'none';document-domain 'none';encrypted-media 'none';fullscreen 'none';geolocation 'none';sync-xhr 'none';usb 'none';xr-spatial-tracking 'none'"
|
||||
referrer-policy: same-origin
|
||||
content-security-policy: "default-src 'self';style-src 'self' 'unsafe-inline';script-src 'self' 'unsafe-inline' 'unsafe-eval';connect-src 'self';object-src 'none';font-src 'self' data:;img-src 'self' data: https://snipe-it.test https://avatars.githubusercontent.com/u/ https://www.google.com/images/branding/googlelogo/2x/ https://snipe-flysystem-public-test.s3-us-west-2.amazonaws.com https://secure.gravatar.com http://gravatar.com maps.google.com maps.gstatic.com *.googleapis.com"
|
||||
set-cookie: 'snipe-dev_local=rEUcrmsA92vKXWOMa9gjkZircoRHtwh2NGzh46Ym; expires=Sat, 18 Oct 2025 20:42:52 GMT; Max-Age=720000; path=/; secure; httponly; samesite=lax'
|
||||
description: null
|
||||
custom: []
|
||||
responseFields: []
|
||||
auth:
|
||||
- headers
|
||||
- Authorization
|
||||
- 'Bearer 6g43cv8PD1aE5beadkZfhV6'
|
||||
controller: null
|
||||
method: null
|
||||
route: null
|
||||
custom: []
|
||||
-
|
||||
httpMethods:
|
||||
- GET
|
||||
uri: api/v1/labels
|
||||
metadata:
|
||||
groupName: Labels
|
||||
groupDescription: ''
|
||||
subgroup: ''
|
||||
subgroupDescription: ''
|
||||
title: 'List Labels'
|
||||
description: ''
|
||||
authenticated: true
|
||||
deprecated: false
|
||||
custom: []
|
||||
headers:
|
||||
Authorization: 'Bearer 6g43cv8PD1aE5beadkZfhV6'
|
||||
Content-Type: application/json
|
||||
Accept: application/json
|
||||
urlParameters: []
|
||||
cleanUrlParameters: []
|
||||
queryParameters: []
|
||||
cleanQueryParameters: []
|
||||
bodyParameters: []
|
||||
cleanBodyParameters: []
|
||||
fileParameters: []
|
||||
responses:
|
||||
-
|
||||
status: 401
|
||||
content: '{"error":"Unauthorized or unauthenticated."}'
|
||||
headers:
|
||||
cache-control: 'max-age=0, must-revalidate, no-cache, no-store, private'
|
||||
content-type: application/json
|
||||
vary: Origin
|
||||
pragma: no-cache
|
||||
expires: 'Sun, 02 Jan 1990 00:00:00 GMT'
|
||||
x-content-type-options: nosniff
|
||||
feature-policy: "accelerometer 'none';autoplay 'none';camera 'none';display-capture 'none';document-domain 'none';encrypted-media 'none';fullscreen 'none';geolocation 'none';sync-xhr 'none';usb 'none';xr-spatial-tracking 'none'"
|
||||
referrer-policy: same-origin
|
||||
content-security-policy: "default-src 'self';style-src 'self' 'unsafe-inline';script-src 'self' 'unsafe-inline' 'unsafe-eval';connect-src 'self';object-src 'none';font-src 'self' data:;img-src 'self' data: https://snipe-it.test https://avatars.githubusercontent.com/u/ https://www.google.com/images/branding/googlelogo/2x/ https://snipe-flysystem-public-test.s3-us-west-2.amazonaws.com https://secure.gravatar.com http://gravatar.com maps.google.com maps.gstatic.com *.googleapis.com"
|
||||
set-cookie: 'snipe-dev_local=uOfOzJMa5lIhRnkxrSV7W6Lh6At2caeav8pgRq3i; expires=Sat, 18 Oct 2025 20:42:52 GMT; Max-Age=720000; path=/; secure; httponly; samesite=lax'
|
||||
description: null
|
||||
custom: []
|
||||
responseFields: []
|
||||
auth:
|
||||
- headers
|
||||
- Authorization
|
||||
- 'Bearer 6g43cv8PD1aE5beadkZfhV6'
|
||||
controller: null
|
||||
method: null
|
||||
route: null
|
||||
custom: []
|
||||
@@ -1,576 +0,0 @@
|
||||
name: Licenses
|
||||
description: ''
|
||||
endpoints:
|
||||
-
|
||||
httpMethods:
|
||||
- GET
|
||||
uri: api/v1/licenses/selectlist
|
||||
metadata:
|
||||
groupName: Licenses
|
||||
groupDescription: ''
|
||||
subgroup: ''
|
||||
subgroupDescription: ''
|
||||
title: Selectlist
|
||||
description: ''
|
||||
authenticated: true
|
||||
deprecated: false
|
||||
custom: []
|
||||
headers:
|
||||
Authorization: 'Bearer 6g43cv8PD1aE5beadkZfhV6'
|
||||
Content-Type: application/json
|
||||
Accept: application/json
|
||||
urlParameters: []
|
||||
cleanUrlParameters: []
|
||||
queryParameters: []
|
||||
cleanQueryParameters: []
|
||||
bodyParameters: []
|
||||
cleanBodyParameters: []
|
||||
fileParameters: []
|
||||
responses:
|
||||
-
|
||||
status: 401
|
||||
content: '{"error":"Unauthorized or unauthenticated."}'
|
||||
headers:
|
||||
cache-control: 'max-age=0, must-revalidate, no-cache, no-store, private'
|
||||
content-type: application/json
|
||||
vary: Origin
|
||||
pragma: no-cache
|
||||
expires: 'Sun, 02 Jan 1990 00:00:00 GMT'
|
||||
x-content-type-options: nosniff
|
||||
feature-policy: "accelerometer 'none';autoplay 'none';camera 'none';display-capture 'none';document-domain 'none';encrypted-media 'none';fullscreen 'none';geolocation 'none';sync-xhr 'none';usb 'none';xr-spatial-tracking 'none'"
|
||||
referrer-policy: same-origin
|
||||
content-security-policy: "default-src 'self';style-src 'self' 'unsafe-inline';script-src 'self' 'unsafe-inline' 'unsafe-eval';connect-src 'self';object-src 'none';font-src 'self' data:;img-src 'self' data: https://snipe-it.test https://avatars.githubusercontent.com/u/ https://www.google.com/images/branding/googlelogo/2x/ https://snipe-flysystem-public-test.s3-us-west-2.amazonaws.com https://secure.gravatar.com http://gravatar.com maps.google.com maps.gstatic.com *.googleapis.com"
|
||||
set-cookie: 'snipe-dev_local=WCUA668q64Tb6nEAAMH6QDj0KxiWwfnKfCVC1WL5; expires=Sat, 18 Oct 2025 20:42:52 GMT; Max-Age=720000; path=/; secure; httponly; samesite=lax'
|
||||
description: null
|
||||
custom: []
|
||||
responseFields: []
|
||||
auth:
|
||||
- headers
|
||||
- Authorization
|
||||
- 'Bearer 6g43cv8PD1aE5beadkZfhV6'
|
||||
controller: null
|
||||
method: null
|
||||
route: null
|
||||
custom: []
|
||||
-
|
||||
httpMethods:
|
||||
- GET
|
||||
uri: api/v1/licenses
|
||||
metadata:
|
||||
groupName: Licenses
|
||||
groupDescription: ''
|
||||
subgroup: ''
|
||||
subgroupDescription: ''
|
||||
title: 'List Licenses'
|
||||
description: ''
|
||||
authenticated: true
|
||||
deprecated: false
|
||||
custom: []
|
||||
headers:
|
||||
Authorization: 'Bearer 6g43cv8PD1aE5beadkZfhV6'
|
||||
Content-Type: application/json
|
||||
Accept: application/json
|
||||
urlParameters: []
|
||||
cleanUrlParameters: []
|
||||
queryParameters:
|
||||
status:
|
||||
name: status
|
||||
description: 'Filter by license status. Options: active, inactive, expiring'
|
||||
required: false
|
||||
example: '?status=active'
|
||||
type: string
|
||||
enumValues: []
|
||||
exampleWasSpecified: true
|
||||
nullable: false
|
||||
custom: []
|
||||
company_id:
|
||||
name: company_id
|
||||
description: 'Filter by exact company ID.'
|
||||
required: false
|
||||
example: 1
|
||||
type: integer
|
||||
enumValues: []
|
||||
exampleWasSpecified: true
|
||||
nullable: false
|
||||
custom: []
|
||||
name:
|
||||
name: name
|
||||
description: 'Filter by exact license name.'
|
||||
required: false
|
||||
example: 'Microsoft 365'
|
||||
type: string
|
||||
enumValues: []
|
||||
exampleWasSpecified: true
|
||||
nullable: false
|
||||
custom: []
|
||||
product_key:
|
||||
name: product_key
|
||||
description: 'Filter by exact product key.'
|
||||
required: false
|
||||
example: W269N
|
||||
type: string
|
||||
enumValues: []
|
||||
exampleWasSpecified: true
|
||||
nullable: false
|
||||
custom: []
|
||||
order_number:
|
||||
name: order_number
|
||||
description: 'Filter by exact order number.'
|
||||
required: false
|
||||
example: '12345'
|
||||
type: string
|
||||
enumValues: []
|
||||
exampleWasSpecified: true
|
||||
nullable: false
|
||||
custom: []
|
||||
purchase_order:
|
||||
name: purchase_order
|
||||
description: 'Filter by exact purchase order.'
|
||||
required: false
|
||||
example: PO12345
|
||||
type: string
|
||||
enumValues: []
|
||||
exampleWasSpecified: true
|
||||
nullable: false
|
||||
custom: []
|
||||
license_name:
|
||||
name: license_name
|
||||
description: 'Filter by exact licensee name.'
|
||||
required: false
|
||||
example: 'John Doe'
|
||||
type: string
|
||||
enumValues: []
|
||||
exampleWasSpecified: true
|
||||
nullable: false
|
||||
custom: []
|
||||
license_email:
|
||||
name: license_email
|
||||
description: 'Filter by exact licensee email.'
|
||||
required: false
|
||||
example: john.d
|
||||
type: string
|
||||
enumValues: []
|
||||
exampleWasSpecified: true
|
||||
nullable: false
|
||||
custom: []
|
||||
cleanQueryParameters:
|
||||
status: '?status=active'
|
||||
company_id: 1
|
||||
name: 'Microsoft 365'
|
||||
product_key: W269N
|
||||
order_number: '12345'
|
||||
purchase_order: PO12345
|
||||
license_name: 'John Doe'
|
||||
license_email: john.d
|
||||
bodyParameters: []
|
||||
cleanBodyParameters: []
|
||||
fileParameters: []
|
||||
responses:
|
||||
-
|
||||
status: 401
|
||||
content: '{"error":"Unauthorized or unauthenticated."}'
|
||||
headers:
|
||||
cache-control: 'max-age=0, must-revalidate, no-cache, no-store, private'
|
||||
content-type: application/json
|
||||
vary: Origin
|
||||
pragma: no-cache
|
||||
expires: 'Sun, 02 Jan 1990 00:00:00 GMT'
|
||||
x-content-type-options: nosniff
|
||||
feature-policy: "accelerometer 'none';autoplay 'none';camera 'none';display-capture 'none';document-domain 'none';encrypted-media 'none';fullscreen 'none';geolocation 'none';sync-xhr 'none';usb 'none';xr-spatial-tracking 'none'"
|
||||
referrer-policy: same-origin
|
||||
content-security-policy: "default-src 'self';style-src 'self' 'unsafe-inline';script-src 'self' 'unsafe-inline' 'unsafe-eval';connect-src 'self';object-src 'none';font-src 'self' data:;img-src 'self' data: https://snipe-it.test https://avatars.githubusercontent.com/u/ https://www.google.com/images/branding/googlelogo/2x/ https://snipe-flysystem-public-test.s3-us-west-2.amazonaws.com https://secure.gravatar.com http://gravatar.com maps.google.com maps.gstatic.com *.googleapis.com"
|
||||
set-cookie: 'snipe-dev_local=FsSfFEzLbFI2oqcTFwXV523YHYRteVgVbhwU1KjU; expires=Sat, 18 Oct 2025 20:42:52 GMT; Max-Age=720000; path=/; secure; httponly; samesite=lax'
|
||||
description: null
|
||||
custom: []
|
||||
responseFields: []
|
||||
auth:
|
||||
- headers
|
||||
- Authorization
|
||||
- 'Bearer 6g43cv8PD1aE5beadkZfhV6'
|
||||
controller: null
|
||||
method: null
|
||||
route: null
|
||||
custom: []
|
||||
-
|
||||
httpMethods:
|
||||
- POST
|
||||
uri: api/v1/licenses
|
||||
metadata:
|
||||
groupName: Licenses
|
||||
groupDescription: ''
|
||||
subgroup: ''
|
||||
subgroupDescription: ''
|
||||
title: 'Create License'
|
||||
description: ''
|
||||
authenticated: true
|
||||
deprecated: false
|
||||
custom: []
|
||||
headers:
|
||||
Authorization: 'Bearer 6g43cv8PD1aE5beadkZfhV6'
|
||||
Content-Type: application/json
|
||||
Accept: application/json
|
||||
urlParameters: []
|
||||
cleanUrlParameters: []
|
||||
queryParameters: []
|
||||
cleanQueryParameters: []
|
||||
bodyParameters: []
|
||||
cleanBodyParameters: []
|
||||
fileParameters: []
|
||||
responses: []
|
||||
responseFields: []
|
||||
auth:
|
||||
- headers
|
||||
- Authorization
|
||||
- 'Bearer 6g43cv8PD1aE5beadkZfhV6'
|
||||
controller: null
|
||||
method: null
|
||||
route: null
|
||||
custom: []
|
||||
-
|
||||
httpMethods:
|
||||
- GET
|
||||
uri: 'api/v1/licenses/{license_id}'
|
||||
metadata:
|
||||
groupName: Licenses
|
||||
groupDescription: ''
|
||||
subgroup: ''
|
||||
subgroupDescription: ''
|
||||
title: 'Show License'
|
||||
description: ''
|
||||
authenticated: true
|
||||
deprecated: false
|
||||
custom: []
|
||||
headers:
|
||||
Authorization: 'Bearer 6g43cv8PD1aE5beadkZfhV6'
|
||||
Content-Type: application/json
|
||||
Accept: application/json
|
||||
urlParameters:
|
||||
license_id:
|
||||
name: license_id
|
||||
description: 'The ID of the license.'
|
||||
required: true
|
||||
example: 1
|
||||
type: integer
|
||||
enumValues: []
|
||||
exampleWasSpecified: false
|
||||
nullable: false
|
||||
custom: []
|
||||
cleanUrlParameters:
|
||||
license_id: 1
|
||||
queryParameters: []
|
||||
cleanQueryParameters: []
|
||||
bodyParameters: []
|
||||
cleanBodyParameters: []
|
||||
fileParameters: []
|
||||
responses:
|
||||
-
|
||||
status: 401
|
||||
content: '{"error":"Unauthorized or unauthenticated."}'
|
||||
headers:
|
||||
cache-control: 'max-age=0, must-revalidate, no-cache, no-store, private'
|
||||
content-type: application/json
|
||||
vary: Origin
|
||||
pragma: no-cache
|
||||
expires: 'Sun, 02 Jan 1990 00:00:00 GMT'
|
||||
x-content-type-options: nosniff
|
||||
feature-policy: "accelerometer 'none';autoplay 'none';camera 'none';display-capture 'none';document-domain 'none';encrypted-media 'none';fullscreen 'none';geolocation 'none';sync-xhr 'none';usb 'none';xr-spatial-tracking 'none'"
|
||||
referrer-policy: same-origin
|
||||
content-security-policy: "default-src 'self';style-src 'self' 'unsafe-inline';script-src 'self' 'unsafe-inline' 'unsafe-eval';connect-src 'self';object-src 'none';font-src 'self' data:;img-src 'self' data: https://snipe-it.test https://avatars.githubusercontent.com/u/ https://www.google.com/images/branding/googlelogo/2x/ https://snipe-flysystem-public-test.s3-us-west-2.amazonaws.com https://secure.gravatar.com http://gravatar.com maps.google.com maps.gstatic.com *.googleapis.com"
|
||||
set-cookie: 'snipe-dev_local=fr7kJMaaASq4b53DwioCqOIG1A7k7COxiBsYFjXL; expires=Sat, 18 Oct 2025 20:42:52 GMT; Max-Age=720000; path=/; secure; httponly; samesite=lax'
|
||||
description: null
|
||||
custom: []
|
||||
responseFields: []
|
||||
auth:
|
||||
- headers
|
||||
- Authorization
|
||||
- 'Bearer 6g43cv8PD1aE5beadkZfhV6'
|
||||
controller: null
|
||||
method: null
|
||||
route: null
|
||||
custom: []
|
||||
-
|
||||
httpMethods:
|
||||
- PUT
|
||||
- PATCH
|
||||
uri: 'api/v1/licenses/{license_id}'
|
||||
metadata:
|
||||
groupName: Licenses
|
||||
groupDescription: ''
|
||||
subgroup: ''
|
||||
subgroupDescription: ''
|
||||
title: 'Update License'
|
||||
description: ''
|
||||
authenticated: true
|
||||
deprecated: false
|
||||
custom: []
|
||||
headers:
|
||||
Authorization: 'Bearer 6g43cv8PD1aE5beadkZfhV6'
|
||||
Content-Type: application/json
|
||||
Accept: application/json
|
||||
urlParameters:
|
||||
license_id:
|
||||
name: license_id
|
||||
description: 'The ID of the license.'
|
||||
required: true
|
||||
example: 1
|
||||
type: integer
|
||||
enumValues: []
|
||||
exampleWasSpecified: false
|
||||
nullable: false
|
||||
custom: []
|
||||
cleanUrlParameters:
|
||||
license_id: 1
|
||||
queryParameters: []
|
||||
cleanQueryParameters: []
|
||||
bodyParameters: []
|
||||
cleanBodyParameters: []
|
||||
fileParameters: []
|
||||
responses: []
|
||||
responseFields: []
|
||||
auth:
|
||||
- headers
|
||||
- Authorization
|
||||
- 'Bearer 6g43cv8PD1aE5beadkZfhV6'
|
||||
controller: null
|
||||
method: null
|
||||
route: null
|
||||
custom: []
|
||||
-
|
||||
httpMethods:
|
||||
- DELETE
|
||||
uri: 'api/v1/licenses/{license_id}'
|
||||
metadata:
|
||||
groupName: Licenses
|
||||
groupDescription: ''
|
||||
subgroup: ''
|
||||
subgroupDescription: ''
|
||||
title: 'Delete License'
|
||||
description: ''
|
||||
authenticated: true
|
||||
deprecated: false
|
||||
custom: []
|
||||
headers:
|
||||
Authorization: 'Bearer 6g43cv8PD1aE5beadkZfhV6'
|
||||
Content-Type: application/json
|
||||
Accept: application/json
|
||||
urlParameters:
|
||||
license_id:
|
||||
name: license_id
|
||||
description: 'The ID of the license.'
|
||||
required: true
|
||||
example: 1
|
||||
type: integer
|
||||
enumValues: []
|
||||
exampleWasSpecified: false
|
||||
nullable: false
|
||||
custom: []
|
||||
cleanUrlParameters:
|
||||
license_id: 1
|
||||
queryParameters: []
|
||||
cleanQueryParameters: []
|
||||
bodyParameters: []
|
||||
cleanBodyParameters: []
|
||||
fileParameters: []
|
||||
responses: []
|
||||
responseFields: []
|
||||
auth:
|
||||
- headers
|
||||
- Authorization
|
||||
- 'Bearer 6g43cv8PD1aE5beadkZfhV6'
|
||||
controller: null
|
||||
method: null
|
||||
route: null
|
||||
custom: []
|
||||
-
|
||||
httpMethods:
|
||||
- GET
|
||||
uri: 'api/v1/licenses/{license_id}/seats'
|
||||
metadata:
|
||||
groupName: Licenses
|
||||
groupDescription: ''
|
||||
subgroup: 'License Seats'
|
||||
subgroupDescription: ''
|
||||
title: 'List License Seats'
|
||||
description: ''
|
||||
authenticated: true
|
||||
deprecated: false
|
||||
custom: []
|
||||
headers:
|
||||
Authorization: 'Bearer 6g43cv8PD1aE5beadkZfhV6'
|
||||
Content-Type: application/json
|
||||
Accept: application/json
|
||||
urlParameters:
|
||||
license_id:
|
||||
name: license_id
|
||||
description: 'The ID of the license.'
|
||||
required: true
|
||||
example: 1
|
||||
type: integer
|
||||
enumValues: []
|
||||
exampleWasSpecified: false
|
||||
nullable: false
|
||||
custom: []
|
||||
cleanUrlParameters:
|
||||
license_id: 1
|
||||
queryParameters: []
|
||||
cleanQueryParameters: []
|
||||
bodyParameters: []
|
||||
cleanBodyParameters: []
|
||||
fileParameters: []
|
||||
responses:
|
||||
-
|
||||
status: 401
|
||||
content: '{"error":"Unauthorized or unauthenticated."}'
|
||||
headers:
|
||||
cache-control: 'max-age=0, must-revalidate, no-cache, no-store, private'
|
||||
content-type: application/json
|
||||
vary: Origin
|
||||
pragma: no-cache
|
||||
expires: 'Sun, 02 Jan 1990 00:00:00 GMT'
|
||||
x-content-type-options: nosniff
|
||||
feature-policy: "accelerometer 'none';autoplay 'none';camera 'none';display-capture 'none';document-domain 'none';encrypted-media 'none';fullscreen 'none';geolocation 'none';sync-xhr 'none';usb 'none';xr-spatial-tracking 'none'"
|
||||
referrer-policy: same-origin
|
||||
content-security-policy: "default-src 'self';style-src 'self' 'unsafe-inline';script-src 'self' 'unsafe-inline' 'unsafe-eval';connect-src 'self';object-src 'none';font-src 'self' data:;img-src 'self' data: https://snipe-it.test https://avatars.githubusercontent.com/u/ https://www.google.com/images/branding/googlelogo/2x/ https://snipe-flysystem-public-test.s3-us-west-2.amazonaws.com https://secure.gravatar.com http://gravatar.com maps.google.com maps.gstatic.com *.googleapis.com"
|
||||
set-cookie: 'snipe-dev_local=StfngPkbKXNpOhusZSc3gJVfFrY1dHeurAa4otwt; expires=Sat, 18 Oct 2025 20:42:52 GMT; Max-Age=720000; path=/; secure; httponly; samesite=lax'
|
||||
description: null
|
||||
custom: []
|
||||
responseFields: []
|
||||
auth:
|
||||
- headers
|
||||
- Authorization
|
||||
- 'Bearer 6g43cv8PD1aE5beadkZfhV6'
|
||||
controller: null
|
||||
method: null
|
||||
route: null
|
||||
custom: []
|
||||
-
|
||||
httpMethods:
|
||||
- GET
|
||||
uri: 'api/v1/licenses/{license_id}/seats/{id}'
|
||||
metadata:
|
||||
groupName: Licenses
|
||||
groupDescription: ''
|
||||
subgroup: 'License Seats'
|
||||
subgroupDescription: ''
|
||||
title: 'Show License Seat'
|
||||
description: ''
|
||||
authenticated: true
|
||||
deprecated: false
|
||||
custom: []
|
||||
headers:
|
||||
Authorization: 'Bearer 6g43cv8PD1aE5beadkZfhV6'
|
||||
Content-Type: application/json
|
||||
Accept: application/json
|
||||
urlParameters:
|
||||
license_id:
|
||||
name: license_id
|
||||
description: 'The ID of the license.'
|
||||
required: true
|
||||
example: 1
|
||||
type: integer
|
||||
enumValues: []
|
||||
exampleWasSpecified: false
|
||||
nullable: false
|
||||
custom: []
|
||||
id:
|
||||
name: id
|
||||
description: 'The ID of the seat.'
|
||||
required: true
|
||||
example: architecto
|
||||
type: string
|
||||
enumValues: []
|
||||
exampleWasSpecified: false
|
||||
nullable: false
|
||||
custom: []
|
||||
cleanUrlParameters:
|
||||
license_id: 1
|
||||
id: architecto
|
||||
queryParameters: []
|
||||
cleanQueryParameters: []
|
||||
bodyParameters: []
|
||||
cleanBodyParameters: []
|
||||
fileParameters: []
|
||||
responses:
|
||||
-
|
||||
status: 401
|
||||
content: '{"error":"Unauthorized or unauthenticated."}'
|
||||
headers:
|
||||
cache-control: 'max-age=0, must-revalidate, no-cache, no-store, private'
|
||||
content-type: application/json
|
||||
vary: Origin
|
||||
pragma: no-cache
|
||||
expires: 'Sun, 02 Jan 1990 00:00:00 GMT'
|
||||
x-content-type-options: nosniff
|
||||
feature-policy: "accelerometer 'none';autoplay 'none';camera 'none';display-capture 'none';document-domain 'none';encrypted-media 'none';fullscreen 'none';geolocation 'none';sync-xhr 'none';usb 'none';xr-spatial-tracking 'none'"
|
||||
referrer-policy: same-origin
|
||||
content-security-policy: "default-src 'self';style-src 'self' 'unsafe-inline';script-src 'self' 'unsafe-inline' 'unsafe-eval';connect-src 'self';object-src 'none';font-src 'self' data:;img-src 'self' data: https://snipe-it.test https://avatars.githubusercontent.com/u/ https://www.google.com/images/branding/googlelogo/2x/ https://snipe-flysystem-public-test.s3-us-west-2.amazonaws.com https://secure.gravatar.com http://gravatar.com maps.google.com maps.gstatic.com *.googleapis.com"
|
||||
set-cookie: 'snipe-dev_local=4NcQjrTDkyy5Ps1lwLlvwwkW8zLNdvkt4jLniAbj; expires=Sat, 18 Oct 2025 20:42:52 GMT; Max-Age=720000; path=/; secure; httponly; samesite=lax'
|
||||
description: null
|
||||
custom: []
|
||||
responseFields: []
|
||||
auth:
|
||||
- headers
|
||||
- Authorization
|
||||
- 'Bearer 6g43cv8PD1aE5beadkZfhV6'
|
||||
controller: null
|
||||
method: null
|
||||
route: null
|
||||
custom: []
|
||||
-
|
||||
httpMethods:
|
||||
- PUT
|
||||
- PATCH
|
||||
uri: 'api/v1/licenses/{license_id}/seats/{id}'
|
||||
metadata:
|
||||
groupName: Licenses
|
||||
groupDescription: ''
|
||||
subgroup: 'License Seats'
|
||||
subgroupDescription: ''
|
||||
title: 'Update License Seat'
|
||||
description: ''
|
||||
authenticated: true
|
||||
deprecated: false
|
||||
custom: []
|
||||
headers:
|
||||
Authorization: 'Bearer 6g43cv8PD1aE5beadkZfhV6'
|
||||
Content-Type: application/json
|
||||
Accept: application/json
|
||||
urlParameters:
|
||||
license_id:
|
||||
name: license_id
|
||||
description: 'The ID of the license.'
|
||||
required: true
|
||||
example: 1
|
||||
type: integer
|
||||
enumValues: []
|
||||
exampleWasSpecified: false
|
||||
nullable: false
|
||||
custom: []
|
||||
id:
|
||||
name: id
|
||||
description: 'The ID of the seat.'
|
||||
required: true
|
||||
example: architecto
|
||||
type: string
|
||||
enumValues: []
|
||||
exampleWasSpecified: false
|
||||
nullable: false
|
||||
custom: []
|
||||
cleanUrlParameters:
|
||||
license_id: 1
|
||||
id: architecto
|
||||
queryParameters: []
|
||||
cleanQueryParameters: []
|
||||
bodyParameters: []
|
||||
cleanBodyParameters: []
|
||||
fileParameters: []
|
||||
responses: []
|
||||
responseFields: []
|
||||
auth:
|
||||
- headers
|
||||
- Authorization
|
||||
- 'Bearer 6g43cv8PD1aE5beadkZfhV6'
|
||||
controller: null
|
||||
method: null
|
||||
route: null
|
||||
custom: []
|
||||
@@ -1,644 +0,0 @@
|
||||
name: Locations
|
||||
description: ''
|
||||
endpoints:
|
||||
-
|
||||
httpMethods:
|
||||
- GET
|
||||
uri: api/v1/locations/selectlist
|
||||
metadata:
|
||||
groupName: Locations
|
||||
groupDescription: ''
|
||||
subgroup: ''
|
||||
subgroupDescription: ''
|
||||
title: 'Gets a paginated collection for the select2 menus'
|
||||
description: |-
|
||||
This is handled slightly differently as of ~4.7.8-pre, as
|
||||
we have to do some recursive magic to get the hierarchy to display
|
||||
properly when looking at the parent/child relationship in the
|
||||
rich menus.
|
||||
|
||||
This means we can't use the normal pagination that we use elsewhere
|
||||
in our selectlists, since we have to get the full set before we can
|
||||
determine which location is parent/child/grandchild, etc.
|
||||
|
||||
This also means that hierarchy display gets a little funky when people
|
||||
use the Select2 search functionality, but there's not much we can do about
|
||||
that right now.
|
||||
|
||||
As a result, instead of paginating as part of the query, we have to grab
|
||||
the entire data set, and then invoke a paginator manually and pass that
|
||||
through to the SelectListTransformer.
|
||||
|
||||
Many thanks to @uberbrady for the help getting this working better.
|
||||
Recursion still sucks, but I guess he doesn't have to get in the
|
||||
sea... this time.
|
||||
authenticated: true
|
||||
deprecated: false
|
||||
custom: []
|
||||
headers:
|
||||
Authorization: 'Bearer 6g43cv8PD1aE5beadkZfhV6'
|
||||
Content-Type: application/json
|
||||
Accept: application/json
|
||||
urlParameters: []
|
||||
cleanUrlParameters: []
|
||||
queryParameters: []
|
||||
cleanQueryParameters: []
|
||||
bodyParameters: []
|
||||
cleanBodyParameters: []
|
||||
fileParameters: []
|
||||
responses:
|
||||
-
|
||||
status: 401
|
||||
content: '{"error":"Unauthorized or unauthenticated."}'
|
||||
headers:
|
||||
cache-control: 'max-age=0, must-revalidate, no-cache, no-store, private'
|
||||
content-type: application/json
|
||||
vary: Origin
|
||||
pragma: no-cache
|
||||
expires: 'Sun, 02 Jan 1990 00:00:00 GMT'
|
||||
x-content-type-options: nosniff
|
||||
feature-policy: "accelerometer 'none';autoplay 'none';camera 'none';display-capture 'none';document-domain 'none';encrypted-media 'none';fullscreen 'none';geolocation 'none';sync-xhr 'none';usb 'none';xr-spatial-tracking 'none'"
|
||||
referrer-policy: same-origin
|
||||
content-security-policy: "default-src 'self';style-src 'self' 'unsafe-inline';script-src 'self' 'unsafe-inline' 'unsafe-eval';connect-src 'self';object-src 'none';font-src 'self' data:;img-src 'self' data: https://snipe-it.test https://avatars.githubusercontent.com/u/ https://www.google.com/images/branding/googlelogo/2x/ https://snipe-flysystem-public-test.s3-us-west-2.amazonaws.com https://secure.gravatar.com http://gravatar.com maps.google.com maps.gstatic.com *.googleapis.com"
|
||||
set-cookie: 'snipe-dev_local=UpVwalXoUKqNpdc1JZOoxLIbtfuGTDjmXv2FL0U4; expires=Sat, 18 Oct 2025 20:42:52 GMT; Max-Age=720000; path=/; secure; httponly; samesite=lax'
|
||||
description: null
|
||||
custom: []
|
||||
responseFields: []
|
||||
auth:
|
||||
- headers
|
||||
- Authorization
|
||||
- 'Bearer 6g43cv8PD1aE5beadkZfhV6'
|
||||
controller: null
|
||||
method: null
|
||||
route: null
|
||||
custom: []
|
||||
-
|
||||
httpMethods:
|
||||
- GET
|
||||
uri: 'api/v1/locations/{location_id}/assets'
|
||||
metadata:
|
||||
groupName: Locations
|
||||
groupDescription: ''
|
||||
subgroup: ''
|
||||
subgroupDescription: ''
|
||||
title: 'Show Assets with Default Location'
|
||||
description: ''
|
||||
authenticated: true
|
||||
deprecated: false
|
||||
custom: []
|
||||
headers:
|
||||
Authorization: 'Bearer 6g43cv8PD1aE5beadkZfhV6'
|
||||
Content-Type: application/json
|
||||
Accept: application/json
|
||||
urlParameters:
|
||||
location_id:
|
||||
name: location_id
|
||||
description: 'The ID of the location.'
|
||||
required: true
|
||||
example: 1
|
||||
type: integer
|
||||
enumValues: []
|
||||
exampleWasSpecified: false
|
||||
nullable: false
|
||||
custom: []
|
||||
cleanUrlParameters:
|
||||
location_id: 1
|
||||
queryParameters: []
|
||||
cleanQueryParameters: []
|
||||
bodyParameters: []
|
||||
cleanBodyParameters: []
|
||||
fileParameters: []
|
||||
responses:
|
||||
-
|
||||
status: 401
|
||||
content: '{"error":"Unauthorized or unauthenticated."}'
|
||||
headers:
|
||||
cache-control: 'max-age=0, must-revalidate, no-cache, no-store, private'
|
||||
content-type: application/json
|
||||
vary: Origin
|
||||
pragma: no-cache
|
||||
expires: 'Sun, 02 Jan 1990 00:00:00 GMT'
|
||||
x-content-type-options: nosniff
|
||||
feature-policy: "accelerometer 'none';autoplay 'none';camera 'none';display-capture 'none';document-domain 'none';encrypted-media 'none';fullscreen 'none';geolocation 'none';sync-xhr 'none';usb 'none';xr-spatial-tracking 'none'"
|
||||
referrer-policy: same-origin
|
||||
content-security-policy: "default-src 'self';style-src 'self' 'unsafe-inline';script-src 'self' 'unsafe-inline' 'unsafe-eval';connect-src 'self';object-src 'none';font-src 'self' data:;img-src 'self' data: https://snipe-it.test https://avatars.githubusercontent.com/u/ https://www.google.com/images/branding/googlelogo/2x/ https://snipe-flysystem-public-test.s3-us-west-2.amazonaws.com https://secure.gravatar.com http://gravatar.com maps.google.com maps.gstatic.com *.googleapis.com"
|
||||
set-cookie: 'snipe-dev_local=s6eLrXoHfx9aHRHsGokhuXGIfcWMyMK6s8Y7CuQb; expires=Sat, 18 Oct 2025 20:42:52 GMT; Max-Age=720000; path=/; secure; httponly; samesite=lax'
|
||||
description: null
|
||||
custom: []
|
||||
responseFields: []
|
||||
auth:
|
||||
- headers
|
||||
- Authorization
|
||||
- 'Bearer 6g43cv8PD1aE5beadkZfhV6'
|
||||
controller: null
|
||||
method: null
|
||||
route: null
|
||||
custom: []
|
||||
-
|
||||
httpMethods:
|
||||
- GET
|
||||
uri: 'api/v1/locations/{location_id}/assigned/assets'
|
||||
metadata:
|
||||
groupName: Locations
|
||||
groupDescription: ''
|
||||
subgroup: ''
|
||||
subgroupDescription: ''
|
||||
title: 'Show Assets Assigned to Location'
|
||||
description: ''
|
||||
authenticated: true
|
||||
deprecated: false
|
||||
custom: []
|
||||
headers:
|
||||
Authorization: 'Bearer 6g43cv8PD1aE5beadkZfhV6'
|
||||
Content-Type: application/json
|
||||
Accept: application/json
|
||||
urlParameters:
|
||||
location_id:
|
||||
name: location_id
|
||||
description: 'The ID of the location.'
|
||||
required: true
|
||||
example: 1
|
||||
type: integer
|
||||
enumValues: []
|
||||
exampleWasSpecified: false
|
||||
nullable: false
|
||||
custom: []
|
||||
cleanUrlParameters:
|
||||
location_id: 1
|
||||
queryParameters: []
|
||||
cleanQueryParameters: []
|
||||
bodyParameters: []
|
||||
cleanBodyParameters: []
|
||||
fileParameters: []
|
||||
responses:
|
||||
-
|
||||
status: 401
|
||||
content: '{"error":"Unauthorized or unauthenticated."}'
|
||||
headers:
|
||||
cache-control: 'max-age=0, must-revalidate, no-cache, no-store, private'
|
||||
content-type: application/json
|
||||
vary: Origin
|
||||
pragma: no-cache
|
||||
expires: 'Sun, 02 Jan 1990 00:00:00 GMT'
|
||||
x-content-type-options: nosniff
|
||||
feature-policy: "accelerometer 'none';autoplay 'none';camera 'none';display-capture 'none';document-domain 'none';encrypted-media 'none';fullscreen 'none';geolocation 'none';sync-xhr 'none';usb 'none';xr-spatial-tracking 'none'"
|
||||
referrer-policy: same-origin
|
||||
content-security-policy: "default-src 'self';style-src 'self' 'unsafe-inline';script-src 'self' 'unsafe-inline' 'unsafe-eval';connect-src 'self';object-src 'none';font-src 'self' data:;img-src 'self' data: https://snipe-it.test https://avatars.githubusercontent.com/u/ https://www.google.com/images/branding/googlelogo/2x/ https://snipe-flysystem-public-test.s3-us-west-2.amazonaws.com https://secure.gravatar.com http://gravatar.com maps.google.com maps.gstatic.com *.googleapis.com"
|
||||
set-cookie: 'snipe-dev_local=6IjNjFVBRoxfcpk3lgt97JCcwcwkJ18MblUUArEa; expires=Sat, 18 Oct 2025 20:42:52 GMT; Max-Age=720000; path=/; secure; httponly; samesite=lax'
|
||||
description: null
|
||||
custom: []
|
||||
responseFields: []
|
||||
auth:
|
||||
- headers
|
||||
- Authorization
|
||||
- 'Bearer 6g43cv8PD1aE5beadkZfhV6'
|
||||
controller: null
|
||||
method: null
|
||||
route: null
|
||||
custom: []
|
||||
-
|
||||
httpMethods:
|
||||
- GET
|
||||
uri: 'api/v1/locations/{location_id}/assigned/accessories'
|
||||
metadata:
|
||||
groupName: Locations
|
||||
groupDescription: ''
|
||||
subgroup: ''
|
||||
subgroupDescription: ''
|
||||
title: 'Show Accessories Assigned to Location'
|
||||
description: ''
|
||||
authenticated: true
|
||||
deprecated: false
|
||||
custom: []
|
||||
headers:
|
||||
Authorization: 'Bearer 6g43cv8PD1aE5beadkZfhV6'
|
||||
Content-Type: application/json
|
||||
Accept: application/json
|
||||
urlParameters:
|
||||
location_id:
|
||||
name: location_id
|
||||
description: 'The ID of the location.'
|
||||
required: true
|
||||
example: 1
|
||||
type: integer
|
||||
enumValues: []
|
||||
exampleWasSpecified: false
|
||||
nullable: false
|
||||
custom: []
|
||||
cleanUrlParameters:
|
||||
location_id: 1
|
||||
queryParameters: []
|
||||
cleanQueryParameters: []
|
||||
bodyParameters: []
|
||||
cleanBodyParameters: []
|
||||
fileParameters: []
|
||||
responses:
|
||||
-
|
||||
status: 401
|
||||
content: '{"error":"Unauthorized or unauthenticated."}'
|
||||
headers:
|
||||
cache-control: 'max-age=0, must-revalidate, no-cache, no-store, private'
|
||||
content-type: application/json
|
||||
vary: Origin
|
||||
pragma: no-cache
|
||||
expires: 'Sun, 02 Jan 1990 00:00:00 GMT'
|
||||
x-content-type-options: nosniff
|
||||
feature-policy: "accelerometer 'none';autoplay 'none';camera 'none';display-capture 'none';document-domain 'none';encrypted-media 'none';fullscreen 'none';geolocation 'none';sync-xhr 'none';usb 'none';xr-spatial-tracking 'none'"
|
||||
referrer-policy: same-origin
|
||||
content-security-policy: "default-src 'self';style-src 'self' 'unsafe-inline';script-src 'self' 'unsafe-inline' 'unsafe-eval';connect-src 'self';object-src 'none';font-src 'self' data:;img-src 'self' data: https://snipe-it.test https://avatars.githubusercontent.com/u/ https://www.google.com/images/branding/googlelogo/2x/ https://snipe-flysystem-public-test.s3-us-west-2.amazonaws.com https://secure.gravatar.com http://gravatar.com maps.google.com maps.gstatic.com *.googleapis.com"
|
||||
set-cookie: 'snipe-dev_local=8QVLWPz9VFdTVM9oelFsOvXEnefwKOeIuos7D23G; expires=Sat, 18 Oct 2025 20:42:52 GMT; Max-Age=720000; path=/; secure; httponly; samesite=lax'
|
||||
description: null
|
||||
custom: []
|
||||
responseFields: []
|
||||
auth:
|
||||
- headers
|
||||
- Authorization
|
||||
- 'Bearer 6g43cv8PD1aE5beadkZfhV6'
|
||||
controller: null
|
||||
method: null
|
||||
route: null
|
||||
custom: []
|
||||
-
|
||||
httpMethods:
|
||||
- GET
|
||||
uri: api/v1/locations
|
||||
metadata:
|
||||
groupName: Locations
|
||||
groupDescription: ''
|
||||
subgroup: ''
|
||||
subgroupDescription: ''
|
||||
title: 'List Locations'
|
||||
description: ''
|
||||
authenticated: true
|
||||
deprecated: false
|
||||
custom: []
|
||||
headers:
|
||||
Authorization: 'Bearer 6g43cv8PD1aE5beadkZfhV6'
|
||||
Content-Type: application/json
|
||||
Accept: application/json
|
||||
urlParameters: []
|
||||
cleanUrlParameters: []
|
||||
queryParameters:
|
||||
search:
|
||||
name: search
|
||||
description: 'Search term to filter results.'
|
||||
required: false
|
||||
example: Headquarters
|
||||
type: string
|
||||
enumValues: []
|
||||
exampleWasSpecified: true
|
||||
nullable: false
|
||||
custom: []
|
||||
name:
|
||||
name: name
|
||||
description: 'Filter by exact location name.'
|
||||
required: false
|
||||
example: Headquarters
|
||||
type: string
|
||||
enumValues: []
|
||||
exampleWasSpecified: true
|
||||
nullable: false
|
||||
custom: []
|
||||
address:
|
||||
name: address
|
||||
description: 'Filter by exact address.'
|
||||
required: false
|
||||
example: '123 Main St'
|
||||
type: string
|
||||
enumValues: []
|
||||
exampleWasSpecified: true
|
||||
nullable: false
|
||||
custom: []
|
||||
address2:
|
||||
name: address2
|
||||
description: 'Filter by exact address2.'
|
||||
required: false
|
||||
example: 'Suite 100'
|
||||
type: string
|
||||
enumValues: []
|
||||
exampleWasSpecified: true
|
||||
nullable: false
|
||||
custom: []
|
||||
city:
|
||||
name: city
|
||||
description: 'Filter by exact city.'
|
||||
required: false
|
||||
example: Springfield
|
||||
type: string
|
||||
enumValues: []
|
||||
exampleWasSpecified: true
|
||||
nullable: false
|
||||
custom: []
|
||||
zip:
|
||||
name: zip
|
||||
description: 'Filter by exact zip code.'
|
||||
required: false
|
||||
example: '12345'
|
||||
type: string
|
||||
enumValues: []
|
||||
exampleWasSpecified: true
|
||||
nullable: false
|
||||
custom: []
|
||||
country:
|
||||
name: country
|
||||
description: 'Filter by exact country.'
|
||||
required: false
|
||||
example: USA
|
||||
type: string
|
||||
enumValues: []
|
||||
exampleWasSpecified: true
|
||||
nullable: false
|
||||
custom: []
|
||||
manager_id:
|
||||
name: manager_id
|
||||
description: 'Filter by exact manager (user) ID.'
|
||||
required: false
|
||||
example: 1
|
||||
type: integer
|
||||
enumValues: []
|
||||
exampleWasSpecified: true
|
||||
nullable: false
|
||||
custom: []
|
||||
company_id:
|
||||
name: company_id
|
||||
description: 'Filter by exact company ID.'
|
||||
required: false
|
||||
example: 1
|
||||
type: integer
|
||||
enumValues: []
|
||||
exampleWasSpecified: true
|
||||
nullable: false
|
||||
custom: []
|
||||
parent_id:
|
||||
name: parent_id
|
||||
description: 'Filter by exact parent location ID.'
|
||||
required: false
|
||||
example: 1
|
||||
type: integer
|
||||
enumValues: []
|
||||
exampleWasSpecified: true
|
||||
nullable: false
|
||||
custom: []
|
||||
status:
|
||||
name: status
|
||||
description: 'Filter by location status. Allowed values: active, deleted.'
|
||||
required: false
|
||||
example: active
|
||||
type: string
|
||||
enumValues: []
|
||||
exampleWasSpecified: true
|
||||
nullable: false
|
||||
custom: []
|
||||
sort:
|
||||
name: sort
|
||||
description: 'Column to sort results by. Allowed values: accessorries_count, address, address2, assets_count, assigned_assets_count, rtd_assets_count, accessories_count, assigned_accessories_count, components_count, consumables_count, users_count, children_count, city, country, created_at, currency, id, image, ldap_ou, company_id, manager_id, name, rtd_assets_count, state, updated_at, zip. Default: created_at.'
|
||||
required: false
|
||||
example: name
|
||||
type: string
|
||||
enumValues: []
|
||||
exampleWasSpecified: true
|
||||
nullable: false
|
||||
custom: []
|
||||
order:
|
||||
name: order
|
||||
description: 'Order of sorted results. Allowed values: asc, desc. Default: desc.'
|
||||
required: false
|
||||
example: asc
|
||||
type: string
|
||||
enumValues: []
|
||||
exampleWasSpecified: true
|
||||
nullable: false
|
||||
custom: []
|
||||
cleanQueryParameters:
|
||||
search: Headquarters
|
||||
name: Headquarters
|
||||
address: '123 Main St'
|
||||
address2: 'Suite 100'
|
||||
city: Springfield
|
||||
zip: '12345'
|
||||
country: USA
|
||||
manager_id: 1
|
||||
company_id: 1
|
||||
parent_id: 1
|
||||
status: active
|
||||
sort: name
|
||||
order: asc
|
||||
bodyParameters: []
|
||||
cleanBodyParameters: []
|
||||
fileParameters: []
|
||||
responses:
|
||||
-
|
||||
status: 401
|
||||
content: '{"error":"Unauthorized or unauthenticated."}'
|
||||
headers:
|
||||
cache-control: 'max-age=0, must-revalidate, no-cache, no-store, private'
|
||||
content-type: application/json
|
||||
vary: Origin
|
||||
pragma: no-cache
|
||||
expires: 'Sun, 02 Jan 1990 00:00:00 GMT'
|
||||
x-content-type-options: nosniff
|
||||
feature-policy: "accelerometer 'none';autoplay 'none';camera 'none';display-capture 'none';document-domain 'none';encrypted-media 'none';fullscreen 'none';geolocation 'none';sync-xhr 'none';usb 'none';xr-spatial-tracking 'none'"
|
||||
referrer-policy: same-origin
|
||||
content-security-policy: "default-src 'self';style-src 'self' 'unsafe-inline';script-src 'self' 'unsafe-inline' 'unsafe-eval';connect-src 'self';object-src 'none';font-src 'self' data:;img-src 'self' data: https://snipe-it.test https://avatars.githubusercontent.com/u/ https://www.google.com/images/branding/googlelogo/2x/ https://snipe-flysystem-public-test.s3-us-west-2.amazonaws.com https://secure.gravatar.com http://gravatar.com maps.google.com maps.gstatic.com *.googleapis.com"
|
||||
set-cookie: 'snipe-dev_local=OrGO92pRr2bN1MO0HEk74EaOyIBpyNWW8nBBM9w1; expires=Sat, 18 Oct 2025 20:42:52 GMT; Max-Age=720000; path=/; secure; httponly; samesite=lax'
|
||||
description: null
|
||||
custom: []
|
||||
responseFields: []
|
||||
auth:
|
||||
- headers
|
||||
- Authorization
|
||||
- 'Bearer 6g43cv8PD1aE5beadkZfhV6'
|
||||
controller: null
|
||||
method: null
|
||||
route: null
|
||||
custom: []
|
||||
-
|
||||
httpMethods:
|
||||
- POST
|
||||
uri: api/v1/locations
|
||||
metadata:
|
||||
groupName: Locations
|
||||
groupDescription: ''
|
||||
subgroup: ''
|
||||
subgroupDescription: ''
|
||||
title: 'Create Location'
|
||||
description: ''
|
||||
authenticated: true
|
||||
deprecated: false
|
||||
custom: []
|
||||
headers:
|
||||
Authorization: 'Bearer 6g43cv8PD1aE5beadkZfhV6'
|
||||
Content-Type: application/json
|
||||
Accept: application/json
|
||||
urlParameters: []
|
||||
cleanUrlParameters: []
|
||||
queryParameters: []
|
||||
cleanQueryParameters: []
|
||||
bodyParameters: []
|
||||
cleanBodyParameters: []
|
||||
fileParameters: []
|
||||
responses: []
|
||||
responseFields: []
|
||||
auth:
|
||||
- headers
|
||||
- Authorization
|
||||
- 'Bearer 6g43cv8PD1aE5beadkZfhV6'
|
||||
controller: null
|
||||
method: null
|
||||
route: null
|
||||
custom: []
|
||||
-
|
||||
httpMethods:
|
||||
- GET
|
||||
uri: 'api/v1/locations/{id}'
|
||||
metadata:
|
||||
groupName: Locations
|
||||
groupDescription: ''
|
||||
subgroup: ''
|
||||
subgroupDescription: ''
|
||||
title: 'Show Location'
|
||||
description: ''
|
||||
authenticated: true
|
||||
deprecated: false
|
||||
custom: []
|
||||
headers:
|
||||
Authorization: 'Bearer 6g43cv8PD1aE5beadkZfhV6'
|
||||
Content-Type: application/json
|
||||
Accept: application/json
|
||||
urlParameters:
|
||||
id:
|
||||
name: id
|
||||
description: 'The ID of the location.'
|
||||
required: true
|
||||
example: 1
|
||||
type: integer
|
||||
enumValues: []
|
||||
exampleWasSpecified: false
|
||||
nullable: false
|
||||
custom: []
|
||||
cleanUrlParameters:
|
||||
id: 1
|
||||
queryParameters: []
|
||||
cleanQueryParameters: []
|
||||
bodyParameters: []
|
||||
cleanBodyParameters: []
|
||||
fileParameters: []
|
||||
responses:
|
||||
-
|
||||
status: 401
|
||||
content: '{"error":"Unauthorized or unauthenticated."}'
|
||||
headers:
|
||||
cache-control: 'max-age=0, must-revalidate, no-cache, no-store, private'
|
||||
content-type: application/json
|
||||
vary: Origin
|
||||
pragma: no-cache
|
||||
expires: 'Sun, 02 Jan 1990 00:00:00 GMT'
|
||||
x-content-type-options: nosniff
|
||||
feature-policy: "accelerometer 'none';autoplay 'none';camera 'none';display-capture 'none';document-domain 'none';encrypted-media 'none';fullscreen 'none';geolocation 'none';sync-xhr 'none';usb 'none';xr-spatial-tracking 'none'"
|
||||
referrer-policy: same-origin
|
||||
content-security-policy: "default-src 'self';style-src 'self' 'unsafe-inline';script-src 'self' 'unsafe-inline' 'unsafe-eval';connect-src 'self';object-src 'none';font-src 'self' data:;img-src 'self' data: https://snipe-it.test https://avatars.githubusercontent.com/u/ https://www.google.com/images/branding/googlelogo/2x/ https://snipe-flysystem-public-test.s3-us-west-2.amazonaws.com https://secure.gravatar.com http://gravatar.com maps.google.com maps.gstatic.com *.googleapis.com"
|
||||
set-cookie: 'snipe-dev_local=r40jhYlCjVborgeetW7XFFJzC3FPckbK3wiqaq9b; expires=Sat, 18 Oct 2025 20:42:52 GMT; Max-Age=720000; path=/; secure; httponly; samesite=lax'
|
||||
description: null
|
||||
custom: []
|
||||
responseFields: []
|
||||
auth:
|
||||
- headers
|
||||
- Authorization
|
||||
- 'Bearer 6g43cv8PD1aE5beadkZfhV6'
|
||||
controller: null
|
||||
method: null
|
||||
route: null
|
||||
custom: []
|
||||
-
|
||||
httpMethods:
|
||||
- PUT
|
||||
- PATCH
|
||||
uri: 'api/v1/locations/{id}'
|
||||
metadata:
|
||||
groupName: Locations
|
||||
groupDescription: ''
|
||||
subgroup: ''
|
||||
subgroupDescription: ''
|
||||
title: 'Update Location'
|
||||
description: ''
|
||||
authenticated: true
|
||||
deprecated: false
|
||||
custom: []
|
||||
headers:
|
||||
Authorization: 'Bearer 6g43cv8PD1aE5beadkZfhV6'
|
||||
Content-Type: application/json
|
||||
Accept: application/json
|
||||
urlParameters:
|
||||
id:
|
||||
name: id
|
||||
description: 'The ID of the location.'
|
||||
required: true
|
||||
example: 1
|
||||
type: integer
|
||||
enumValues: []
|
||||
exampleWasSpecified: false
|
||||
nullable: false
|
||||
custom: []
|
||||
cleanUrlParameters:
|
||||
id: 1
|
||||
queryParameters: []
|
||||
cleanQueryParameters: []
|
||||
bodyParameters: []
|
||||
cleanBodyParameters: []
|
||||
fileParameters: []
|
||||
responses: []
|
||||
responseFields: []
|
||||
auth:
|
||||
- headers
|
||||
- Authorization
|
||||
- 'Bearer 6g43cv8PD1aE5beadkZfhV6'
|
||||
controller: null
|
||||
method: null
|
||||
route: null
|
||||
custom: []
|
||||
-
|
||||
httpMethods:
|
||||
- DELETE
|
||||
uri: 'api/v1/locations/{id}'
|
||||
metadata:
|
||||
groupName: Locations
|
||||
groupDescription: ''
|
||||
subgroup: ''
|
||||
subgroupDescription: ''
|
||||
title: 'Delete Location'
|
||||
description: ''
|
||||
authenticated: true
|
||||
deprecated: false
|
||||
custom: []
|
||||
headers:
|
||||
Authorization: 'Bearer 6g43cv8PD1aE5beadkZfhV6'
|
||||
Content-Type: application/json
|
||||
Accept: application/json
|
||||
urlParameters:
|
||||
id:
|
||||
name: id
|
||||
description: 'The ID of the location.'
|
||||
required: true
|
||||
example: 1
|
||||
type: integer
|
||||
enumValues: []
|
||||
exampleWasSpecified: false
|
||||
nullable: false
|
||||
custom: []
|
||||
cleanUrlParameters:
|
||||
id: 1
|
||||
queryParameters: []
|
||||
cleanQueryParameters: []
|
||||
bodyParameters: []
|
||||
cleanBodyParameters: []
|
||||
fileParameters: []
|
||||
responses: []
|
||||
responseFields: []
|
||||
auth:
|
||||
- headers
|
||||
- Authorization
|
||||
- 'Bearer 6g43cv8PD1aE5beadkZfhV6'
|
||||
controller: null
|
||||
method: null
|
||||
route: null
|
||||
custom: []
|
||||
@@ -1,462 +0,0 @@
|
||||
name: Manufacturers
|
||||
description: ''
|
||||
endpoints:
|
||||
-
|
||||
httpMethods:
|
||||
- GET
|
||||
uri: api/v1/manufacturers/selectlist
|
||||
metadata:
|
||||
groupName: Manufacturers
|
||||
groupDescription: ''
|
||||
subgroup: ''
|
||||
subgroupDescription: ''
|
||||
title: Selectlist
|
||||
description: ''
|
||||
authenticated: true
|
||||
deprecated: false
|
||||
custom: []
|
||||
headers:
|
||||
Authorization: 'Bearer 6g43cv8PD1aE5beadkZfhV6'
|
||||
Content-Type: application/json
|
||||
Accept: application/json
|
||||
urlParameters: []
|
||||
cleanUrlParameters: []
|
||||
queryParameters: []
|
||||
cleanQueryParameters: []
|
||||
bodyParameters: []
|
||||
cleanBodyParameters: []
|
||||
fileParameters: []
|
||||
responses:
|
||||
-
|
||||
status: 401
|
||||
content: '{"error":"Unauthorized or unauthenticated."}'
|
||||
headers:
|
||||
cache-control: 'max-age=0, must-revalidate, no-cache, no-store, private'
|
||||
content-type: application/json
|
||||
vary: Origin
|
||||
pragma: no-cache
|
||||
expires: 'Sun, 02 Jan 1990 00:00:00 GMT'
|
||||
x-content-type-options: nosniff
|
||||
feature-policy: "accelerometer 'none';autoplay 'none';camera 'none';display-capture 'none';document-domain 'none';encrypted-media 'none';fullscreen 'none';geolocation 'none';sync-xhr 'none';usb 'none';xr-spatial-tracking 'none'"
|
||||
referrer-policy: same-origin
|
||||
content-security-policy: "default-src 'self';style-src 'self' 'unsafe-inline';script-src 'self' 'unsafe-inline' 'unsafe-eval';connect-src 'self';object-src 'none';font-src 'self' data:;img-src 'self' data: https://snipe-it.test https://avatars.githubusercontent.com/u/ https://www.google.com/images/branding/googlelogo/2x/ https://snipe-flysystem-public-test.s3-us-west-2.amazonaws.com https://secure.gravatar.com http://gravatar.com maps.google.com maps.gstatic.com *.googleapis.com"
|
||||
set-cookie: 'snipe-dev_local=wsdZCoP7veaDGNxSgmEVyiIXMCynDJaplPtmclKS; expires=Sat, 18 Oct 2025 20:42:52 GMT; Max-Age=720000; path=/; secure; httponly; samesite=lax'
|
||||
description: null
|
||||
custom: []
|
||||
responseFields: []
|
||||
auth:
|
||||
- headers
|
||||
- Authorization
|
||||
- 'Bearer 6g43cv8PD1aE5beadkZfhV6'
|
||||
controller: null
|
||||
method: null
|
||||
route: null
|
||||
custom: []
|
||||
-
|
||||
httpMethods:
|
||||
- POST
|
||||
uri: 'api/v1/manufacturers/{id}/restore'
|
||||
metadata:
|
||||
groupName: Manufacturers
|
||||
groupDescription: ''
|
||||
subgroup: ''
|
||||
subgroupDescription: ''
|
||||
title: 'Restore Deleted Manufacturer'
|
||||
description: ''
|
||||
authenticated: true
|
||||
deprecated: false
|
||||
custom: []
|
||||
headers:
|
||||
Authorization: 'Bearer 6g43cv8PD1aE5beadkZfhV6'
|
||||
Content-Type: application/json
|
||||
Accept: application/json
|
||||
urlParameters:
|
||||
id:
|
||||
name: id
|
||||
description: 'The ID of the manufacturer.'
|
||||
required: true
|
||||
example: architecto
|
||||
type: string
|
||||
enumValues: []
|
||||
exampleWasSpecified: false
|
||||
nullable: false
|
||||
custom: []
|
||||
cleanUrlParameters:
|
||||
id: architecto
|
||||
queryParameters: []
|
||||
cleanQueryParameters: []
|
||||
bodyParameters: []
|
||||
cleanBodyParameters: []
|
||||
fileParameters: []
|
||||
responses: []
|
||||
responseFields: []
|
||||
auth:
|
||||
- headers
|
||||
- Authorization
|
||||
- 'Bearer 6g43cv8PD1aE5beadkZfhV6'
|
||||
controller: null
|
||||
method: null
|
||||
route: null
|
||||
custom: []
|
||||
-
|
||||
httpMethods:
|
||||
- GET
|
||||
uri: api/v1/manufacturers
|
||||
metadata:
|
||||
groupName: Manufacturers
|
||||
groupDescription: ''
|
||||
subgroup: ''
|
||||
subgroupDescription: ''
|
||||
title: 'List Manufacturers'
|
||||
description: ''
|
||||
authenticated: true
|
||||
deprecated: false
|
||||
custom: []
|
||||
headers:
|
||||
Authorization: 'Bearer 6g43cv8PD1aE5beadkZfhV6'
|
||||
Content-Type: application/json
|
||||
Accept: application/json
|
||||
urlParameters: []
|
||||
cleanUrlParameters: []
|
||||
queryParameters:
|
||||
search:
|
||||
name: search
|
||||
description: 'Search term to filter results.'
|
||||
required: false
|
||||
example: Dell
|
||||
type: string
|
||||
enumValues: []
|
||||
exampleWasSpecified: true
|
||||
nullable: false
|
||||
custom: []
|
||||
name:
|
||||
name: name
|
||||
description: 'Filter by exact manufacturer name.'
|
||||
required: false
|
||||
example: Dell
|
||||
type: string
|
||||
enumValues: []
|
||||
exampleWasSpecified: true
|
||||
nullable: false
|
||||
custom: []
|
||||
url:
|
||||
name: url
|
||||
description: 'Filter by exact URL.'
|
||||
required: false
|
||||
example: 'http://example.com'
|
||||
type: string
|
||||
enumValues: []
|
||||
exampleWasSpecified: true
|
||||
nullable: false
|
||||
custom: []
|
||||
support_url:
|
||||
name: support_url
|
||||
description: 'Filter by exact support URL.'
|
||||
required: false
|
||||
example: 'http://support.example.com'
|
||||
type: string
|
||||
enumValues: []
|
||||
exampleWasSpecified: true
|
||||
nullable: false
|
||||
custom: []
|
||||
warranty_lookup_url:
|
||||
name: warranty_lookup_url
|
||||
description: 'Filter by exact warranty lookup URL.'
|
||||
required: false
|
||||
example: 'http://warranty.example.com'
|
||||
type: string
|
||||
enumValues: []
|
||||
exampleWasSpecified: true
|
||||
nullable: false
|
||||
custom: []
|
||||
support_phone:
|
||||
name: support_phone
|
||||
description: 'Filter by exact support phone number.'
|
||||
required: false
|
||||
example: 1-800-555-5555
|
||||
type: string
|
||||
enumValues: []
|
||||
exampleWasSpecified: true
|
||||
nullable: false
|
||||
custom: []
|
||||
support_email:
|
||||
name: support_email
|
||||
description: 'Filter by exact support email address.'
|
||||
required: false
|
||||
example: support@example.org
|
||||
type: string
|
||||
enumValues: []
|
||||
exampleWasSpecified: true
|
||||
nullable: false
|
||||
custom: []
|
||||
sort:
|
||||
name: sort
|
||||
description: 'Column to sort results by. Allowed values: id, name, url, support_url, support_email, warranty_lookup_url, support_phone, created_at, updated_at, assets_count, consumables_count, components_count, licenses_count. Default: created_at.'
|
||||
required: false
|
||||
example: name
|
||||
type: string
|
||||
enumValues: []
|
||||
exampleWasSpecified: true
|
||||
nullable: false
|
||||
custom: []
|
||||
order:
|
||||
name: order
|
||||
description: 'Order of sorted results. Allowed values: asc, desc. Default: desc.'
|
||||
required: false
|
||||
example: asc
|
||||
type: string
|
||||
enumValues: []
|
||||
exampleWasSpecified: true
|
||||
nullable: false
|
||||
custom: []
|
||||
offset:
|
||||
name: offset
|
||||
description: 'Offset/starting position of the results. Default: 0.'
|
||||
required: false
|
||||
example: 0
|
||||
type: integer
|
||||
enumValues: []
|
||||
exampleWasSpecified: true
|
||||
nullable: false
|
||||
custom: []
|
||||
limit:
|
||||
name: limit
|
||||
description: 'Limit the number of results returned. Default: 25. Maximum: 100.'
|
||||
required: false
|
||||
example: 50
|
||||
type: integer
|
||||
enumValues: []
|
||||
exampleWasSpecified: true
|
||||
nullable: false
|
||||
custom: []
|
||||
cleanQueryParameters:
|
||||
search: Dell
|
||||
name: Dell
|
||||
url: 'http://example.com'
|
||||
support_url: 'http://support.example.com'
|
||||
warranty_lookup_url: 'http://warranty.example.com'
|
||||
support_phone: 1-800-555-5555
|
||||
support_email: support@example.org
|
||||
sort: name
|
||||
order: asc
|
||||
offset: 0
|
||||
limit: 50
|
||||
bodyParameters: []
|
||||
cleanBodyParameters: []
|
||||
fileParameters: []
|
||||
responses:
|
||||
-
|
||||
status: 401
|
||||
content: '{"error":"Unauthorized or unauthenticated."}'
|
||||
headers:
|
||||
cache-control: 'max-age=0, must-revalidate, no-cache, no-store, private'
|
||||
content-type: application/json
|
||||
vary: Origin
|
||||
pragma: no-cache
|
||||
expires: 'Sun, 02 Jan 1990 00:00:00 GMT'
|
||||
x-content-type-options: nosniff
|
||||
feature-policy: "accelerometer 'none';autoplay 'none';camera 'none';display-capture 'none';document-domain 'none';encrypted-media 'none';fullscreen 'none';geolocation 'none';sync-xhr 'none';usb 'none';xr-spatial-tracking 'none'"
|
||||
referrer-policy: same-origin
|
||||
content-security-policy: "default-src 'self';style-src 'self' 'unsafe-inline';script-src 'self' 'unsafe-inline' 'unsafe-eval';connect-src 'self';object-src 'none';font-src 'self' data:;img-src 'self' data: https://snipe-it.test https://avatars.githubusercontent.com/u/ https://www.google.com/images/branding/googlelogo/2x/ https://snipe-flysystem-public-test.s3-us-west-2.amazonaws.com https://secure.gravatar.com http://gravatar.com maps.google.com maps.gstatic.com *.googleapis.com"
|
||||
set-cookie: 'snipe-dev_local=hLpuGgLKlkZ3lxAdCVVQh6AknrP7V8ucHP12iJyL; expires=Sat, 18 Oct 2025 20:42:52 GMT; Max-Age=720000; path=/; secure; httponly; samesite=lax'
|
||||
description: null
|
||||
custom: []
|
||||
responseFields: []
|
||||
auth:
|
||||
- headers
|
||||
- Authorization
|
||||
- 'Bearer 6g43cv8PD1aE5beadkZfhV6'
|
||||
controller: null
|
||||
method: null
|
||||
route: null
|
||||
custom: []
|
||||
-
|
||||
httpMethods:
|
||||
- POST
|
||||
uri: api/v1/manufacturers
|
||||
metadata:
|
||||
groupName: Manufacturers
|
||||
groupDescription: ''
|
||||
subgroup: ''
|
||||
subgroupDescription: ''
|
||||
title: 'Create Maintenance'
|
||||
description: ''
|
||||
authenticated: true
|
||||
deprecated: false
|
||||
custom: []
|
||||
headers:
|
||||
Authorization: 'Bearer 6g43cv8PD1aE5beadkZfhV6'
|
||||
Content-Type: application/json
|
||||
Accept: application/json
|
||||
urlParameters: []
|
||||
cleanUrlParameters: []
|
||||
queryParameters: []
|
||||
cleanQueryParameters: []
|
||||
bodyParameters: []
|
||||
cleanBodyParameters: []
|
||||
fileParameters: []
|
||||
responses: []
|
||||
responseFields: []
|
||||
auth:
|
||||
- headers
|
||||
- Authorization
|
||||
- 'Bearer 6g43cv8PD1aE5beadkZfhV6'
|
||||
controller: null
|
||||
method: null
|
||||
route: null
|
||||
custom: []
|
||||
-
|
||||
httpMethods:
|
||||
- GET
|
||||
uri: 'api/v1/manufacturers/{id}'
|
||||
metadata:
|
||||
groupName: Manufacturers
|
||||
groupDescription: ''
|
||||
subgroup: ''
|
||||
subgroupDescription: ''
|
||||
title: 'Show Manufacturer'
|
||||
description: ''
|
||||
authenticated: true
|
||||
deprecated: false
|
||||
custom: []
|
||||
headers:
|
||||
Authorization: 'Bearer 6g43cv8PD1aE5beadkZfhV6'
|
||||
Content-Type: application/json
|
||||
Accept: application/json
|
||||
urlParameters:
|
||||
id:
|
||||
name: id
|
||||
description: 'The ID of the manufacturer.'
|
||||
required: true
|
||||
example: architecto
|
||||
type: string
|
||||
enumValues: []
|
||||
exampleWasSpecified: false
|
||||
nullable: false
|
||||
custom: []
|
||||
cleanUrlParameters:
|
||||
id: architecto
|
||||
queryParameters: []
|
||||
cleanQueryParameters: []
|
||||
bodyParameters: []
|
||||
cleanBodyParameters: []
|
||||
fileParameters: []
|
||||
responses:
|
||||
-
|
||||
status: 401
|
||||
content: '{"error":"Unauthorized or unauthenticated."}'
|
||||
headers:
|
||||
cache-control: 'max-age=0, must-revalidate, no-cache, no-store, private'
|
||||
content-type: application/json
|
||||
vary: Origin
|
||||
pragma: no-cache
|
||||
expires: 'Sun, 02 Jan 1990 00:00:00 GMT'
|
||||
x-content-type-options: nosniff
|
||||
feature-policy: "accelerometer 'none';autoplay 'none';camera 'none';display-capture 'none';document-domain 'none';encrypted-media 'none';fullscreen 'none';geolocation 'none';sync-xhr 'none';usb 'none';xr-spatial-tracking 'none'"
|
||||
referrer-policy: same-origin
|
||||
content-security-policy: "default-src 'self';style-src 'self' 'unsafe-inline';script-src 'self' 'unsafe-inline' 'unsafe-eval';connect-src 'self';object-src 'none';font-src 'self' data:;img-src 'self' data: https://snipe-it.test https://avatars.githubusercontent.com/u/ https://www.google.com/images/branding/googlelogo/2x/ https://snipe-flysystem-public-test.s3-us-west-2.amazonaws.com https://secure.gravatar.com http://gravatar.com maps.google.com maps.gstatic.com *.googleapis.com"
|
||||
set-cookie: 'snipe-dev_local=AihyA0pGOpolpeaHgVkhwxZ48ZIGlH5C4cWn2ky1; expires=Sat, 18 Oct 2025 20:42:52 GMT; Max-Age=720000; path=/; secure; httponly; samesite=lax'
|
||||
description: null
|
||||
custom: []
|
||||
responseFields: []
|
||||
auth:
|
||||
- headers
|
||||
- Authorization
|
||||
- 'Bearer 6g43cv8PD1aE5beadkZfhV6'
|
||||
controller: null
|
||||
method: null
|
||||
route: null
|
||||
custom: []
|
||||
-
|
||||
httpMethods:
|
||||
- PUT
|
||||
- PATCH
|
||||
uri: 'api/v1/manufacturers/{id}'
|
||||
metadata:
|
||||
groupName: Manufacturers
|
||||
groupDescription: ''
|
||||
subgroup: ''
|
||||
subgroupDescription: ''
|
||||
title: 'Update Manufacturer'
|
||||
description: ''
|
||||
authenticated: true
|
||||
deprecated: false
|
||||
custom: []
|
||||
headers:
|
||||
Authorization: 'Bearer 6g43cv8PD1aE5beadkZfhV6'
|
||||
Content-Type: application/json
|
||||
Accept: application/json
|
||||
urlParameters:
|
||||
id:
|
||||
name: id
|
||||
description: 'The ID of the manufacturer.'
|
||||
required: true
|
||||
example: architecto
|
||||
type: string
|
||||
enumValues: []
|
||||
exampleWasSpecified: false
|
||||
nullable: false
|
||||
custom: []
|
||||
cleanUrlParameters:
|
||||
id: architecto
|
||||
queryParameters: []
|
||||
cleanQueryParameters: []
|
||||
bodyParameters: []
|
||||
cleanBodyParameters: []
|
||||
fileParameters: []
|
||||
responses: []
|
||||
responseFields: []
|
||||
auth:
|
||||
- headers
|
||||
- Authorization
|
||||
- 'Bearer 6g43cv8PD1aE5beadkZfhV6'
|
||||
controller: null
|
||||
method: null
|
||||
route: null
|
||||
custom: []
|
||||
-
|
||||
httpMethods:
|
||||
- DELETE
|
||||
uri: 'api/v1/manufacturers/{id}'
|
||||
metadata:
|
||||
groupName: Manufacturers
|
||||
groupDescription: ''
|
||||
subgroup: ''
|
||||
subgroupDescription: ''
|
||||
title: 'Delete Manufacturer'
|
||||
description: ''
|
||||
authenticated: true
|
||||
deprecated: false
|
||||
custom: []
|
||||
headers:
|
||||
Authorization: 'Bearer 6g43cv8PD1aE5beadkZfhV6'
|
||||
Content-Type: application/json
|
||||
Accept: application/json
|
||||
urlParameters:
|
||||
id:
|
||||
name: id
|
||||
description: 'The ID of the manufacturer.'
|
||||
required: true
|
||||
example: architecto
|
||||
type: string
|
||||
enumValues: []
|
||||
exampleWasSpecified: false
|
||||
nullable: false
|
||||
custom: []
|
||||
cleanUrlParameters:
|
||||
id: architecto
|
||||
queryParameters: []
|
||||
cleanQueryParameters: []
|
||||
bodyParameters: []
|
||||
cleanBodyParameters: []
|
||||
fileParameters: []
|
||||
responses: []
|
||||
responseFields: []
|
||||
auth:
|
||||
- headers
|
||||
- Authorization
|
||||
- 'Bearer 6g43cv8PD1aE5beadkZfhV6'
|
||||
controller: null
|
||||
method: null
|
||||
route: null
|
||||
custom: []
|
||||
@@ -1,357 +0,0 @@
|
||||
name: Models
|
||||
description: ''
|
||||
endpoints:
|
||||
-
|
||||
httpMethods:
|
||||
- GET
|
||||
uri: api/v1/models/selectlist
|
||||
metadata:
|
||||
groupName: Models
|
||||
groupDescription: ''
|
||||
subgroup: ''
|
||||
subgroupDescription: ''
|
||||
title: 'Selectlist of Models'
|
||||
description: ''
|
||||
authenticated: true
|
||||
deprecated: false
|
||||
custom: []
|
||||
headers:
|
||||
Authorization: 'Bearer 6g43cv8PD1aE5beadkZfhV6'
|
||||
Content-Type: application/json
|
||||
Accept: application/json
|
||||
urlParameters: []
|
||||
cleanUrlParameters: []
|
||||
queryParameters: []
|
||||
cleanQueryParameters: []
|
||||
bodyParameters: []
|
||||
cleanBodyParameters: []
|
||||
fileParameters: []
|
||||
responses:
|
||||
-
|
||||
status: 401
|
||||
content: '{"error":"Unauthorized or unauthenticated."}'
|
||||
headers:
|
||||
cache-control: 'max-age=0, must-revalidate, no-cache, no-store, private'
|
||||
content-type: application/json
|
||||
vary: Origin
|
||||
pragma: no-cache
|
||||
expires: 'Sun, 02 Jan 1990 00:00:00 GMT'
|
||||
x-content-type-options: nosniff
|
||||
feature-policy: "accelerometer 'none';autoplay 'none';camera 'none';display-capture 'none';document-domain 'none';encrypted-media 'none';fullscreen 'none';geolocation 'none';sync-xhr 'none';usb 'none';xr-spatial-tracking 'none'"
|
||||
referrer-policy: same-origin
|
||||
content-security-policy: "default-src 'self';style-src 'self' 'unsafe-inline';script-src 'self' 'unsafe-inline' 'unsafe-eval';connect-src 'self';object-src 'none';font-src 'self' data:;img-src 'self' data: https://snipe-it.test https://avatars.githubusercontent.com/u/ https://www.google.com/images/branding/googlelogo/2x/ https://snipe-flysystem-public-test.s3-us-west-2.amazonaws.com https://secure.gravatar.com http://gravatar.com maps.google.com maps.gstatic.com *.googleapis.com"
|
||||
set-cookie: 'snipe-dev_local=jwtFIyYGPRatDfntlAj40jo0O4Sj0FCnKi976PR2; expires=Sat, 18 Oct 2025 20:42:52 GMT; Max-Age=720000; path=/; secure; httponly; samesite=lax'
|
||||
description: null
|
||||
custom: []
|
||||
responseFields: []
|
||||
auth:
|
||||
- headers
|
||||
- Authorization
|
||||
- 'Bearer 6g43cv8PD1aE5beadkZfhV6'
|
||||
controller: null
|
||||
method: null
|
||||
route: null
|
||||
custom: []
|
||||
-
|
||||
httpMethods:
|
||||
- GET
|
||||
uri: api/v1/models/assets
|
||||
metadata:
|
||||
groupName: Models
|
||||
groupDescription: ''
|
||||
subgroup: ''
|
||||
subgroupDescription: ''
|
||||
title: 'List Assets in Model'
|
||||
description: ''
|
||||
authenticated: true
|
||||
deprecated: false
|
||||
custom: []
|
||||
headers:
|
||||
Authorization: 'Bearer 6g43cv8PD1aE5beadkZfhV6'
|
||||
Content-Type: application/json
|
||||
Accept: application/json
|
||||
urlParameters:
|
||||
id:
|
||||
name: id
|
||||
description: 'The ID of the model.'
|
||||
required: true
|
||||
example: 16
|
||||
type: integer
|
||||
enumValues: []
|
||||
exampleWasSpecified: false
|
||||
nullable: false
|
||||
custom: []
|
||||
cleanUrlParameters:
|
||||
id: 16
|
||||
queryParameters: []
|
||||
cleanQueryParameters: []
|
||||
bodyParameters: []
|
||||
cleanBodyParameters: []
|
||||
fileParameters: []
|
||||
responses:
|
||||
-
|
||||
status: 401
|
||||
content: '{"error":"Unauthorized or unauthenticated."}'
|
||||
headers:
|
||||
cache-control: 'max-age=0, must-revalidate, no-cache, no-store, private'
|
||||
content-type: application/json
|
||||
vary: Origin
|
||||
pragma: no-cache
|
||||
expires: 'Sun, 02 Jan 1990 00:00:00 GMT'
|
||||
x-content-type-options: nosniff
|
||||
feature-policy: "accelerometer 'none';autoplay 'none';camera 'none';display-capture 'none';document-domain 'none';encrypted-media 'none';fullscreen 'none';geolocation 'none';sync-xhr 'none';usb 'none';xr-spatial-tracking 'none'"
|
||||
referrer-policy: same-origin
|
||||
content-security-policy: "default-src 'self';style-src 'self' 'unsafe-inline';script-src 'self' 'unsafe-inline' 'unsafe-eval';connect-src 'self';object-src 'none';font-src 'self' data:;img-src 'self' data: https://snipe-it.test https://avatars.githubusercontent.com/u/ https://www.google.com/images/branding/googlelogo/2x/ https://snipe-flysystem-public-test.s3-us-west-2.amazonaws.com https://secure.gravatar.com http://gravatar.com maps.google.com maps.gstatic.com *.googleapis.com"
|
||||
set-cookie: 'snipe-dev_local=nvMGTR69fETV88dw8dfKSbREZAJ66IYQUUNSpf7Y; expires=Sat, 18 Oct 2025 20:42:52 GMT; Max-Age=720000; path=/; secure; httponly; samesite=lax'
|
||||
description: null
|
||||
custom: []
|
||||
responseFields: []
|
||||
auth:
|
||||
- headers
|
||||
- Authorization
|
||||
- 'Bearer 6g43cv8PD1aE5beadkZfhV6'
|
||||
controller: null
|
||||
method: null
|
||||
route: null
|
||||
custom: []
|
||||
-
|
||||
httpMethods:
|
||||
- GET
|
||||
uri: api/v1/models
|
||||
metadata:
|
||||
groupName: Models
|
||||
groupDescription: ''
|
||||
subgroup: ''
|
||||
subgroupDescription: ''
|
||||
title: 'List Models'
|
||||
description: ''
|
||||
authenticated: true
|
||||
deprecated: false
|
||||
custom: []
|
||||
headers:
|
||||
Authorization: 'Bearer 6g43cv8PD1aE5beadkZfhV6'
|
||||
Content-Type: application/json
|
||||
Accept: application/json
|
||||
urlParameters: []
|
||||
cleanUrlParameters: []
|
||||
queryParameters: []
|
||||
cleanQueryParameters: []
|
||||
bodyParameters: []
|
||||
cleanBodyParameters: []
|
||||
fileParameters: []
|
||||
responses:
|
||||
-
|
||||
status: 401
|
||||
content: '{"error":"Unauthorized or unauthenticated."}'
|
||||
headers:
|
||||
cache-control: 'max-age=0, must-revalidate, no-cache, no-store, private'
|
||||
content-type: application/json
|
||||
vary: Origin
|
||||
pragma: no-cache
|
||||
expires: 'Sun, 02 Jan 1990 00:00:00 GMT'
|
||||
x-content-type-options: nosniff
|
||||
feature-policy: "accelerometer 'none';autoplay 'none';camera 'none';display-capture 'none';document-domain 'none';encrypted-media 'none';fullscreen 'none';geolocation 'none';sync-xhr 'none';usb 'none';xr-spatial-tracking 'none'"
|
||||
referrer-policy: same-origin
|
||||
content-security-policy: "default-src 'self';style-src 'self' 'unsafe-inline';script-src 'self' 'unsafe-inline' 'unsafe-eval';connect-src 'self';object-src 'none';font-src 'self' data:;img-src 'self' data: https://snipe-it.test https://avatars.githubusercontent.com/u/ https://www.google.com/images/branding/googlelogo/2x/ https://snipe-flysystem-public-test.s3-us-west-2.amazonaws.com https://secure.gravatar.com http://gravatar.com maps.google.com maps.gstatic.com *.googleapis.com"
|
||||
set-cookie: 'snipe-dev_local=QArLWCify7SZSmEfdwLa8MuiE73ySbcjczNWAP5t; expires=Sat, 18 Oct 2025 20:42:52 GMT; Max-Age=720000; path=/; secure; httponly; samesite=lax'
|
||||
description: null
|
||||
custom: []
|
||||
responseFields: []
|
||||
auth:
|
||||
- headers
|
||||
- Authorization
|
||||
- 'Bearer 6g43cv8PD1aE5beadkZfhV6'
|
||||
controller: null
|
||||
method: null
|
||||
route: null
|
||||
custom: []
|
||||
-
|
||||
httpMethods:
|
||||
- POST
|
||||
uri: api/v1/models
|
||||
metadata:
|
||||
groupName: Models
|
||||
groupDescription: ''
|
||||
subgroup: ''
|
||||
subgroupDescription: ''
|
||||
title: 'Create Model'
|
||||
description: ''
|
||||
authenticated: true
|
||||
deprecated: false
|
||||
custom: []
|
||||
headers:
|
||||
Authorization: 'Bearer 6g43cv8PD1aE5beadkZfhV6'
|
||||
Content-Type: application/json
|
||||
Accept: application/json
|
||||
urlParameters: []
|
||||
cleanUrlParameters: []
|
||||
queryParameters: []
|
||||
cleanQueryParameters: []
|
||||
bodyParameters: []
|
||||
cleanBodyParameters: []
|
||||
fileParameters: []
|
||||
responses: []
|
||||
responseFields: []
|
||||
auth:
|
||||
- headers
|
||||
- Authorization
|
||||
- 'Bearer 6g43cv8PD1aE5beadkZfhV6'
|
||||
controller: null
|
||||
method: null
|
||||
route: null
|
||||
custom: []
|
||||
-
|
||||
httpMethods:
|
||||
- GET
|
||||
uri: 'api/v1/models/{id}'
|
||||
metadata:
|
||||
groupName: Models
|
||||
groupDescription: ''
|
||||
subgroup: ''
|
||||
subgroupDescription: ''
|
||||
title: 'Show Model'
|
||||
description: ''
|
||||
authenticated: true
|
||||
deprecated: false
|
||||
custom: []
|
||||
headers:
|
||||
Authorization: 'Bearer 6g43cv8PD1aE5beadkZfhV6'
|
||||
Content-Type: application/json
|
||||
Accept: application/json
|
||||
urlParameters:
|
||||
id:
|
||||
name: id
|
||||
description: 'The ID of the model.'
|
||||
required: true
|
||||
example: 16
|
||||
type: integer
|
||||
enumValues: []
|
||||
exampleWasSpecified: false
|
||||
nullable: false
|
||||
custom: []
|
||||
cleanUrlParameters:
|
||||
id: 16
|
||||
queryParameters: []
|
||||
cleanQueryParameters: []
|
||||
bodyParameters: []
|
||||
cleanBodyParameters: []
|
||||
fileParameters: []
|
||||
responses:
|
||||
-
|
||||
status: 401
|
||||
content: '{"error":"Unauthorized or unauthenticated."}'
|
||||
headers:
|
||||
cache-control: 'max-age=0, must-revalidate, no-cache, no-store, private'
|
||||
content-type: application/json
|
||||
vary: Origin
|
||||
pragma: no-cache
|
||||
expires: 'Sun, 02 Jan 1990 00:00:00 GMT'
|
||||
x-content-type-options: nosniff
|
||||
feature-policy: "accelerometer 'none';autoplay 'none';camera 'none';display-capture 'none';document-domain 'none';encrypted-media 'none';fullscreen 'none';geolocation 'none';sync-xhr 'none';usb 'none';xr-spatial-tracking 'none'"
|
||||
referrer-policy: same-origin
|
||||
content-security-policy: "default-src 'self';style-src 'self' 'unsafe-inline';script-src 'self' 'unsafe-inline' 'unsafe-eval';connect-src 'self';object-src 'none';font-src 'self' data:;img-src 'self' data: https://snipe-it.test https://avatars.githubusercontent.com/u/ https://www.google.com/images/branding/googlelogo/2x/ https://snipe-flysystem-public-test.s3-us-west-2.amazonaws.com https://secure.gravatar.com http://gravatar.com maps.google.com maps.gstatic.com *.googleapis.com"
|
||||
set-cookie: 'snipe-dev_local=Fi7bcrWvfZzmZFbGKAT0DPwaht8G2vkcbjoJPdZ1; expires=Sat, 18 Oct 2025 20:42:52 GMT; Max-Age=720000; path=/; secure; httponly; samesite=lax'
|
||||
description: null
|
||||
custom: []
|
||||
responseFields: []
|
||||
auth:
|
||||
- headers
|
||||
- Authorization
|
||||
- 'Bearer 6g43cv8PD1aE5beadkZfhV6'
|
||||
controller: null
|
||||
method: null
|
||||
route: null
|
||||
custom: []
|
||||
-
|
||||
httpMethods:
|
||||
- PUT
|
||||
- PATCH
|
||||
uri: 'api/v1/models/{id}'
|
||||
metadata:
|
||||
groupName: Models
|
||||
groupDescription: ''
|
||||
subgroup: ''
|
||||
subgroupDescription: ''
|
||||
title: 'Update Model'
|
||||
description: ''
|
||||
authenticated: true
|
||||
deprecated: false
|
||||
custom: []
|
||||
headers:
|
||||
Authorization: 'Bearer 6g43cv8PD1aE5beadkZfhV6'
|
||||
Content-Type: application/json
|
||||
Accept: application/json
|
||||
urlParameters:
|
||||
id:
|
||||
name: id
|
||||
description: 'The ID of the model.'
|
||||
required: true
|
||||
example: 16
|
||||
type: integer
|
||||
enumValues: []
|
||||
exampleWasSpecified: false
|
||||
nullable: false
|
||||
custom: []
|
||||
cleanUrlParameters:
|
||||
id: 16
|
||||
queryParameters: []
|
||||
cleanQueryParameters: []
|
||||
bodyParameters: []
|
||||
cleanBodyParameters: []
|
||||
fileParameters: []
|
||||
responses: []
|
||||
responseFields: []
|
||||
auth:
|
||||
- headers
|
||||
- Authorization
|
||||
- 'Bearer 6g43cv8PD1aE5beadkZfhV6'
|
||||
controller: null
|
||||
method: null
|
||||
route: null
|
||||
custom: []
|
||||
-
|
||||
httpMethods:
|
||||
- DELETE
|
||||
uri: 'api/v1/models/{id}'
|
||||
metadata:
|
||||
groupName: Models
|
||||
groupDescription: ''
|
||||
subgroup: ''
|
||||
subgroupDescription: ''
|
||||
title: 'Delete Model'
|
||||
description: ''
|
||||
authenticated: true
|
||||
deprecated: false
|
||||
custom: []
|
||||
headers:
|
||||
Authorization: 'Bearer 6g43cv8PD1aE5beadkZfhV6'
|
||||
Content-Type: application/json
|
||||
Accept: application/json
|
||||
urlParameters:
|
||||
id:
|
||||
name: id
|
||||
description: 'The ID of the model.'
|
||||
required: true
|
||||
example: 16
|
||||
type: integer
|
||||
enumValues: []
|
||||
exampleWasSpecified: false
|
||||
nullable: false
|
||||
custom: []
|
||||
cleanUrlParameters:
|
||||
id: 16
|
||||
queryParameters: []
|
||||
cleanQueryParameters: []
|
||||
bodyParameters: []
|
||||
cleanBodyParameters: []
|
||||
fileParameters: []
|
||||
responses: []
|
||||
responseFields: []
|
||||
auth:
|
||||
- headers
|
||||
- Authorization
|
||||
- 'Bearer 6g43cv8PD1aE5beadkZfhV6'
|
||||
controller: null
|
||||
method: null
|
||||
route: null
|
||||
custom: []
|
||||
@@ -1,117 +0,0 @@
|
||||
name: Notes
|
||||
description: ''
|
||||
endpoints:
|
||||
-
|
||||
httpMethods:
|
||||
- POST
|
||||
uri: 'api/v1/notes/{asset_id}/store'
|
||||
metadata:
|
||||
groupName: Notes
|
||||
groupDescription: ''
|
||||
subgroup: Assets
|
||||
subgroupDescription: ''
|
||||
title: 'Store Note'
|
||||
description: |-
|
||||
Checks authorization for updating assets, validates the presence of the 'note',
|
||||
attempts to find the asset by ID, and creates a new ActionLog entry if successful.
|
||||
Returns JSON responses indicating success or failure with appropriate HTTP status codes.
|
||||
authenticated: true
|
||||
deprecated: false
|
||||
custom: []
|
||||
headers:
|
||||
Authorization: 'Bearer 6g43cv8PD1aE5beadkZfhV6'
|
||||
Content-Type: application/json
|
||||
Accept: application/json
|
||||
urlParameters:
|
||||
asset_id:
|
||||
name: asset_id
|
||||
description: 'The ID of the asset.'
|
||||
required: true
|
||||
example: 1
|
||||
type: integer
|
||||
enumValues: []
|
||||
exampleWasSpecified: false
|
||||
nullable: false
|
||||
custom: []
|
||||
cleanUrlParameters:
|
||||
asset_id: 1
|
||||
queryParameters: []
|
||||
cleanQueryParameters: []
|
||||
bodyParameters: []
|
||||
cleanBodyParameters: []
|
||||
fileParameters: []
|
||||
responses: []
|
||||
responseFields: []
|
||||
auth:
|
||||
- headers
|
||||
- Authorization
|
||||
- 'Bearer 6g43cv8PD1aE5beadkZfhV6'
|
||||
controller: null
|
||||
method: null
|
||||
route: null
|
||||
custom: []
|
||||
-
|
||||
httpMethods:
|
||||
- GET
|
||||
uri: 'api/v1/notes/{asset_id}/index'
|
||||
metadata:
|
||||
groupName: Notes
|
||||
groupDescription: ''
|
||||
subgroup: Assets
|
||||
subgroupDescription: ''
|
||||
title: 'List Notes'
|
||||
description: |-
|
||||
Checks authorization to view assets, attempts to find the asset by ID,
|
||||
and fetches related action log entries of type 'note added', including
|
||||
user information for each note. Returns a JSON response with the notes or errors.
|
||||
authenticated: true
|
||||
deprecated: false
|
||||
custom: []
|
||||
headers:
|
||||
Authorization: 'Bearer 6g43cv8PD1aE5beadkZfhV6'
|
||||
Content-Type: application/json
|
||||
Accept: application/json
|
||||
urlParameters:
|
||||
asset_id:
|
||||
name: asset_id
|
||||
description: 'The ID of the asset.'
|
||||
required: true
|
||||
example: 1
|
||||
type: integer
|
||||
enumValues: []
|
||||
exampleWasSpecified: false
|
||||
nullable: false
|
||||
custom: []
|
||||
cleanUrlParameters:
|
||||
asset_id: 1
|
||||
queryParameters: []
|
||||
cleanQueryParameters: []
|
||||
bodyParameters: []
|
||||
cleanBodyParameters: []
|
||||
fileParameters: []
|
||||
responses:
|
||||
-
|
||||
status: 401
|
||||
content: '{"error":"Unauthorized or unauthenticated."}'
|
||||
headers:
|
||||
cache-control: 'max-age=0, must-revalidate, no-cache, no-store, private'
|
||||
content-type: application/json
|
||||
vary: Origin
|
||||
pragma: no-cache
|
||||
expires: 'Sun, 02 Jan 1990 00:00:00 GMT'
|
||||
x-content-type-options: nosniff
|
||||
feature-policy: "accelerometer 'none';autoplay 'none';camera 'none';display-capture 'none';document-domain 'none';encrypted-media 'none';fullscreen 'none';geolocation 'none';sync-xhr 'none';usb 'none';xr-spatial-tracking 'none'"
|
||||
referrer-policy: same-origin
|
||||
content-security-policy: "default-src 'self';style-src 'self' 'unsafe-inline';script-src 'self' 'unsafe-inline' 'unsafe-eval';connect-src 'self';object-src 'none';font-src 'self' data:;img-src 'self' data: https://snipe-it.test https://avatars.githubusercontent.com/u/ https://www.google.com/images/branding/googlelogo/2x/ https://snipe-flysystem-public-test.s3-us-west-2.amazonaws.com https://secure.gravatar.com http://gravatar.com maps.google.com maps.gstatic.com *.googleapis.com"
|
||||
set-cookie: 'snipe-dev_local=0996I9pgG6hTiplyAUfm6hARQqlLp2KcZRKbrsM4; expires=Sat, 18 Oct 2025 20:42:52 GMT; Max-Age=720000; path=/; secure; httponly; samesite=lax'
|
||||
description: null
|
||||
custom: []
|
||||
responseFields: []
|
||||
auth:
|
||||
- headers
|
||||
- Authorization
|
||||
- 'Bearer 6g43cv8PD1aE5beadkZfhV6'
|
||||
controller: null
|
||||
method: null
|
||||
route: null
|
||||
custom: []
|
||||
@@ -1,398 +0,0 @@
|
||||
name: Settings
|
||||
description: ''
|
||||
endpoints:
|
||||
-
|
||||
httpMethods:
|
||||
- GET
|
||||
uri: api/v1/settings/ldaptest
|
||||
metadata:
|
||||
groupName: Settings
|
||||
groupDescription: ''
|
||||
subgroup: ''
|
||||
subgroupDescription: ''
|
||||
title: 'Test LDAP Connection'
|
||||
description: ''
|
||||
authenticated: true
|
||||
deprecated: false
|
||||
custom: []
|
||||
headers:
|
||||
Authorization: 'Bearer 6g43cv8PD1aE5beadkZfhV6'
|
||||
Content-Type: application/json
|
||||
Accept: application/json
|
||||
urlParameters: []
|
||||
cleanUrlParameters: []
|
||||
queryParameters: []
|
||||
cleanQueryParameters: []
|
||||
bodyParameters: []
|
||||
cleanBodyParameters: []
|
||||
fileParameters: []
|
||||
responses:
|
||||
-
|
||||
status: 401
|
||||
content: '{"error":"Unauthorized or unauthenticated."}'
|
||||
headers:
|
||||
cache-control: 'max-age=0, must-revalidate, no-cache, no-store, private'
|
||||
content-type: application/json
|
||||
vary: Origin
|
||||
pragma: no-cache
|
||||
expires: 'Sun, 02 Jan 1990 00:00:00 GMT'
|
||||
x-content-type-options: nosniff
|
||||
feature-policy: "accelerometer 'none';autoplay 'none';camera 'none';display-capture 'none';document-domain 'none';encrypted-media 'none';fullscreen 'none';geolocation 'none';sync-xhr 'none';usb 'none';xr-spatial-tracking 'none'"
|
||||
referrer-policy: same-origin
|
||||
content-security-policy: "default-src 'self';style-src 'self' 'unsafe-inline';script-src 'self' 'unsafe-inline' 'unsafe-eval';connect-src 'self';object-src 'none';font-src 'self' data:;img-src 'self' data: https://snipe-it.test https://avatars.githubusercontent.com/u/ https://www.google.com/images/branding/googlelogo/2x/ https://snipe-flysystem-public-test.s3-us-west-2.amazonaws.com https://secure.gravatar.com http://gravatar.com maps.google.com maps.gstatic.com *.googleapis.com"
|
||||
set-cookie: 'snipe-dev_local=sXQmK1seBet712r1kd4fxKvJ8eS1G5JIQGi7Jk76; expires=Sat, 18 Oct 2025 20:42:52 GMT; Max-Age=720000; path=/; secure; httponly; samesite=lax'
|
||||
description: null
|
||||
custom: []
|
||||
responseFields: []
|
||||
auth:
|
||||
- headers
|
||||
- Authorization
|
||||
- 'Bearer 6g43cv8PD1aE5beadkZfhV6'
|
||||
controller: null
|
||||
method: null
|
||||
route: null
|
||||
custom: []
|
||||
-
|
||||
httpMethods:
|
||||
- POST
|
||||
uri: api/v1/settings/purge_barcodes
|
||||
metadata:
|
||||
groupName: Settings
|
||||
groupDescription: ''
|
||||
subgroup: ''
|
||||
subgroupDescription: ''
|
||||
title: 'Delete Barcode Cache'
|
||||
description: ''
|
||||
authenticated: true
|
||||
deprecated: false
|
||||
custom: []
|
||||
headers:
|
||||
Authorization: 'Bearer 6g43cv8PD1aE5beadkZfhV6'
|
||||
Content-Type: application/json
|
||||
Accept: application/json
|
||||
urlParameters: []
|
||||
cleanUrlParameters: []
|
||||
queryParameters: []
|
||||
cleanQueryParameters: []
|
||||
bodyParameters: []
|
||||
cleanBodyParameters: []
|
||||
fileParameters: []
|
||||
responses: []
|
||||
responseFields: []
|
||||
auth:
|
||||
- headers
|
||||
- Authorization
|
||||
- 'Bearer 6g43cv8PD1aE5beadkZfhV6'
|
||||
controller: null
|
||||
method: null
|
||||
route: null
|
||||
custom: []
|
||||
-
|
||||
httpMethods:
|
||||
- GET
|
||||
uri: api/v1/settings/login-attempts
|
||||
metadata:
|
||||
groupName: Settings
|
||||
groupDescription: ''
|
||||
subgroup: ''
|
||||
subgroupDescription: ''
|
||||
title: 'Get a list of login attempts'
|
||||
description: ''
|
||||
authenticated: true
|
||||
deprecated: false
|
||||
custom: []
|
||||
headers:
|
||||
Authorization: 'Bearer 6g43cv8PD1aE5beadkZfhV6'
|
||||
Content-Type: application/json
|
||||
Accept: application/json
|
||||
urlParameters: []
|
||||
cleanUrlParameters: []
|
||||
queryParameters: []
|
||||
cleanQueryParameters: []
|
||||
bodyParameters: []
|
||||
cleanBodyParameters: []
|
||||
fileParameters: []
|
||||
responses:
|
||||
-
|
||||
status: 401
|
||||
content: '{"error":"Unauthorized or unauthenticated."}'
|
||||
headers:
|
||||
cache-control: 'max-age=0, must-revalidate, no-cache, no-store, private'
|
||||
content-type: application/json
|
||||
vary: Origin
|
||||
pragma: no-cache
|
||||
expires: 'Sun, 02 Jan 1990 00:00:00 GMT'
|
||||
x-content-type-options: nosniff
|
||||
feature-policy: "accelerometer 'none';autoplay 'none';camera 'none';display-capture 'none';document-domain 'none';encrypted-media 'none';fullscreen 'none';geolocation 'none';sync-xhr 'none';usb 'none';xr-spatial-tracking 'none'"
|
||||
referrer-policy: same-origin
|
||||
content-security-policy: "default-src 'self';style-src 'self' 'unsafe-inline';script-src 'self' 'unsafe-inline' 'unsafe-eval';connect-src 'self';object-src 'none';font-src 'self' data:;img-src 'self' data: https://snipe-it.test https://avatars.githubusercontent.com/u/ https://www.google.com/images/branding/googlelogo/2x/ https://snipe-flysystem-public-test.s3-us-west-2.amazonaws.com https://secure.gravatar.com http://gravatar.com maps.google.com maps.gstatic.com *.googleapis.com"
|
||||
set-cookie: 'snipe-dev_local=3WvRIFmkRUjvmDyyocP7gGkeVA8nsKCstMlpD2ll; expires=Sat, 18 Oct 2025 20:42:52 GMT; Max-Age=720000; path=/; secure; httponly; samesite=lax'
|
||||
description: null
|
||||
custom: []
|
||||
responseFields: []
|
||||
auth:
|
||||
- headers
|
||||
- Authorization
|
||||
- 'Bearer 6g43cv8PD1aE5beadkZfhV6'
|
||||
controller: null
|
||||
method: null
|
||||
route: null
|
||||
custom: []
|
||||
-
|
||||
httpMethods:
|
||||
- POST
|
||||
uri: api/v1/settings/ldaptestlogin
|
||||
metadata:
|
||||
groupName: Settings
|
||||
groupDescription: ''
|
||||
subgroup: ''
|
||||
subgroupDescription: ''
|
||||
title: 'Test LDAP Login'
|
||||
description: ''
|
||||
authenticated: true
|
||||
deprecated: false
|
||||
custom: []
|
||||
headers:
|
||||
Authorization: 'Bearer 6g43cv8PD1aE5beadkZfhV6'
|
||||
Content-Type: application/json
|
||||
Accept: application/json
|
||||
urlParameters: []
|
||||
cleanUrlParameters: []
|
||||
queryParameters: []
|
||||
cleanQueryParameters: []
|
||||
bodyParameters:
|
||||
ldaptest_user:
|
||||
name: ldaptest_user
|
||||
description: ''
|
||||
required: true
|
||||
example: architecto
|
||||
type: string
|
||||
enumValues: []
|
||||
exampleWasSpecified: false
|
||||
nullable: false
|
||||
custom: []
|
||||
ldaptest_password:
|
||||
name: ldaptest_password
|
||||
description: ''
|
||||
required: true
|
||||
example: architecto
|
||||
type: string
|
||||
enumValues: []
|
||||
exampleWasSpecified: false
|
||||
nullable: false
|
||||
custom: []
|
||||
cleanBodyParameters:
|
||||
ldaptest_user: architecto
|
||||
ldaptest_password: architecto
|
||||
fileParameters: []
|
||||
responses: []
|
||||
responseFields: []
|
||||
auth:
|
||||
- headers
|
||||
- Authorization
|
||||
- 'Bearer 6g43cv8PD1aE5beadkZfhV6'
|
||||
controller: null
|
||||
method: null
|
||||
route: null
|
||||
custom: []
|
||||
-
|
||||
httpMethods:
|
||||
- POST
|
||||
uri: api/v1/settings/mailtest
|
||||
metadata:
|
||||
groupName: Settings
|
||||
groupDescription: ''
|
||||
subgroup: ''
|
||||
subgroupDescription: ''
|
||||
title: 'Test Email Configuration'
|
||||
description: ''
|
||||
authenticated: true
|
||||
deprecated: false
|
||||
custom: []
|
||||
headers:
|
||||
Authorization: 'Bearer 6g43cv8PD1aE5beadkZfhV6'
|
||||
Content-Type: application/json
|
||||
Accept: application/json
|
||||
urlParameters: []
|
||||
cleanUrlParameters: []
|
||||
queryParameters: []
|
||||
cleanQueryParameters: []
|
||||
bodyParameters: []
|
||||
cleanBodyParameters: []
|
||||
fileParameters: []
|
||||
responses: []
|
||||
responseFields: []
|
||||
auth:
|
||||
- headers
|
||||
- Authorization
|
||||
- 'Bearer 6g43cv8PD1aE5beadkZfhV6'
|
||||
controller: null
|
||||
method: null
|
||||
route: null
|
||||
custom: []
|
||||
-
|
||||
httpMethods:
|
||||
- GET
|
||||
uri: api/v1/settings/backups
|
||||
metadata:
|
||||
groupName: Settings
|
||||
groupDescription: ''
|
||||
subgroup: ''
|
||||
subgroupDescription: ''
|
||||
title: 'Lists backup files'
|
||||
description: ''
|
||||
authenticated: true
|
||||
deprecated: false
|
||||
custom: []
|
||||
headers:
|
||||
Authorization: 'Bearer 6g43cv8PD1aE5beadkZfhV6'
|
||||
Content-Type: application/json
|
||||
Accept: application/json
|
||||
urlParameters: []
|
||||
cleanUrlParameters: []
|
||||
queryParameters: []
|
||||
cleanQueryParameters: []
|
||||
bodyParameters: []
|
||||
cleanBodyParameters: []
|
||||
fileParameters: []
|
||||
responses:
|
||||
-
|
||||
status: 401
|
||||
content: '{"error":"Unauthorized or unauthenticated."}'
|
||||
headers:
|
||||
cache-control: 'max-age=0, must-revalidate, no-cache, no-store, private'
|
||||
content-type: application/json
|
||||
vary: Origin
|
||||
pragma: no-cache
|
||||
expires: 'Sun, 02 Jan 1990 00:00:00 GMT'
|
||||
x-content-type-options: nosniff
|
||||
feature-policy: "accelerometer 'none';autoplay 'none';camera 'none';display-capture 'none';document-domain 'none';encrypted-media 'none';fullscreen 'none';geolocation 'none';sync-xhr 'none';usb 'none';xr-spatial-tracking 'none'"
|
||||
referrer-policy: same-origin
|
||||
content-security-policy: "default-src 'self';style-src 'self' 'unsafe-inline';script-src 'self' 'unsafe-inline' 'unsafe-eval';connect-src 'self';object-src 'none';font-src 'self' data:;img-src 'self' data: https://snipe-it.test https://avatars.githubusercontent.com/u/ https://www.google.com/images/branding/googlelogo/2x/ https://snipe-flysystem-public-test.s3-us-west-2.amazonaws.com https://secure.gravatar.com http://gravatar.com maps.google.com maps.gstatic.com *.googleapis.com"
|
||||
set-cookie: 'snipe-dev_local=c1LnO2y90g9cXIQdH1B3ALRTwBznlJR0MPn7UYwI; expires=Sat, 18 Oct 2025 20:42:52 GMT; Max-Age=720000; path=/; secure; httponly; samesite=lax'
|
||||
description: null
|
||||
custom: []
|
||||
responseFields: []
|
||||
auth:
|
||||
- headers
|
||||
- Authorization
|
||||
- 'Bearer 6g43cv8PD1aE5beadkZfhV6'
|
||||
controller: null
|
||||
method: null
|
||||
route: null
|
||||
custom: []
|
||||
-
|
||||
httpMethods:
|
||||
- GET
|
||||
uri: api/v1/settings/backups/download/latest
|
||||
metadata:
|
||||
groupName: Settings
|
||||
groupDescription: ''
|
||||
subgroup: ''
|
||||
subgroupDescription: ''
|
||||
title: 'Determines and downloads the latest backup'
|
||||
description: ''
|
||||
authenticated: true
|
||||
deprecated: false
|
||||
custom: []
|
||||
headers:
|
||||
Authorization: 'Bearer 6g43cv8PD1aE5beadkZfhV6'
|
||||
Content-Type: application/json
|
||||
Accept: application/json
|
||||
urlParameters: []
|
||||
cleanUrlParameters: []
|
||||
queryParameters: []
|
||||
cleanQueryParameters: []
|
||||
bodyParameters: []
|
||||
cleanBodyParameters: []
|
||||
fileParameters: []
|
||||
responses:
|
||||
-
|
||||
status: 401
|
||||
content: '{"error":"Unauthorized or unauthenticated."}'
|
||||
headers:
|
||||
cache-control: 'max-age=0, must-revalidate, no-cache, no-store, private'
|
||||
content-type: application/json
|
||||
vary: Origin
|
||||
pragma: no-cache
|
||||
expires: 'Sun, 02 Jan 1990 00:00:00 GMT'
|
||||
x-content-type-options: nosniff
|
||||
feature-policy: "accelerometer 'none';autoplay 'none';camera 'none';display-capture 'none';document-domain 'none';encrypted-media 'none';fullscreen 'none';geolocation 'none';sync-xhr 'none';usb 'none';xr-spatial-tracking 'none'"
|
||||
referrer-policy: same-origin
|
||||
content-security-policy: "default-src 'self';style-src 'self' 'unsafe-inline';script-src 'self' 'unsafe-inline' 'unsafe-eval';connect-src 'self';object-src 'none';font-src 'self' data:;img-src 'self' data: https://snipe-it.test https://avatars.githubusercontent.com/u/ https://www.google.com/images/branding/googlelogo/2x/ https://snipe-flysystem-public-test.s3-us-west-2.amazonaws.com https://secure.gravatar.com http://gravatar.com maps.google.com maps.gstatic.com *.googleapis.com"
|
||||
set-cookie: 'snipe-dev_local=h8vmsBd9n2ThBnox919dPAo17WMNdGSmFDgmUWbJ; expires=Sat, 18 Oct 2025 20:42:52 GMT; Max-Age=720000; path=/; secure; httponly; samesite=lax'
|
||||
description: null
|
||||
custom: []
|
||||
responseFields: []
|
||||
auth:
|
||||
- headers
|
||||
- Authorization
|
||||
- 'Bearer 6g43cv8PD1aE5beadkZfhV6'
|
||||
controller: null
|
||||
method: null
|
||||
route: null
|
||||
custom: []
|
||||
-
|
||||
httpMethods:
|
||||
- GET
|
||||
uri: 'api/v1/settings/backups/download/{file}'
|
||||
metadata:
|
||||
groupName: Settings
|
||||
groupDescription: ''
|
||||
subgroup: ''
|
||||
subgroupDescription: ''
|
||||
title: 'Downloads a backup file.'
|
||||
description: |-
|
||||
We use response()->download() here instead of Storage::download() because Storage::download()
|
||||
exhausts memory on larger files.
|
||||
authenticated: true
|
||||
deprecated: false
|
||||
custom: []
|
||||
headers:
|
||||
Authorization: 'Bearer 6g43cv8PD1aE5beadkZfhV6'
|
||||
Content-Type: application/json
|
||||
Accept: application/json
|
||||
urlParameters:
|
||||
file:
|
||||
name: file
|
||||
description: ''
|
||||
required: true
|
||||
example: architecto
|
||||
type: string
|
||||
enumValues: []
|
||||
exampleWasSpecified: false
|
||||
nullable: false
|
||||
custom: []
|
||||
cleanUrlParameters:
|
||||
file: architecto
|
||||
queryParameters: []
|
||||
cleanQueryParameters: []
|
||||
bodyParameters: []
|
||||
cleanBodyParameters: []
|
||||
fileParameters: []
|
||||
responses:
|
||||
-
|
||||
status: 401
|
||||
content: '{"error":"Unauthorized or unauthenticated."}'
|
||||
headers:
|
||||
cache-control: 'max-age=0, must-revalidate, no-cache, no-store, private'
|
||||
content-type: application/json
|
||||
vary: Origin
|
||||
pragma: no-cache
|
||||
expires: 'Sun, 02 Jan 1990 00:00:00 GMT'
|
||||
x-content-type-options: nosniff
|
||||
feature-policy: "accelerometer 'none';autoplay 'none';camera 'none';display-capture 'none';document-domain 'none';encrypted-media 'none';fullscreen 'none';geolocation 'none';sync-xhr 'none';usb 'none';xr-spatial-tracking 'none'"
|
||||
referrer-policy: same-origin
|
||||
content-security-policy: "default-src 'self';style-src 'self' 'unsafe-inline';script-src 'self' 'unsafe-inline' 'unsafe-eval';connect-src 'self';object-src 'none';font-src 'self' data:;img-src 'self' data: https://snipe-it.test https://avatars.githubusercontent.com/u/ https://www.google.com/images/branding/googlelogo/2x/ https://snipe-flysystem-public-test.s3-us-west-2.amazonaws.com https://secure.gravatar.com http://gravatar.com maps.google.com maps.gstatic.com *.googleapis.com"
|
||||
set-cookie: 'snipe-dev_local=dEPJObU3yZeyRQ0ZNZQmLDg70DDH6mt8OLUoXk7b; expires=Sat, 18 Oct 2025 20:42:52 GMT; Max-Age=720000; path=/; secure; httponly; samesite=lax'
|
||||
description: null
|
||||
custom: []
|
||||
responseFields: []
|
||||
auth:
|
||||
- headers
|
||||
- Authorization
|
||||
- 'Bearer 6g43cv8PD1aE5beadkZfhV6'
|
||||
controller: null
|
||||
method: null
|
||||
route: null
|
||||
custom: []
|
||||
@@ -1,539 +0,0 @@
|
||||
name: 'Status Labels'
|
||||
description: ''
|
||||
endpoints:
|
||||
-
|
||||
httpMethods:
|
||||
- GET
|
||||
uri: api/v1/statuslabels/selectlist
|
||||
metadata:
|
||||
groupName: 'Status Labels'
|
||||
groupDescription: ''
|
||||
subgroup: Assets
|
||||
subgroupDescription: ''
|
||||
title: Selectlist
|
||||
description: ''
|
||||
authenticated: true
|
||||
deprecated: false
|
||||
custom: []
|
||||
headers:
|
||||
Authorization: 'Bearer 6g43cv8PD1aE5beadkZfhV6'
|
||||
Content-Type: application/json
|
||||
Accept: application/json
|
||||
urlParameters: []
|
||||
cleanUrlParameters: []
|
||||
queryParameters: []
|
||||
cleanQueryParameters: []
|
||||
bodyParameters: []
|
||||
cleanBodyParameters: []
|
||||
fileParameters: []
|
||||
responses:
|
||||
-
|
||||
status: 401
|
||||
content: '{"error":"Unauthorized or unauthenticated."}'
|
||||
headers:
|
||||
cache-control: 'max-age=0, must-revalidate, no-cache, no-store, private'
|
||||
content-type: application/json
|
||||
vary: Origin
|
||||
pragma: no-cache
|
||||
expires: 'Sun, 02 Jan 1990 00:00:00 GMT'
|
||||
x-content-type-options: nosniff
|
||||
feature-policy: "accelerometer 'none';autoplay 'none';camera 'none';display-capture 'none';document-domain 'none';encrypted-media 'none';fullscreen 'none';geolocation 'none';sync-xhr 'none';usb 'none';xr-spatial-tracking 'none'"
|
||||
referrer-policy: same-origin
|
||||
content-security-policy: "default-src 'self';style-src 'self' 'unsafe-inline';script-src 'self' 'unsafe-inline' 'unsafe-eval';connect-src 'self';object-src 'none';font-src 'self' data:;img-src 'self' data: https://snipe-it.test https://avatars.githubusercontent.com/u/ https://www.google.com/images/branding/googlelogo/2x/ https://snipe-flysystem-public-test.s3-us-west-2.amazonaws.com https://secure.gravatar.com http://gravatar.com maps.google.com maps.gstatic.com *.googleapis.com"
|
||||
set-cookie: 'snipe-dev_local=wkMPeN6kxHTgcy7pBWCmBb2skYp7Ozxo03ll2QRI; expires=Sat, 18 Oct 2025 20:42:52 GMT; Max-Age=720000; path=/; secure; httponly; samesite=lax'
|
||||
description: null
|
||||
custom: []
|
||||
responseFields: []
|
||||
auth:
|
||||
- headers
|
||||
- Authorization
|
||||
- 'Bearer 6g43cv8PD1aE5beadkZfhV6'
|
||||
controller: null
|
||||
method: null
|
||||
route: null
|
||||
custom: []
|
||||
-
|
||||
httpMethods:
|
||||
- GET
|
||||
uri: api/v1/statuslabels/assets/name
|
||||
metadata:
|
||||
groupName: 'Status Labels'
|
||||
groupDescription: ''
|
||||
subgroup: Assets
|
||||
subgroupDescription: ''
|
||||
title: 'Show Count for Pie Chart'
|
||||
description: ''
|
||||
authenticated: true
|
||||
deprecated: false
|
||||
custom: []
|
||||
headers:
|
||||
Authorization: 'Bearer 6g43cv8PD1aE5beadkZfhV6'
|
||||
Content-Type: application/json
|
||||
Accept: application/json
|
||||
urlParameters: []
|
||||
cleanUrlParameters: []
|
||||
queryParameters: []
|
||||
cleanQueryParameters: []
|
||||
bodyParameters: []
|
||||
cleanBodyParameters: []
|
||||
fileParameters: []
|
||||
responses:
|
||||
-
|
||||
status: 401
|
||||
content: '{"error":"Unauthorized or unauthenticated."}'
|
||||
headers:
|
||||
cache-control: 'max-age=0, must-revalidate, no-cache, no-store, private'
|
||||
content-type: application/json
|
||||
vary: Origin
|
||||
pragma: no-cache
|
||||
expires: 'Sun, 02 Jan 1990 00:00:00 GMT'
|
||||
x-content-type-options: nosniff
|
||||
feature-policy: "accelerometer 'none';autoplay 'none';camera 'none';display-capture 'none';document-domain 'none';encrypted-media 'none';fullscreen 'none';geolocation 'none';sync-xhr 'none';usb 'none';xr-spatial-tracking 'none'"
|
||||
referrer-policy: same-origin
|
||||
content-security-policy: "default-src 'self';style-src 'self' 'unsafe-inline';script-src 'self' 'unsafe-inline' 'unsafe-eval';connect-src 'self';object-src 'none';font-src 'self' data:;img-src 'self' data: https://snipe-it.test https://avatars.githubusercontent.com/u/ https://www.google.com/images/branding/googlelogo/2x/ https://snipe-flysystem-public-test.s3-us-west-2.amazonaws.com https://secure.gravatar.com http://gravatar.com maps.google.com maps.gstatic.com *.googleapis.com"
|
||||
set-cookie: 'snipe-dev_local=BwSbIkmBBnKEl1eHDB5irvFrSmdOermismgPqdVt; expires=Sat, 18 Oct 2025 20:42:52 GMT; Max-Age=720000; path=/; secure; httponly; samesite=lax'
|
||||
description: null
|
||||
custom: []
|
||||
responseFields: []
|
||||
auth:
|
||||
- headers
|
||||
- Authorization
|
||||
- 'Bearer 6g43cv8PD1aE5beadkZfhV6'
|
||||
controller: null
|
||||
method: null
|
||||
route: null
|
||||
custom: []
|
||||
-
|
||||
httpMethods:
|
||||
- GET
|
||||
uri: api/v1/statuslabels/assets/type
|
||||
metadata:
|
||||
groupName: 'Status Labels'
|
||||
groupDescription: ''
|
||||
subgroup: Assets
|
||||
subgroupDescription: ''
|
||||
title: 'Show Count for Pie Chart by Meta Status'
|
||||
description: ''
|
||||
authenticated: true
|
||||
deprecated: false
|
||||
custom: []
|
||||
headers:
|
||||
Authorization: 'Bearer 6g43cv8PD1aE5beadkZfhV6'
|
||||
Content-Type: application/json
|
||||
Accept: application/json
|
||||
urlParameters: []
|
||||
cleanUrlParameters: []
|
||||
queryParameters: []
|
||||
cleanQueryParameters: []
|
||||
bodyParameters: []
|
||||
cleanBodyParameters: []
|
||||
fileParameters: []
|
||||
responses:
|
||||
-
|
||||
status: 401
|
||||
content: '{"error":"Unauthorized or unauthenticated."}'
|
||||
headers:
|
||||
cache-control: 'max-age=0, must-revalidate, no-cache, no-store, private'
|
||||
content-type: application/json
|
||||
vary: Origin
|
||||
pragma: no-cache
|
||||
expires: 'Sun, 02 Jan 1990 00:00:00 GMT'
|
||||
x-content-type-options: nosniff
|
||||
feature-policy: "accelerometer 'none';autoplay 'none';camera 'none';display-capture 'none';document-domain 'none';encrypted-media 'none';fullscreen 'none';geolocation 'none';sync-xhr 'none';usb 'none';xr-spatial-tracking 'none'"
|
||||
referrer-policy: same-origin
|
||||
content-security-policy: "default-src 'self';style-src 'self' 'unsafe-inline';script-src 'self' 'unsafe-inline' 'unsafe-eval';connect-src 'self';object-src 'none';font-src 'self' data:;img-src 'self' data: https://snipe-it.test https://avatars.githubusercontent.com/u/ https://www.google.com/images/branding/googlelogo/2x/ https://snipe-flysystem-public-test.s3-us-west-2.amazonaws.com https://secure.gravatar.com http://gravatar.com maps.google.com maps.gstatic.com *.googleapis.com"
|
||||
set-cookie: 'snipe-dev_local=qgDpluENzw06DYesVDJ62VPNypFZR7TMXA5YuERD; expires=Sat, 18 Oct 2025 20:42:52 GMT; Max-Age=720000; path=/; secure; httponly; samesite=lax'
|
||||
description: null
|
||||
custom: []
|
||||
responseFields: []
|
||||
auth:
|
||||
- headers
|
||||
- Authorization
|
||||
- 'Bearer 6g43cv8PD1aE5beadkZfhV6'
|
||||
controller: null
|
||||
method: null
|
||||
route: null
|
||||
custom: []
|
||||
-
|
||||
httpMethods:
|
||||
- GET
|
||||
uri: 'api/v1/statuslabels/{id}/assetlist'
|
||||
metadata:
|
||||
groupName: 'Status Labels'
|
||||
groupDescription: ''
|
||||
subgroup: Assets
|
||||
subgroupDescription: ''
|
||||
title: 'Show Assets with Status Label'
|
||||
description: ''
|
||||
authenticated: true
|
||||
deprecated: false
|
||||
custom: []
|
||||
headers:
|
||||
Authorization: 'Bearer 6g43cv8PD1aE5beadkZfhV6'
|
||||
Content-Type: application/json
|
||||
Accept: application/json
|
||||
urlParameters:
|
||||
id:
|
||||
name: id
|
||||
description: 'The ID of the statuslabel.'
|
||||
required: true
|
||||
example: architecto
|
||||
type: string
|
||||
enumValues: []
|
||||
exampleWasSpecified: false
|
||||
nullable: false
|
||||
custom: []
|
||||
cleanUrlParameters:
|
||||
id: architecto
|
||||
queryParameters: []
|
||||
cleanQueryParameters: []
|
||||
bodyParameters: []
|
||||
cleanBodyParameters: []
|
||||
fileParameters: []
|
||||
responses:
|
||||
-
|
||||
status: 401
|
||||
content: '{"error":"Unauthorized or unauthenticated."}'
|
||||
headers:
|
||||
cache-control: 'max-age=0, must-revalidate, no-cache, no-store, private'
|
||||
content-type: application/json
|
||||
vary: Origin
|
||||
pragma: no-cache
|
||||
expires: 'Sun, 02 Jan 1990 00:00:00 GMT'
|
||||
x-content-type-options: nosniff
|
||||
feature-policy: "accelerometer 'none';autoplay 'none';camera 'none';display-capture 'none';document-domain 'none';encrypted-media 'none';fullscreen 'none';geolocation 'none';sync-xhr 'none';usb 'none';xr-spatial-tracking 'none'"
|
||||
referrer-policy: same-origin
|
||||
content-security-policy: "default-src 'self';style-src 'self' 'unsafe-inline';script-src 'self' 'unsafe-inline' 'unsafe-eval';connect-src 'self';object-src 'none';font-src 'self' data:;img-src 'self' data: https://snipe-it.test https://avatars.githubusercontent.com/u/ https://www.google.com/images/branding/googlelogo/2x/ https://snipe-flysystem-public-test.s3-us-west-2.amazonaws.com https://secure.gravatar.com http://gravatar.com maps.google.com maps.gstatic.com *.googleapis.com"
|
||||
set-cookie: 'snipe-dev_local=prHwFCnHCRfbaQBGGsb9zl9HAqpNQVahgTzOn5TU; expires=Sat, 18 Oct 2025 20:42:52 GMT; Max-Age=720000; path=/; secure; httponly; samesite=lax'
|
||||
description: null
|
||||
custom: []
|
||||
responseFields: []
|
||||
auth:
|
||||
- headers
|
||||
- Authorization
|
||||
- 'Bearer 6g43cv8PD1aE5beadkZfhV6'
|
||||
controller: null
|
||||
method: null
|
||||
route: null
|
||||
custom: []
|
||||
-
|
||||
httpMethods:
|
||||
- GET
|
||||
uri: 'api/v1/statuslabels/{statuslabel}/deployable'
|
||||
metadata:
|
||||
groupName: 'Status Labels'
|
||||
groupDescription: ''
|
||||
subgroup: Assets
|
||||
subgroupDescription: ''
|
||||
title: 'Check for Deployable Status'
|
||||
description: |-
|
||||
Returns a boolean response based on whether the status label
|
||||
is one that is deployable or pending.
|
||||
|
||||
This is used by the hardware create/edit view to determine whether
|
||||
we should provide a dropdown of users for them to check the asset out to,
|
||||
and whether we show a warning that the asset will be checked in if it's already
|
||||
assigned but the status is changed to one that isn't pending or deployable
|
||||
authenticated: true
|
||||
deprecated: false
|
||||
custom: []
|
||||
headers:
|
||||
Authorization: 'Bearer 6g43cv8PD1aE5beadkZfhV6'
|
||||
Content-Type: application/json
|
||||
Accept: application/json
|
||||
urlParameters:
|
||||
statuslabel:
|
||||
name: statuslabel
|
||||
description: 'The statuslabel.'
|
||||
required: true
|
||||
example: architecto
|
||||
type: string
|
||||
enumValues: []
|
||||
exampleWasSpecified: false
|
||||
nullable: false
|
||||
custom: []
|
||||
cleanUrlParameters:
|
||||
statuslabel: architecto
|
||||
queryParameters: []
|
||||
cleanQueryParameters: []
|
||||
bodyParameters: []
|
||||
cleanBodyParameters: []
|
||||
fileParameters: []
|
||||
responses:
|
||||
-
|
||||
status: 401
|
||||
content: '{"error":"Unauthorized or unauthenticated."}'
|
||||
headers:
|
||||
cache-control: 'max-age=0, must-revalidate, no-cache, no-store, private'
|
||||
content-type: application/json
|
||||
vary: Origin
|
||||
pragma: no-cache
|
||||
expires: 'Sun, 02 Jan 1990 00:00:00 GMT'
|
||||
x-content-type-options: nosniff
|
||||
feature-policy: "accelerometer 'none';autoplay 'none';camera 'none';display-capture 'none';document-domain 'none';encrypted-media 'none';fullscreen 'none';geolocation 'none';sync-xhr 'none';usb 'none';xr-spatial-tracking 'none'"
|
||||
referrer-policy: same-origin
|
||||
content-security-policy: "default-src 'self';style-src 'self' 'unsafe-inline';script-src 'self' 'unsafe-inline' 'unsafe-eval';connect-src 'self';object-src 'none';font-src 'self' data:;img-src 'self' data: https://snipe-it.test https://avatars.githubusercontent.com/u/ https://www.google.com/images/branding/googlelogo/2x/ https://snipe-flysystem-public-test.s3-us-west-2.amazonaws.com https://secure.gravatar.com http://gravatar.com maps.google.com maps.gstatic.com *.googleapis.com"
|
||||
set-cookie: 'snipe-dev_local=gGlaRILsVZF4fEWWem29LTEhtwQLJo5jRgFzetFi; expires=Sat, 18 Oct 2025 20:42:52 GMT; Max-Age=720000; path=/; secure; httponly; samesite=lax'
|
||||
description: null
|
||||
custom: []
|
||||
responseFields: []
|
||||
auth:
|
||||
- headers
|
||||
- Authorization
|
||||
- 'Bearer 6g43cv8PD1aE5beadkZfhV6'
|
||||
controller: null
|
||||
method: null
|
||||
route: null
|
||||
custom: []
|
||||
-
|
||||
httpMethods:
|
||||
- GET
|
||||
uri: api/v1/statuslabels
|
||||
metadata:
|
||||
groupName: 'Status Labels'
|
||||
groupDescription: ''
|
||||
subgroup: Assets
|
||||
subgroupDescription: ''
|
||||
title: 'Show Status Labels'
|
||||
description: ''
|
||||
authenticated: true
|
||||
deprecated: false
|
||||
custom: []
|
||||
headers:
|
||||
Authorization: 'Bearer 6g43cv8PD1aE5beadkZfhV6'
|
||||
Content-Type: application/json
|
||||
Accept: application/json
|
||||
urlParameters: []
|
||||
cleanUrlParameters: []
|
||||
queryParameters:
|
||||
search:
|
||||
name: search
|
||||
description: 'Search term to filter results.'
|
||||
required: false
|
||||
example: Inventory
|
||||
type: string
|
||||
enumValues: []
|
||||
exampleWasSpecified: true
|
||||
nullable: false
|
||||
custom: []
|
||||
cleanQueryParameters:
|
||||
search: Inventory
|
||||
bodyParameters: []
|
||||
cleanBodyParameters: []
|
||||
fileParameters: []
|
||||
responses:
|
||||
-
|
||||
status: 401
|
||||
content: '{"error":"Unauthorized or unauthenticated."}'
|
||||
headers:
|
||||
cache-control: 'max-age=0, must-revalidate, no-cache, no-store, private'
|
||||
content-type: application/json
|
||||
vary: Origin
|
||||
pragma: no-cache
|
||||
expires: 'Sun, 02 Jan 1990 00:00:00 GMT'
|
||||
x-content-type-options: nosniff
|
||||
feature-policy: "accelerometer 'none';autoplay 'none';camera 'none';display-capture 'none';document-domain 'none';encrypted-media 'none';fullscreen 'none';geolocation 'none';sync-xhr 'none';usb 'none';xr-spatial-tracking 'none'"
|
||||
referrer-policy: same-origin
|
||||
content-security-policy: "default-src 'self';style-src 'self' 'unsafe-inline';script-src 'self' 'unsafe-inline' 'unsafe-eval';connect-src 'self';object-src 'none';font-src 'self' data:;img-src 'self' data: https://snipe-it.test https://avatars.githubusercontent.com/u/ https://www.google.com/images/branding/googlelogo/2x/ https://snipe-flysystem-public-test.s3-us-west-2.amazonaws.com https://secure.gravatar.com http://gravatar.com maps.google.com maps.gstatic.com *.googleapis.com"
|
||||
set-cookie: 'snipe-dev_local=wZlTwk63tGu1kRBFJuzb8R1UY1k0ZU2YI5NAAZt8; expires=Sat, 18 Oct 2025 20:42:52 GMT; Max-Age=720000; path=/; secure; httponly; samesite=lax'
|
||||
description: null
|
||||
custom: []
|
||||
responseFields: []
|
||||
auth:
|
||||
- headers
|
||||
- Authorization
|
||||
- 'Bearer 6g43cv8PD1aE5beadkZfhV6'
|
||||
controller: null
|
||||
method: null
|
||||
route: null
|
||||
custom: []
|
||||
-
|
||||
httpMethods:
|
||||
- POST
|
||||
uri: api/v1/statuslabels
|
||||
metadata:
|
||||
groupName: 'Status Labels'
|
||||
groupDescription: ''
|
||||
subgroup: Assets
|
||||
subgroupDescription: ''
|
||||
title: 'Store a newly created resource in storage.'
|
||||
description: ''
|
||||
authenticated: true
|
||||
deprecated: false
|
||||
custom: []
|
||||
headers:
|
||||
Authorization: 'Bearer 6g43cv8PD1aE5beadkZfhV6'
|
||||
Content-Type: application/json
|
||||
Accept: application/json
|
||||
urlParameters: []
|
||||
cleanUrlParameters: []
|
||||
queryParameters: []
|
||||
cleanQueryParameters: []
|
||||
bodyParameters: []
|
||||
cleanBodyParameters: []
|
||||
fileParameters: []
|
||||
responses: []
|
||||
responseFields: []
|
||||
auth:
|
||||
- headers
|
||||
- Authorization
|
||||
- 'Bearer 6g43cv8PD1aE5beadkZfhV6'
|
||||
controller: null
|
||||
method: null
|
||||
route: null
|
||||
custom: []
|
||||
-
|
||||
httpMethods:
|
||||
- GET
|
||||
uri: 'api/v1/statuslabels/{id}'
|
||||
metadata:
|
||||
groupName: 'Status Labels'
|
||||
groupDescription: ''
|
||||
subgroup: Assets
|
||||
subgroupDescription: ''
|
||||
title: 'Show Status Labels'
|
||||
description: ''
|
||||
authenticated: true
|
||||
deprecated: false
|
||||
custom: []
|
||||
headers:
|
||||
Authorization: 'Bearer 6g43cv8PD1aE5beadkZfhV6'
|
||||
Content-Type: application/json
|
||||
Accept: application/json
|
||||
urlParameters:
|
||||
id:
|
||||
name: id
|
||||
description: 'The ID of the statuslabel.'
|
||||
required: true
|
||||
example: architecto
|
||||
type: string
|
||||
enumValues: []
|
||||
exampleWasSpecified: false
|
||||
nullable: false
|
||||
custom: []
|
||||
cleanUrlParameters:
|
||||
id: architecto
|
||||
queryParameters: []
|
||||
cleanQueryParameters: []
|
||||
bodyParameters: []
|
||||
cleanBodyParameters: []
|
||||
fileParameters: []
|
||||
responses:
|
||||
-
|
||||
status: 401
|
||||
content: '{"error":"Unauthorized or unauthenticated."}'
|
||||
headers:
|
||||
cache-control: 'max-age=0, must-revalidate, no-cache, no-store, private'
|
||||
content-type: application/json
|
||||
vary: Origin
|
||||
pragma: no-cache
|
||||
expires: 'Sun, 02 Jan 1990 00:00:00 GMT'
|
||||
x-content-type-options: nosniff
|
||||
feature-policy: "accelerometer 'none';autoplay 'none';camera 'none';display-capture 'none';document-domain 'none';encrypted-media 'none';fullscreen 'none';geolocation 'none';sync-xhr 'none';usb 'none';xr-spatial-tracking 'none'"
|
||||
referrer-policy: same-origin
|
||||
content-security-policy: "default-src 'self';style-src 'self' 'unsafe-inline';script-src 'self' 'unsafe-inline' 'unsafe-eval';connect-src 'self';object-src 'none';font-src 'self' data:;img-src 'self' data: https://snipe-it.test https://avatars.githubusercontent.com/u/ https://www.google.com/images/branding/googlelogo/2x/ https://snipe-flysystem-public-test.s3-us-west-2.amazonaws.com https://secure.gravatar.com http://gravatar.com maps.google.com maps.gstatic.com *.googleapis.com"
|
||||
set-cookie: 'snipe-dev_local=BoPls7yDoCtaubgDPfK5nEabHin9oYkJpg9vZT3b; expires=Sat, 18 Oct 2025 20:42:52 GMT; Max-Age=720000; path=/; secure; httponly; samesite=lax'
|
||||
description: null
|
||||
custom: []
|
||||
responseFields: []
|
||||
auth:
|
||||
- headers
|
||||
- Authorization
|
||||
- 'Bearer 6g43cv8PD1aE5beadkZfhV6'
|
||||
controller: null
|
||||
method: null
|
||||
route: null
|
||||
custom: []
|
||||
-
|
||||
httpMethods:
|
||||
- PUT
|
||||
- PATCH
|
||||
uri: 'api/v1/statuslabels/{id}'
|
||||
metadata:
|
||||
groupName: 'Status Labels'
|
||||
groupDescription: ''
|
||||
subgroup: Assets
|
||||
subgroupDescription: ''
|
||||
title: 'Update Status Label'
|
||||
description: ''
|
||||
authenticated: true
|
||||
deprecated: false
|
||||
custom: []
|
||||
headers:
|
||||
Authorization: 'Bearer 6g43cv8PD1aE5beadkZfhV6'
|
||||
Content-Type: application/json
|
||||
Accept: application/json
|
||||
urlParameters:
|
||||
id:
|
||||
name: id
|
||||
description: 'The ID of the statuslabel.'
|
||||
required: true
|
||||
example: architecto
|
||||
type: string
|
||||
enumValues: []
|
||||
exampleWasSpecified: false
|
||||
nullable: false
|
||||
custom: []
|
||||
cleanUrlParameters:
|
||||
id: architecto
|
||||
queryParameters: []
|
||||
cleanQueryParameters: []
|
||||
bodyParameters: []
|
||||
cleanBodyParameters: []
|
||||
fileParameters: []
|
||||
responses: []
|
||||
responseFields: []
|
||||
auth:
|
||||
- headers
|
||||
- Authorization
|
||||
- 'Bearer 6g43cv8PD1aE5beadkZfhV6'
|
||||
controller: null
|
||||
method: null
|
||||
route: null
|
||||
custom: []
|
||||
-
|
||||
httpMethods:
|
||||
- DELETE
|
||||
uri: 'api/v1/statuslabels/{id}'
|
||||
metadata:
|
||||
groupName: 'Status Labels'
|
||||
groupDescription: ''
|
||||
subgroup: Assets
|
||||
subgroupDescription: ''
|
||||
title: 'Delete Status Label'
|
||||
description: ''
|
||||
authenticated: true
|
||||
deprecated: false
|
||||
custom: []
|
||||
headers:
|
||||
Authorization: 'Bearer 6g43cv8PD1aE5beadkZfhV6'
|
||||
Content-Type: application/json
|
||||
Accept: application/json
|
||||
urlParameters:
|
||||
id:
|
||||
name: id
|
||||
description: 'The ID of the statuslabel.'
|
||||
required: true
|
||||
example: architecto
|
||||
type: string
|
||||
enumValues: []
|
||||
exampleWasSpecified: false
|
||||
nullable: false
|
||||
custom: []
|
||||
cleanUrlParameters:
|
||||
id: architecto
|
||||
queryParameters: []
|
||||
cleanQueryParameters: []
|
||||
bodyParameters: []
|
||||
cleanBodyParameters: []
|
||||
fileParameters: []
|
||||
responses: []
|
||||
responseFields: []
|
||||
auth:
|
||||
- headers
|
||||
- Authorization
|
||||
- 'Bearer 6g43cv8PD1aE5beadkZfhV6'
|
||||
controller: null
|
||||
method: null
|
||||
route: null
|
||||
custom: []
|
||||
@@ -1,482 +0,0 @@
|
||||
name: Suppliers
|
||||
description: ''
|
||||
endpoints:
|
||||
-
|
||||
httpMethods:
|
||||
- GET
|
||||
uri: api/v1/suppliers/selectlist
|
||||
metadata:
|
||||
groupName: Suppliers
|
||||
groupDescription: ''
|
||||
subgroup: ''
|
||||
subgroupDescription: ''
|
||||
title: Selectlist
|
||||
description: ''
|
||||
authenticated: true
|
||||
deprecated: false
|
||||
custom: []
|
||||
headers:
|
||||
Authorization: 'Bearer 6g43cv8PD1aE5beadkZfhV6'
|
||||
Content-Type: application/json
|
||||
Accept: application/json
|
||||
urlParameters: []
|
||||
cleanUrlParameters: []
|
||||
queryParameters: []
|
||||
cleanQueryParameters: []
|
||||
bodyParameters: []
|
||||
cleanBodyParameters: []
|
||||
fileParameters: []
|
||||
responses:
|
||||
-
|
||||
status: 401
|
||||
content: '{"error":"Unauthorized or unauthenticated."}'
|
||||
headers:
|
||||
cache-control: 'max-age=0, must-revalidate, no-cache, no-store, private'
|
||||
content-type: application/json
|
||||
vary: Origin
|
||||
pragma: no-cache
|
||||
expires: 'Sun, 02 Jan 1990 00:00:00 GMT'
|
||||
x-content-type-options: nosniff
|
||||
feature-policy: "accelerometer 'none';autoplay 'none';camera 'none';display-capture 'none';document-domain 'none';encrypted-media 'none';fullscreen 'none';geolocation 'none';sync-xhr 'none';usb 'none';xr-spatial-tracking 'none'"
|
||||
referrer-policy: same-origin
|
||||
content-security-policy: "default-src 'self';style-src 'self' 'unsafe-inline';script-src 'self' 'unsafe-inline' 'unsafe-eval';connect-src 'self';object-src 'none';font-src 'self' data:;img-src 'self' data: https://snipe-it.test https://avatars.githubusercontent.com/u/ https://www.google.com/images/branding/googlelogo/2x/ https://snipe-flysystem-public-test.s3-us-west-2.amazonaws.com https://secure.gravatar.com http://gravatar.com maps.google.com maps.gstatic.com *.googleapis.com"
|
||||
set-cookie: 'snipe-dev_local=XCddlMqcqKqWUTBwJenBf996h9VUAuQn9onGzMNw; expires=Sat, 18 Oct 2025 20:42:52 GMT; Max-Age=720000; path=/; secure; httponly; samesite=lax'
|
||||
description: null
|
||||
custom: []
|
||||
responseFields: []
|
||||
auth:
|
||||
- headers
|
||||
- Authorization
|
||||
- 'Bearer 6g43cv8PD1aE5beadkZfhV6'
|
||||
controller: null
|
||||
method: null
|
||||
route: null
|
||||
custom: []
|
||||
-
|
||||
httpMethods:
|
||||
- GET
|
||||
uri: api/v1/suppliers
|
||||
metadata:
|
||||
groupName: Suppliers
|
||||
groupDescription: ''
|
||||
subgroup: ''
|
||||
subgroupDescription: ''
|
||||
title: 'List Suppliers'
|
||||
description: ''
|
||||
authenticated: true
|
||||
deprecated: false
|
||||
custom: []
|
||||
headers:
|
||||
Authorization: 'Bearer 6g43cv8PD1aE5beadkZfhV6'
|
||||
Content-Type: application/json
|
||||
Accept: application/json
|
||||
urlParameters: []
|
||||
cleanUrlParameters: []
|
||||
queryParameters:
|
||||
search:
|
||||
name: search
|
||||
description: 'Search term to filter results.'
|
||||
required: false
|
||||
example: Acme
|
||||
type: string
|
||||
enumValues: []
|
||||
exampleWasSpecified: true
|
||||
nullable: false
|
||||
custom: []
|
||||
name:
|
||||
name: name
|
||||
description: 'Filter by exact supplier name.'
|
||||
required: false
|
||||
example: 'Acme Corp'
|
||||
type: string
|
||||
enumValues: []
|
||||
exampleWasSpecified: true
|
||||
nullable: false
|
||||
custom: []
|
||||
address:
|
||||
name: address
|
||||
description: 'Filter by exact address.'
|
||||
required: false
|
||||
example: '123 Main St'
|
||||
type: string
|
||||
enumValues: []
|
||||
exampleWasSpecified: true
|
||||
nullable: false
|
||||
custom: []
|
||||
address2:
|
||||
name: address2
|
||||
description: 'Filter by exact address2.'
|
||||
required: false
|
||||
example: 'Suite 100'
|
||||
type: string
|
||||
enumValues: []
|
||||
exampleWasSpecified: true
|
||||
nullable: false
|
||||
custom: []
|
||||
city:
|
||||
name: city
|
||||
description: 'Filter by exact city.'
|
||||
required: false
|
||||
example: Springfield
|
||||
type: string
|
||||
enumValues: []
|
||||
exampleWasSpecified: true
|
||||
nullable: false
|
||||
custom: []
|
||||
state:
|
||||
name: state
|
||||
description: 'Filter by exact state.'
|
||||
required: false
|
||||
example: IL
|
||||
type: string
|
||||
enumValues: []
|
||||
exampleWasSpecified: true
|
||||
nullable: false
|
||||
custom: []
|
||||
zip:
|
||||
name: zip
|
||||
description: 'Filter by exact zip code.'
|
||||
required: false
|
||||
example: '62701'
|
||||
type: string
|
||||
enumValues: []
|
||||
exampleWasSpecified: true
|
||||
nullable: false
|
||||
custom: []
|
||||
country:
|
||||
name: country
|
||||
description: 'Filter by exact country.'
|
||||
required: false
|
||||
example: USA
|
||||
type: string
|
||||
enumValues: []
|
||||
exampleWasSpecified: true
|
||||
nullable: false
|
||||
custom: []
|
||||
phone:
|
||||
name: phone
|
||||
description: 'Filter by exact phone number.'
|
||||
required: false
|
||||
example: 555-1234
|
||||
type: string
|
||||
enumValues: []
|
||||
exampleWasSpecified: true
|
||||
nullable: false
|
||||
custom: []
|
||||
fax:
|
||||
name: fax
|
||||
description: 'Filter by exact fax number.'
|
||||
required: false
|
||||
example: 555-5678
|
||||
type: string
|
||||
enumValues: []
|
||||
exampleWasSpecified: true
|
||||
nullable: false
|
||||
custom: []
|
||||
email:
|
||||
name: email
|
||||
description: 'Filter by exact email address.'
|
||||
required: false
|
||||
example: info@example.org
|
||||
type: string
|
||||
enumValues: []
|
||||
exampleWasSpecified: true
|
||||
nullable: false
|
||||
custom: []
|
||||
url:
|
||||
name: url
|
||||
description: 'Filter by exact URL.'
|
||||
required: false
|
||||
example: 'http://example.com'
|
||||
type: string
|
||||
enumValues: []
|
||||
exampleWasSpecified: true
|
||||
nullable: false
|
||||
custom: []
|
||||
notes:
|
||||
name: notes
|
||||
description: 'Filter by exact notes.'
|
||||
required: false
|
||||
example: 'This is a note.'
|
||||
type: string
|
||||
enumValues: []
|
||||
exampleWasSpecified: true
|
||||
nullable: false
|
||||
custom: []
|
||||
sort:
|
||||
name: sort
|
||||
description: 'Column to sort results by. Allowed values: id, name, address, address2, city, state, country, zip, phone, contact, fax, email, image, assets_count, licenses_count, accessories_count, components_count, consumables_count, url, notes. Default: created_at.'
|
||||
required: false
|
||||
example: name
|
||||
type: string
|
||||
enumValues: []
|
||||
exampleWasSpecified: true
|
||||
nullable: false
|
||||
custom: []
|
||||
order:
|
||||
name: order
|
||||
description: 'Order of sorted results. Allowed values: asc, desc. Default: desc.'
|
||||
required: false
|
||||
example: asc
|
||||
type: string
|
||||
enumValues: []
|
||||
exampleWasSpecified: true
|
||||
nullable: false
|
||||
custom: []
|
||||
offset:
|
||||
name: offset
|
||||
description: 'Offset/starting position of the results. Default: 0.'
|
||||
required: false
|
||||
example: 0
|
||||
type: integer
|
||||
enumValues: []
|
||||
exampleWasSpecified: true
|
||||
nullable: false
|
||||
custom: []
|
||||
limit:
|
||||
name: limit
|
||||
description: 'Limit the number of results returned. Default: 25. Maximum: 100.'
|
||||
required: false
|
||||
example: 50
|
||||
type: integer
|
||||
enumValues: []
|
||||
exampleWasSpecified: true
|
||||
nullable: false
|
||||
custom: []
|
||||
cleanQueryParameters:
|
||||
search: Acme
|
||||
name: 'Acme Corp'
|
||||
address: '123 Main St'
|
||||
address2: 'Suite 100'
|
||||
city: Springfield
|
||||
state: IL
|
||||
zip: '62701'
|
||||
country: USA
|
||||
phone: 555-1234
|
||||
fax: 555-5678
|
||||
email: info@example.org
|
||||
url: 'http://example.com'
|
||||
notes: 'This is a note.'
|
||||
sort: name
|
||||
order: asc
|
||||
offset: 0
|
||||
limit: 50
|
||||
bodyParameters: []
|
||||
cleanBodyParameters: []
|
||||
fileParameters: []
|
||||
responses:
|
||||
-
|
||||
status: 401
|
||||
content: '{"error":"Unauthorized or unauthenticated."}'
|
||||
headers:
|
||||
cache-control: 'max-age=0, must-revalidate, no-cache, no-store, private'
|
||||
content-type: application/json
|
||||
vary: Origin
|
||||
pragma: no-cache
|
||||
expires: 'Sun, 02 Jan 1990 00:00:00 GMT'
|
||||
x-content-type-options: nosniff
|
||||
feature-policy: "accelerometer 'none';autoplay 'none';camera 'none';display-capture 'none';document-domain 'none';encrypted-media 'none';fullscreen 'none';geolocation 'none';sync-xhr 'none';usb 'none';xr-spatial-tracking 'none'"
|
||||
referrer-policy: same-origin
|
||||
content-security-policy: "default-src 'self';style-src 'self' 'unsafe-inline';script-src 'self' 'unsafe-inline' 'unsafe-eval';connect-src 'self';object-src 'none';font-src 'self' data:;img-src 'self' data: https://snipe-it.test https://avatars.githubusercontent.com/u/ https://www.google.com/images/branding/googlelogo/2x/ https://snipe-flysystem-public-test.s3-us-west-2.amazonaws.com https://secure.gravatar.com http://gravatar.com maps.google.com maps.gstatic.com *.googleapis.com"
|
||||
set-cookie: 'snipe-dev_local=R5PUii8mbVR2t8EyWTQHM80dstDyhZxcQR15nKb7; expires=Sat, 18 Oct 2025 20:42:52 GMT; Max-Age=720000; path=/; secure; httponly; samesite=lax'
|
||||
description: null
|
||||
custom: []
|
||||
responseFields: []
|
||||
auth:
|
||||
- headers
|
||||
- Authorization
|
||||
- 'Bearer 6g43cv8PD1aE5beadkZfhV6'
|
||||
controller: null
|
||||
method: null
|
||||
route: null
|
||||
custom: []
|
||||
-
|
||||
httpMethods:
|
||||
- POST
|
||||
uri: api/v1/suppliers
|
||||
metadata:
|
||||
groupName: Suppliers
|
||||
groupDescription: ''
|
||||
subgroup: ''
|
||||
subgroupDescription: ''
|
||||
title: 'Create Supplier'
|
||||
description: ''
|
||||
authenticated: true
|
||||
deprecated: false
|
||||
custom: []
|
||||
headers:
|
||||
Authorization: 'Bearer 6g43cv8PD1aE5beadkZfhV6'
|
||||
Content-Type: application/json
|
||||
Accept: application/json
|
||||
urlParameters: []
|
||||
cleanUrlParameters: []
|
||||
queryParameters: []
|
||||
cleanQueryParameters: []
|
||||
bodyParameters: []
|
||||
cleanBodyParameters: []
|
||||
fileParameters: []
|
||||
responses: []
|
||||
responseFields: []
|
||||
auth:
|
||||
- headers
|
||||
- Authorization
|
||||
- 'Bearer 6g43cv8PD1aE5beadkZfhV6'
|
||||
controller: null
|
||||
method: null
|
||||
route: null
|
||||
custom: []
|
||||
-
|
||||
httpMethods:
|
||||
- GET
|
||||
uri: 'api/v1/suppliers/{id}'
|
||||
metadata:
|
||||
groupName: Suppliers
|
||||
groupDescription: ''
|
||||
subgroup: ''
|
||||
subgroupDescription: ''
|
||||
title: 'Show Supplier'
|
||||
description: ''
|
||||
authenticated: true
|
||||
deprecated: false
|
||||
custom: []
|
||||
headers:
|
||||
Authorization: 'Bearer 6g43cv8PD1aE5beadkZfhV6'
|
||||
Content-Type: application/json
|
||||
Accept: application/json
|
||||
urlParameters:
|
||||
id:
|
||||
name: id
|
||||
description: 'The ID of the supplier.'
|
||||
required: true
|
||||
example: architecto
|
||||
type: string
|
||||
enumValues: []
|
||||
exampleWasSpecified: false
|
||||
nullable: false
|
||||
custom: []
|
||||
cleanUrlParameters:
|
||||
id: architecto
|
||||
queryParameters: []
|
||||
cleanQueryParameters: []
|
||||
bodyParameters: []
|
||||
cleanBodyParameters: []
|
||||
fileParameters: []
|
||||
responses:
|
||||
-
|
||||
status: 401
|
||||
content: '{"error":"Unauthorized or unauthenticated."}'
|
||||
headers:
|
||||
cache-control: 'max-age=0, must-revalidate, no-cache, no-store, private'
|
||||
content-type: application/json
|
||||
vary: Origin
|
||||
pragma: no-cache
|
||||
expires: 'Sun, 02 Jan 1990 00:00:00 GMT'
|
||||
x-content-type-options: nosniff
|
||||
feature-policy: "accelerometer 'none';autoplay 'none';camera 'none';display-capture 'none';document-domain 'none';encrypted-media 'none';fullscreen 'none';geolocation 'none';sync-xhr 'none';usb 'none';xr-spatial-tracking 'none'"
|
||||
referrer-policy: same-origin
|
||||
content-security-policy: "default-src 'self';style-src 'self' 'unsafe-inline';script-src 'self' 'unsafe-inline' 'unsafe-eval';connect-src 'self';object-src 'none';font-src 'self' data:;img-src 'self' data: https://snipe-it.test https://avatars.githubusercontent.com/u/ https://www.google.com/images/branding/googlelogo/2x/ https://snipe-flysystem-public-test.s3-us-west-2.amazonaws.com https://secure.gravatar.com http://gravatar.com maps.google.com maps.gstatic.com *.googleapis.com"
|
||||
set-cookie: 'snipe-dev_local=aqFNCFcjAl7hMG1Q0RCnYmK7HTNWcq0kYhd1R9NN; expires=Sat, 18 Oct 2025 20:42:52 GMT; Max-Age=720000; path=/; secure; httponly; samesite=lax'
|
||||
description: null
|
||||
custom: []
|
||||
responseFields: []
|
||||
auth:
|
||||
- headers
|
||||
- Authorization
|
||||
- 'Bearer 6g43cv8PD1aE5beadkZfhV6'
|
||||
controller: null
|
||||
method: null
|
||||
route: null
|
||||
custom: []
|
||||
-
|
||||
httpMethods:
|
||||
- PUT
|
||||
- PATCH
|
||||
uri: 'api/v1/suppliers/{id}'
|
||||
metadata:
|
||||
groupName: Suppliers
|
||||
groupDescription: ''
|
||||
subgroup: ''
|
||||
subgroupDescription: ''
|
||||
title: 'Update Supplier'
|
||||
description: ''
|
||||
authenticated: true
|
||||
deprecated: false
|
||||
custom: []
|
||||
headers:
|
||||
Authorization: 'Bearer 6g43cv8PD1aE5beadkZfhV6'
|
||||
Content-Type: application/json
|
||||
Accept: application/json
|
||||
urlParameters:
|
||||
id:
|
||||
name: id
|
||||
description: 'The ID of the supplier.'
|
||||
required: true
|
||||
example: architecto
|
||||
type: string
|
||||
enumValues: []
|
||||
exampleWasSpecified: false
|
||||
nullable: false
|
||||
custom: []
|
||||
cleanUrlParameters:
|
||||
id: architecto
|
||||
queryParameters: []
|
||||
cleanQueryParameters: []
|
||||
bodyParameters: []
|
||||
cleanBodyParameters: []
|
||||
fileParameters: []
|
||||
responses: []
|
||||
responseFields: []
|
||||
auth:
|
||||
- headers
|
||||
- Authorization
|
||||
- 'Bearer 6g43cv8PD1aE5beadkZfhV6'
|
||||
controller: null
|
||||
method: null
|
||||
route: null
|
||||
custom: []
|
||||
-
|
||||
httpMethods:
|
||||
- DELETE
|
||||
uri: 'api/v1/suppliers/{id}'
|
||||
metadata:
|
||||
groupName: Suppliers
|
||||
groupDescription: ''
|
||||
subgroup: ''
|
||||
subgroupDescription: ''
|
||||
title: 'Delete Supplier'
|
||||
description: ''
|
||||
authenticated: true
|
||||
deprecated: false
|
||||
custom: []
|
||||
headers:
|
||||
Authorization: 'Bearer 6g43cv8PD1aE5beadkZfhV6'
|
||||
Content-Type: application/json
|
||||
Accept: application/json
|
||||
urlParameters:
|
||||
id:
|
||||
name: id
|
||||
description: 'The ID of the supplier.'
|
||||
required: true
|
||||
example: architecto
|
||||
type: string
|
||||
enumValues: []
|
||||
exampleWasSpecified: false
|
||||
nullable: false
|
||||
custom: []
|
||||
cleanUrlParameters:
|
||||
id: architecto
|
||||
queryParameters: []
|
||||
cleanQueryParameters: []
|
||||
bodyParameters: []
|
||||
cleanBodyParameters: []
|
||||
fileParameters: []
|
||||
responses: []
|
||||
responseFields: []
|
||||
auth:
|
||||
- headers
|
||||
- Authorization
|
||||
- 'Bearer 6g43cv8PD1aE5beadkZfhV6'
|
||||
controller: null
|
||||
method: null
|
||||
route: null
|
||||
custom: []
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -1,207 +0,0 @@
|
||||
name: Reports
|
||||
description: ''
|
||||
endpoints:
|
||||
-
|
||||
httpMethods:
|
||||
- GET
|
||||
uri: api/v1/reports/activity
|
||||
metadata:
|
||||
groupName: Reports
|
||||
groupDescription: ''
|
||||
subgroup: ''
|
||||
subgroupDescription: ''
|
||||
title: 'Activity Report'
|
||||
description: ''
|
||||
authenticated: true
|
||||
deprecated: false
|
||||
custom: []
|
||||
headers:
|
||||
Authorization: 'Bearer 6g43cv8PD1aE5beadkZfhV6'
|
||||
Content-Type: application/json
|
||||
Accept: application/json
|
||||
urlParameters: []
|
||||
cleanUrlParameters: []
|
||||
queryParameters:
|
||||
search:
|
||||
name: search
|
||||
description: 'Search term to filter results'
|
||||
required: false
|
||||
example: updated
|
||||
type: string
|
||||
enumValues: []
|
||||
exampleWasSpecified: true
|
||||
nullable: false
|
||||
custom: []
|
||||
target_type:
|
||||
name: target_type
|
||||
description: 'Filter by target type'
|
||||
required: false
|
||||
example: user
|
||||
type: string
|
||||
enumValues: []
|
||||
exampleWasSpecified: true
|
||||
nullable: false
|
||||
custom: []
|
||||
target_id:
|
||||
name: target_id
|
||||
description: 'Filter by target ID'
|
||||
required: false
|
||||
example: 1
|
||||
type: integer
|
||||
enumValues: []
|
||||
exampleWasSpecified: true
|
||||
nullable: false
|
||||
custom: []
|
||||
item_type:
|
||||
name: item_type
|
||||
description: 'Filter by item type'
|
||||
required: false
|
||||
example: asset
|
||||
type: string
|
||||
enumValues: []
|
||||
exampleWasSpecified: true
|
||||
nullable: false
|
||||
custom: []
|
||||
item_id:
|
||||
name: item_id
|
||||
description: 'Filter by item ID'
|
||||
required: false
|
||||
example: 1
|
||||
type: integer
|
||||
enumValues: []
|
||||
exampleWasSpecified: true
|
||||
nullable: false
|
||||
custom: []
|
||||
action_type:
|
||||
name: action_type
|
||||
description: 'Filter by action type'
|
||||
required: false
|
||||
example: create
|
||||
type: string
|
||||
enumValues: []
|
||||
exampleWasSpecified: true
|
||||
nullable: false
|
||||
custom: []
|
||||
created_by:
|
||||
name: created_by
|
||||
description: 'Filter by user ID who created the log'
|
||||
required: false
|
||||
example: 1
|
||||
type: integer
|
||||
enumValues: []
|
||||
exampleWasSpecified: true
|
||||
nullable: false
|
||||
custom: []
|
||||
action_source:
|
||||
name: action_source
|
||||
description: 'Filter by action source'
|
||||
required: false
|
||||
example: web
|
||||
type: string
|
||||
enumValues: []
|
||||
exampleWasSpecified: true
|
||||
nullable: false
|
||||
custom: []
|
||||
remote_ip:
|
||||
name: remote_ip
|
||||
description: 'Filter by remote IP address Example:'
|
||||
required: false
|
||||
example: null
|
||||
type: string
|
||||
enumValues: []
|
||||
exampleWasSpecified: false
|
||||
nullable: false
|
||||
custom: []
|
||||
uploads:
|
||||
name: uploads
|
||||
description: 'Filter to only show logs with file uploads'
|
||||
required: false
|
||||
example: true
|
||||
type: boolean
|
||||
enumValues: []
|
||||
exampleWasSpecified: true
|
||||
nullable: false
|
||||
custom: []
|
||||
sort:
|
||||
name: sort
|
||||
description: 'Column to sort by. Allowed values: id, created_at, target_id, created_by, accept_signature, action_type, note, remote_ip, user_agent, target_type, item_type, action_source, action_date. Default is created_at.'
|
||||
required: false
|
||||
example: created_at
|
||||
type: string
|
||||
enumValues: []
|
||||
exampleWasSpecified: true
|
||||
nullable: false
|
||||
custom: []
|
||||
order:
|
||||
name: order
|
||||
description: 'Order of sorting. Allowed values: asc, desc. Default is desc.'
|
||||
required: false
|
||||
example: desc
|
||||
type: string
|
||||
enumValues: []
|
||||
exampleWasSpecified: true
|
||||
nullable: false
|
||||
custom: []
|
||||
offset:
|
||||
name: offset
|
||||
description: 'Number of records to skip for pagination. Default is 0.'
|
||||
required: false
|
||||
example: 0
|
||||
type: integer
|
||||
enumValues: []
|
||||
exampleWasSpecified: true
|
||||
nullable: false
|
||||
custom: []
|
||||
limit:
|
||||
name: limit
|
||||
description: 'Maximum number of records to return. Default is 25.'
|
||||
required: false
|
||||
example: 25
|
||||
type: integer
|
||||
enumValues: []
|
||||
exampleWasSpecified: true
|
||||
nullable: false
|
||||
custom: []
|
||||
cleanQueryParameters:
|
||||
search: updated
|
||||
target_type: user
|
||||
target_id: 1
|
||||
item_type: asset
|
||||
item_id: 1
|
||||
action_type: create
|
||||
created_by: 1
|
||||
action_source: web
|
||||
uploads: true
|
||||
sort: created_at
|
||||
order: desc
|
||||
offset: 0
|
||||
limit: 25
|
||||
bodyParameters: []
|
||||
cleanBodyParameters: []
|
||||
fileParameters: []
|
||||
responses:
|
||||
-
|
||||
status: 401
|
||||
content: '{"error":"Unauthorized or unauthenticated."}'
|
||||
headers:
|
||||
cache-control: 'max-age=0, must-revalidate, no-cache, no-store, private'
|
||||
content-type: application/json
|
||||
vary: Origin
|
||||
pragma: no-cache
|
||||
expires: 'Sun, 02 Jan 1990 00:00:00 GMT'
|
||||
x-content-type-options: nosniff
|
||||
feature-policy: "accelerometer 'none';autoplay 'none';camera 'none';display-capture 'none';document-domain 'none';encrypted-media 'none';fullscreen 'none';geolocation 'none';sync-xhr 'none';usb 'none';xr-spatial-tracking 'none'"
|
||||
referrer-policy: same-origin
|
||||
content-security-policy: "default-src 'self';style-src 'self' 'unsafe-inline';script-src 'self' 'unsafe-inline' 'unsafe-eval';connect-src 'self';object-src 'none';font-src 'self' data:;img-src 'self' data: https://snipe-it.test https://avatars.githubusercontent.com/u/ https://www.google.com/images/branding/googlelogo/2x/ https://snipe-flysystem-public-test.s3-us-west-2.amazonaws.com https://secure.gravatar.com http://gravatar.com maps.google.com maps.gstatic.com *.googleapis.com"
|
||||
set-cookie: 'snipe-dev_local=Q7c7iu2qi9Mil7UrdGdQhd5UHhMHwIs9J7wKxvhY; expires=Sat, 18 Oct 2025 20:42:52 GMT; Max-Age=720000; path=/; secure; httponly; samesite=lax'
|
||||
description: null
|
||||
custom: []
|
||||
responseFields: []
|
||||
auth:
|
||||
- headers
|
||||
- Authorization
|
||||
- 'Bearer 6g43cv8PD1aE5beadkZfhV6'
|
||||
controller: null
|
||||
method: null
|
||||
route: null
|
||||
custom: []
|
||||
@@ -1,54 +0,0 @@
|
||||
name: Misc
|
||||
description: ''
|
||||
endpoints:
|
||||
-
|
||||
httpMethods:
|
||||
- GET
|
||||
uri: api/v1/version
|
||||
metadata:
|
||||
groupName: Misc
|
||||
groupDescription: ''
|
||||
subgroup: ''
|
||||
subgroupDescription: ''
|
||||
title: 'Version API routes'
|
||||
description: ''
|
||||
authenticated: true
|
||||
deprecated: false
|
||||
custom: []
|
||||
headers:
|
||||
Authorization: 'Bearer 6g43cv8PD1aE5beadkZfhV6'
|
||||
Content-Type: application/json
|
||||
Accept: application/json
|
||||
urlParameters: []
|
||||
cleanUrlParameters: []
|
||||
queryParameters: []
|
||||
cleanQueryParameters: []
|
||||
bodyParameters: []
|
||||
cleanBodyParameters: []
|
||||
fileParameters: []
|
||||
responses:
|
||||
-
|
||||
status: 401
|
||||
content: '{"error":"Unauthorized or unauthenticated."}'
|
||||
headers:
|
||||
cache-control: 'max-age=0, must-revalidate, no-cache, no-store, private'
|
||||
content-type: application/json
|
||||
vary: Origin
|
||||
pragma: no-cache
|
||||
expires: 'Sun, 02 Jan 1990 00:00:00 GMT'
|
||||
x-content-type-options: nosniff
|
||||
feature-policy: "accelerometer 'none';autoplay 'none';camera 'none';display-capture 'none';document-domain 'none';encrypted-media 'none';fullscreen 'none';geolocation 'none';sync-xhr 'none';usb 'none';xr-spatial-tracking 'none'"
|
||||
referrer-policy: same-origin
|
||||
content-security-policy: "default-src 'self';style-src 'self' 'unsafe-inline';script-src 'self' 'unsafe-inline' 'unsafe-eval';connect-src 'self';object-src 'none';font-src 'self' data:;img-src 'self' data: https://snipe-it.test https://avatars.githubusercontent.com/u/ https://www.google.com/images/branding/googlelogo/2x/ https://snipe-flysystem-public-test.s3-us-west-2.amazonaws.com https://secure.gravatar.com http://gravatar.com maps.google.com maps.gstatic.com *.googleapis.com"
|
||||
set-cookie: 'snipe-dev_local=4opUPyEuZlodDlaWWG7JNFN7lCuHNMim1KxZHPur; expires=Sat, 18 Oct 2025 20:42:52 GMT; Max-Age=719999; path=/; secure; httponly; samesite=lax'
|
||||
description: null
|
||||
custom: []
|
||||
responseFields: []
|
||||
auth:
|
||||
- headers
|
||||
- Authorization
|
||||
- 'Bearer 6g43cv8PD1aE5beadkZfhV6'
|
||||
controller: null
|
||||
method: null
|
||||
route: null
|
||||
custom: []
|
||||
@@ -1,285 +0,0 @@
|
||||
name: Files
|
||||
description: ''
|
||||
endpoints:
|
||||
-
|
||||
httpMethods:
|
||||
- GET
|
||||
uri: 'api/v1/{object_type}/{id}/files'
|
||||
metadata:
|
||||
groupName: Files
|
||||
groupDescription: ''
|
||||
subgroup: ''
|
||||
subgroupDescription: ''
|
||||
title: 'List Files for an Object'
|
||||
description: ''
|
||||
authenticated: true
|
||||
deprecated: false
|
||||
custom: []
|
||||
headers:
|
||||
Authorization: 'Bearer 6g43cv8PD1aE5beadkZfhV6'
|
||||
Content-Type: application/json
|
||||
Accept: application/json
|
||||
urlParameters:
|
||||
object_type:
|
||||
name: object_type
|
||||
description: ''
|
||||
required: true
|
||||
example: accessories|assets|components|consumables|hardware|licenses|locations|maintenances|models|users
|
||||
type: string
|
||||
enumValues: []
|
||||
exampleWasSpecified: false
|
||||
nullable: false
|
||||
custom: []
|
||||
id:
|
||||
name: id
|
||||
description: 'The ID of the {object type}.'
|
||||
required: true
|
||||
example: architecto
|
||||
type: string
|
||||
enumValues: []
|
||||
exampleWasSpecified: false
|
||||
nullable: false
|
||||
custom: []
|
||||
cleanUrlParameters:
|
||||
object_type: accessories|assets|components|consumables|hardware|licenses|locations|maintenances|models|users
|
||||
id: architecto
|
||||
queryParameters: []
|
||||
cleanQueryParameters: []
|
||||
bodyParameters: []
|
||||
cleanBodyParameters: []
|
||||
fileParameters: []
|
||||
responses:
|
||||
-
|
||||
status: 401
|
||||
content: '{"error":"Unauthorized or unauthenticated."}'
|
||||
headers:
|
||||
cache-control: 'max-age=0, must-revalidate, no-cache, no-store, private'
|
||||
content-type: application/json
|
||||
vary: Origin
|
||||
pragma: no-cache
|
||||
expires: 'Sun, 02 Jan 1990 00:00:00 GMT'
|
||||
x-content-type-options: nosniff
|
||||
feature-policy: "accelerometer 'none';autoplay 'none';camera 'none';display-capture 'none';document-domain 'none';encrypted-media 'none';fullscreen 'none';geolocation 'none';sync-xhr 'none';usb 'none';xr-spatial-tracking 'none'"
|
||||
referrer-policy: same-origin
|
||||
content-security-policy: "default-src 'self';style-src 'self' 'unsafe-inline';script-src 'self' 'unsafe-inline' 'unsafe-eval';connect-src 'self';object-src 'none';font-src 'self' data:;img-src 'self' data: https://snipe-it.test https://avatars.githubusercontent.com/u/ https://www.google.com/images/branding/googlelogo/2x/ https://snipe-flysystem-public-test.s3-us-west-2.amazonaws.com https://secure.gravatar.com http://gravatar.com maps.google.com maps.gstatic.com *.googleapis.com"
|
||||
set-cookie: 'snipe-dev_local=HfR9HTwK8SuIGE2OuiaImTbUpBhp1HtUBHMeilHy; expires=Sat, 18 Oct 2025 20:42:53 GMT; Max-Age=720000; path=/; secure; httponly; samesite=lax'
|
||||
description: null
|
||||
custom: []
|
||||
responseFields: []
|
||||
auth:
|
||||
- headers
|
||||
- Authorization
|
||||
- 'Bearer 6g43cv8PD1aE5beadkZfhV6'
|
||||
controller: null
|
||||
method: null
|
||||
route: null
|
||||
custom: []
|
||||
-
|
||||
httpMethods:
|
||||
- GET
|
||||
uri: 'api/v1/{object_type}/{id}/files/{file_id}'
|
||||
metadata:
|
||||
groupName: Files
|
||||
groupDescription: ''
|
||||
subgroup: ''
|
||||
subgroupDescription: ''
|
||||
title: 'Display File'
|
||||
description: ''
|
||||
authenticated: true
|
||||
deprecated: false
|
||||
custom: []
|
||||
headers:
|
||||
Authorization: 'Bearer 6g43cv8PD1aE5beadkZfhV6'
|
||||
Content-Type: application/json
|
||||
Accept: application/json
|
||||
urlParameters:
|
||||
object_type:
|
||||
name: object_type
|
||||
description: ''
|
||||
required: true
|
||||
example: accessories|assets|components|consumables|hardware|licenses|locations|maintenances|models|users
|
||||
type: string
|
||||
enumValues: []
|
||||
exampleWasSpecified: false
|
||||
nullable: false
|
||||
custom: []
|
||||
id:
|
||||
name: id
|
||||
description: 'The ID of the {object type}.'
|
||||
required: true
|
||||
example: architecto
|
||||
type: string
|
||||
enumValues: []
|
||||
exampleWasSpecified: false
|
||||
nullable: false
|
||||
custom: []
|
||||
file_id:
|
||||
name: file_id
|
||||
description: 'The ID of the file.'
|
||||
required: true
|
||||
example: architecto
|
||||
type: string
|
||||
enumValues: []
|
||||
exampleWasSpecified: false
|
||||
nullable: false
|
||||
custom: []
|
||||
cleanUrlParameters:
|
||||
object_type: accessories|assets|components|consumables|hardware|licenses|locations|maintenances|models|users
|
||||
id: architecto
|
||||
file_id: architecto
|
||||
queryParameters: []
|
||||
cleanQueryParameters: []
|
||||
bodyParameters: []
|
||||
cleanBodyParameters: []
|
||||
fileParameters: []
|
||||
responses:
|
||||
-
|
||||
status: 401
|
||||
content: '{"error":"Unauthorized or unauthenticated."}'
|
||||
headers:
|
||||
cache-control: 'max-age=0, must-revalidate, no-cache, no-store, private'
|
||||
content-type: application/json
|
||||
vary: Origin
|
||||
pragma: no-cache
|
||||
expires: 'Sun, 02 Jan 1990 00:00:00 GMT'
|
||||
x-content-type-options: nosniff
|
||||
feature-policy: "accelerometer 'none';autoplay 'none';camera 'none';display-capture 'none';document-domain 'none';encrypted-media 'none';fullscreen 'none';geolocation 'none';sync-xhr 'none';usb 'none';xr-spatial-tracking 'none'"
|
||||
referrer-policy: same-origin
|
||||
content-security-policy: "default-src 'self';style-src 'self' 'unsafe-inline';script-src 'self' 'unsafe-inline' 'unsafe-eval';connect-src 'self';object-src 'none';font-src 'self' data:;img-src 'self' data: https://snipe-it.test https://avatars.githubusercontent.com/u/ https://www.google.com/images/branding/googlelogo/2x/ https://snipe-flysystem-public-test.s3-us-west-2.amazonaws.com https://secure.gravatar.com http://gravatar.com maps.google.com maps.gstatic.com *.googleapis.com"
|
||||
set-cookie: 'snipe-dev_local=N688uqN5BWG2WKvT3v6TxAJAl1Il05lzaTycQ40x; expires=Sat, 18 Oct 2025 20:42:53 GMT; Max-Age=720000; path=/; secure; httponly; samesite=lax'
|
||||
description: null
|
||||
custom: []
|
||||
responseFields: []
|
||||
auth:
|
||||
- headers
|
||||
- Authorization
|
||||
- 'Bearer 6g43cv8PD1aE5beadkZfhV6'
|
||||
controller: null
|
||||
method: null
|
||||
route: null
|
||||
custom: []
|
||||
-
|
||||
httpMethods:
|
||||
- POST
|
||||
uri: 'api/v1/{object_type}/{id}/files'
|
||||
metadata:
|
||||
groupName: Files
|
||||
groupDescription: ''
|
||||
subgroup: ''
|
||||
subgroupDescription: ''
|
||||
title: 'Upload File to an Object'
|
||||
description: ''
|
||||
authenticated: true
|
||||
deprecated: false
|
||||
custom: []
|
||||
headers:
|
||||
Authorization: 'Bearer 6g43cv8PD1aE5beadkZfhV6'
|
||||
Content-Type: application/json
|
||||
Accept: application/json
|
||||
urlParameters:
|
||||
object_type:
|
||||
name: object_type
|
||||
description: ''
|
||||
required: true
|
||||
example: accessories|assets|components|consumables|hardware|licenses|locations|maintenances|models|users
|
||||
type: string
|
||||
enumValues: []
|
||||
exampleWasSpecified: false
|
||||
nullable: false
|
||||
custom: []
|
||||
id:
|
||||
name: id
|
||||
description: 'The ID of the {object type}.'
|
||||
required: true
|
||||
example: architecto
|
||||
type: string
|
||||
enumValues: []
|
||||
exampleWasSpecified: false
|
||||
nullable: false
|
||||
custom: []
|
||||
cleanUrlParameters:
|
||||
object_type: accessories|assets|components|consumables|hardware|licenses|locations|maintenances|models|users
|
||||
id: architecto
|
||||
queryParameters: []
|
||||
cleanQueryParameters: []
|
||||
bodyParameters: []
|
||||
cleanBodyParameters: []
|
||||
fileParameters: []
|
||||
responses: []
|
||||
responseFields: []
|
||||
auth:
|
||||
- headers
|
||||
- Authorization
|
||||
- 'Bearer 6g43cv8PD1aE5beadkZfhV6'
|
||||
controller: null
|
||||
method: null
|
||||
route: null
|
||||
custom: []
|
||||
-
|
||||
httpMethods:
|
||||
- DELETE
|
||||
uri: 'api/v1/{object_type}/{id}/files/{file_id}/delete'
|
||||
metadata:
|
||||
groupName: Files
|
||||
groupDescription: ''
|
||||
subgroup: ''
|
||||
subgroupDescription: ''
|
||||
title: 'Delete File'
|
||||
description: ''
|
||||
authenticated: true
|
||||
deprecated: false
|
||||
custom: []
|
||||
headers:
|
||||
Authorization: 'Bearer 6g43cv8PD1aE5beadkZfhV6'
|
||||
Content-Type: application/json
|
||||
Accept: application/json
|
||||
urlParameters:
|
||||
object_type:
|
||||
name: object_type
|
||||
description: ''
|
||||
required: true
|
||||
example: accessories|assets|components|consumables|hardware|licenses|locations|maintenances|models|users
|
||||
type: string
|
||||
enumValues: []
|
||||
exampleWasSpecified: false
|
||||
nullable: false
|
||||
custom: []
|
||||
id:
|
||||
name: id
|
||||
description: 'The ID of the {object type}.'
|
||||
required: true
|
||||
example: architecto
|
||||
type: string
|
||||
enumValues: []
|
||||
exampleWasSpecified: false
|
||||
nullable: false
|
||||
custom: []
|
||||
file_id:
|
||||
name: file_id
|
||||
description: 'The ID of the file.'
|
||||
required: true
|
||||
example: architecto
|
||||
type: string
|
||||
enumValues: []
|
||||
exampleWasSpecified: false
|
||||
nullable: false
|
||||
custom: []
|
||||
cleanUrlParameters:
|
||||
object_type: accessories|assets|components|consumables|hardware|licenses|locations|maintenances|models|users
|
||||
id: architecto
|
||||
file_id: architecto
|
||||
queryParameters: []
|
||||
cleanQueryParameters: []
|
||||
bodyParameters: []
|
||||
cleanBodyParameters: []
|
||||
fileParameters: []
|
||||
responses: []
|
||||
responseFields: []
|
||||
auth:
|
||||
- headers
|
||||
- Authorization
|
||||
- 'Bearer 6g43cv8PD1aE5beadkZfhV6'
|
||||
controller: null
|
||||
method: null
|
||||
route: null
|
||||
custom: []
|
||||
@@ -1,53 +0,0 @@
|
||||
# To include an endpoint that isn't a part of your Laravel app (or belongs to a vendor package),
|
||||
# you can define it in a custom.*.yaml file, like this one.
|
||||
# Each custom file should contain an array of endpoints. Here's an example:
|
||||
# See https://scribe.knuckles.wtf/laravel/documenting/custom-endpoints#extra-sorting-groups-in-custom-endpoint-files for more options
|
||||
|
||||
#- httpMethods:
|
||||
# - POST
|
||||
# uri: api/doSomething/{param}
|
||||
# metadata:
|
||||
# groupName: The group the endpoint belongs to. Can be a new group or an existing group.
|
||||
# groupDescription: A description for the group. You don't need to set this for every endpoint; once is enough.
|
||||
# subgroup: You can add a subgroup, too.
|
||||
# title: Do something
|
||||
# description: 'This endpoint allows you to do something.'
|
||||
# authenticated: false
|
||||
# headers:
|
||||
# Content-Type: application/json
|
||||
# Accept: application/json
|
||||
# urlParameters:
|
||||
# param:
|
||||
# name: param
|
||||
# description: A URL param for no reason.
|
||||
# required: true
|
||||
# example: 2
|
||||
# type: integer
|
||||
# queryParameters:
|
||||
# speed:
|
||||
# name: speed
|
||||
# description: How fast the thing should be done. Can be `slow` or `fast`.
|
||||
# required: false
|
||||
# example: fast
|
||||
# type: string
|
||||
# bodyParameters:
|
||||
# something:
|
||||
# name: something
|
||||
# description: The things we should do.
|
||||
# required: true
|
||||
# example:
|
||||
# - string 1
|
||||
# - string 2
|
||||
# type: 'string[]'
|
||||
# responses:
|
||||
# - status: 200
|
||||
# description: 'When the thing was done smoothly.'
|
||||
# content: # Your response content can be an object, an array, a string or empty.
|
||||
# {
|
||||
# "hey": "ho ho ho"
|
||||
# }
|
||||
# responseFields:
|
||||
# hey:
|
||||
# name: hey
|
||||
# description: Who knows?
|
||||
# type: string # This is optional
|
||||
@@ -1,11 +0,0 @@
|
||||
# Introduction
|
||||
|
||||
This documentation aims to provide the information you need to work with the Snipe-IT JSON REST API.
|
||||
|
||||
<aside>
|
||||
<strong>Base URL</strong>: <code>https://snipe-it.test/api/v1</code>
|
||||
</aside>
|
||||
|
||||
<aside>As you scroll, you'll see code examples for working with the API in different programming languages in the dark area to the right (or as part of the content on mobile).
|
||||
You can switch the language used with the tabs at the top right (or from the nav menu at the top left on mobile).</aside>
|
||||
|
||||
+2
-1
@@ -68,7 +68,8 @@ Thanks goes to all of these wonderful people ([emoji key](https://github.com/ken
|
||||
| [<img src="https://avatars.githubusercontent.com/u/181059?v=4" width="110px;"/><br /><sub>Juan Font</sub>](https://github.com/juanfont)<br />[💻](https://github.com/snipe/snipe-it/commits?author=juanfont "Code") | [<img src="https://avatars.githubusercontent.com/u/13137708?v=4" width="110px;"/><br /><sub>Juho Taipale</sub>](https://github.com/juhotaipale)<br />[💻](https://github.com/snipe/snipe-it/commits?author=juhotaipale "Code") | [<img src="https://avatars.githubusercontent.com/u/1007419?v=4" width="110px;"/><br /><sub>Korvin Szanto</sub>](https://github.com/KorvinSzanto)<br />[💻](https://github.com/snipe/snipe-it/commits?author=KorvinSzanto "Code") | [<img src="https://avatars.githubusercontent.com/u/8513053?v=4" width="110px;"/><br /><sub>Lewis Foster</sub>](https://lewisfoster.foo/)<br />[💻](https://github.com/snipe/snipe-it/commits?author=sniff122 "Code") | [<img src="https://avatars.githubusercontent.com/u/33877541?v=4" width="110px;"/><br /><sub>Logan Swartzendruber</sub>](https://github.com/loganswartz)<br />[💻](https://github.com/snipe/snipe-it/commits?author=loganswartz "Code") | [<img src="https://avatars.githubusercontent.com/u/1156208?v=4" width="110px;"/><br /><sub>Lorenzo P.</sub>](https://github.com/lopezio)<br />[💻](https://github.com/snipe/snipe-it/commits?author=lopezio "Code") | [<img src="https://avatars.githubusercontent.com/u/33946590?v=4" width="110px;"/><br /><sub>Lukas Jung</sub>](https://github.com/m4us1ne)<br />[💻](https://github.com/snipe/snipe-it/commits?author=m4us1ne "Code") |
|
||||
| [<img src="https://avatars.githubusercontent.com/u/10965027?v=4" width="110px;"/><br /><sub>Ellie</sub>](https://leafedfox.xyz/)<br />[💻](https://github.com/snipe/snipe-it/commits?author=LeafedFox "Code") | [<img src="https://avatars.githubusercontent.com/u/20960555?v=4" width="110px;"/><br /><sub>GA Stamper</sub>](https://github.com/gastamper)<br />[💻](https://github.com/snipe/snipe-it/commits?author=gastamper "Code") | [<img src="https://avatars.githubusercontent.com/u/206553556?v=4" width="110px;"/><br /><sub>Guillaume Lefranc</sub>](https://github.com/gl-pup)<br />[💻](https://github.com/snipe/snipe-it/commits?author=gl-pup "Code") | [<img src="https://avatars.githubusercontent.com/u/733892?v=4" width="110px;"/><br /><sub>Hajo Möller</sub>](https://github.com/dasjoe)<br />[💻](https://github.com/snipe/snipe-it/commits?author=dasjoe "Code") | [<img src="https://avatars.githubusercontent.com/u/3420063?v=4" width="110px;"/><br /><sub>Istvan Basa</sub>](https://github.com/pottom)<br />[💻](https://github.com/snipe/snipe-it/commits?author=pottom "Code") | [<img src="https://avatars.githubusercontent.com/u/810824?v=4" width="110px;"/><br /><sub>JJ Asghar</sub>](https://jjasghar.github.io/)<br />[💻](https://github.com/snipe/snipe-it/commits?author=jjasghar "Code") | [<img src="https://avatars.githubusercontent.com/u/40404495?v=4" width="110px;"/><br /><sub>James E. Msenga</sub>](https://github.com/JemCdo)<br />[💻](https://github.com/snipe/snipe-it/commits?author=JemCdo "Code") |
|
||||
| [<img src="https://avatars.githubusercontent.com/u/6865786?v=4" width="110px;"/><br /><sub>Jan Felix Wiebe</sub>](https://github.com/jfwiebe)<br />[💻](https://github.com/snipe/snipe-it/commits?author=jfwiebe "Code") | [<img src="https://avatars.githubusercontent.com/u/43412008?v=4" width="110px;"/><br /><sub>Jo Drexl</sub>](https://www.nfon.com/)<br />[💻](https://github.com/snipe/snipe-it/commits?author=drexljo "Code") | [<img src="https://avatars.githubusercontent.com/u/4807843?v=4" width="110px;"/><br /><sub>Austin Sasko</sub>](https://github.com/austinsasko)<br />[💻](https://github.com/snipe/snipe-it/commits?author=austinsasko "Code") | [<img src="https://avatars.githubusercontent.com/u/4875039?v=4" width="110px;"/><br /><sub>Jasson</sub>](http://jassoncordones.github.io)<br />[💻](https://github.com/snipe/snipe-it/commits?author=JassonCordones "Code") | [<img src="https://avatars.githubusercontent.com/u/76069640?v=4" width="110px;"/><br /><sub>Okean</sub>](https://github.com/Tinyblargon)<br />[💻](https://github.com/snipe/snipe-it/commits?author=Tinyblargon "Code") | [<img src="https://avatars.githubusercontent.com/u/6515064?v=4" width="110px;"/><br /><sub>Alejandro Medrano</sub>](https://www.lst.tfo.upm.es/alejandro-medrano/)<br />[💻](https://github.com/snipe/snipe-it/commits?author=amedranogil "Code") | [<img src="https://avatars.githubusercontent.com/u/58696401?v=4" width="110px;"/><br /><sub>Lukas Kraic</sub>](https://github.com/lukaskraic)<br />[💻](https://github.com/snipe/snipe-it/commits?author=lukaskraic "Code") |
|
||||
| [<img src="https://avatars.githubusercontent.com/u/1571724?v=4" width="110px;"/><br /><sub>Герхард PICCORO Lenz McKAY </sub>](https://github-readme-stats.vercel.app/api?username=mckaygerhard)<br />[💻](https://github.com/snipe/snipe-it/commits?author=mckaygerhard "Code") | [<img src="https://avatars.githubusercontent.com/u/15015119?v=4" width="110px;"/><br /><sub>Johannes Pollitt</sub>](https://github.com/FlorestanII)<br />[💻](https://github.com/snipe/snipe-it/commits?author=FlorestanII "Code") | [<img src="https://avatars.githubusercontent.com/u/14185442?v=4" width="110px;"/><br /><sub>Michael Strobel</sub>](https://strobelm.de)<br />[💻](https://github.com/snipe/snipe-it/commits?author=strobelm "Code") | [<img src="https://avatars.githubusercontent.com/u/634790?v=4" width="110px;"/><br /><sub>Nicky West</sub>](http://nickwest.me)<br />[💻](https://github.com/snipe/snipe-it/commits?author=nickwest "Code") | [<img src="https://avatars.githubusercontent.com/u/1347327?v=4" width="110px;"/><br /><sub>akaspeh1</sub>](https://github.com/akaspeh1)<br />[💻](https://github.com/snipe/snipe-it/commits?author=akaspeh1 "Code") |
|
||||
| [<img src="https://avatars.githubusercontent.com/u/1571724?v=4" width="110px;"/><br /><sub>Герхард PICCORO Lenz McKAY </sub>](https://github-readme-stats.vercel.app/api?username=mckaygerhard)<br />[💻](https://github.com/snipe/snipe-it/commits?author=mckaygerhard "Code") | [<img src="https://avatars.githubusercontent.com/u/15015119?v=4" width="110px;"/><br /><sub>Johannes Pollitt</sub>](https://github.com/FlorestanII)<br />[💻](https://github.com/snipe/snipe-it/commits?author=FlorestanII "Code") | [<img src="https://avatars.githubusercontent.com/u/14185442?v=4" width="110px;"/><br /><sub>Michael Strobel</sub>](https://strobelm.de)<br />[💻](https://github.com/snipe/snipe-it/commits?author=strobelm "Code") | [<img src="https://avatars.githubusercontent.com/u/634790?v=4" width="110px;"/><br /><sub>Nicky West</sub>](http://nickwest.me)<br />[💻](https://github.com/snipe/snipe-it/commits?author=nickwest "Code") | [<img src="https://avatars.githubusercontent.com/u/1347327?v=4" width="110px;"/><br /><sub>akaspeh1</sub>](https://github.com/akaspeh1)<br />[💻](https://github.com/snipe/snipe-it/commits?author=akaspeh1 "Code") | [<img src="https://avatars.githubusercontent.com/u/2880129?v=4" width="110px;"/><br /><sub>Sebastian Marsching</sub>](http://sebastian.marsching.com/)<br />[💻](https://github.com/snipe/snipe-it/commits?author=smarsching "Code") | [<img src="https://avatars.githubusercontent.com/u/40658372?v=4" width="110px;"/><br /><sub>Mo</sub>](https://github.com/mohammad-ahmadi1)<br />[💻](https://github.com/snipe/snipe-it/commits?author=mohammad-ahmadi1 "Code") |
|
||||
| [<img src="https://avatars.githubusercontent.com/u/20994684?v=4" width="110px;"/><br /><sub>Owen V. Hayes</sub>](https://github.com/MarvelousAnything)<br />[💻](https://github.com/snipe/snipe-it/commits?author=MarvelousAnything "Code") |
|
||||
<!-- ALL-CONTRIBUTORS-LIST:END -->
|
||||
|
||||
This project follows the [all-contributors](https://github.com/kentcdodds/all-contributors) specification. Contributions of any kind welcome!
|
||||
|
||||
+30
-30
@@ -1,35 +1,35 @@
|
||||
FROM alpine:3.19
|
||||
FROM alpine:3.23
|
||||
# Apache + PHP
|
||||
RUN apk add --no-cache \
|
||||
apache2 \
|
||||
php82 \
|
||||
php82-common \
|
||||
php82-apache2 \
|
||||
php82-curl \
|
||||
php82-ldap \
|
||||
php82-mysqli \
|
||||
php82-gd \
|
||||
php82-xml \
|
||||
php82-mbstring \
|
||||
php82-zip \
|
||||
php82-ctype \
|
||||
php82-tokenizer \
|
||||
php82-pdo_mysql \
|
||||
php82-openssl \
|
||||
php82-bcmath \
|
||||
php82-phar \
|
||||
php82-json \
|
||||
php82-iconv \
|
||||
php82-fileinfo \
|
||||
php82-simplexml \
|
||||
php82-session \
|
||||
php82-dom \
|
||||
php82-xmlwriter \
|
||||
php82-xmlreader \
|
||||
php82-sodium \
|
||||
php82-redis \
|
||||
php82-pecl-memcached \
|
||||
php82-exif \
|
||||
php84 \
|
||||
php84-common \
|
||||
php84-apache2 \
|
||||
php84-curl \
|
||||
php84-ldap \
|
||||
php84-mysqli \
|
||||
php84-gd \
|
||||
php84-xml \
|
||||
php84-mbstring \
|
||||
php84-zip \
|
||||
php84-ctype \
|
||||
php84-tokenizer \
|
||||
php84-pdo_mysql \
|
||||
php84-openssl \
|
||||
php84-bcmath \
|
||||
php84-phar \
|
||||
php84-json \
|
||||
php84-iconv \
|
||||
php84-fileinfo \
|
||||
php84-simplexml \
|
||||
php84-session \
|
||||
php84-dom \
|
||||
php84-xmlwriter \
|
||||
php84-xmlreader \
|
||||
php84-sodium \
|
||||
php84-redis \
|
||||
php84-pecl-memcached \
|
||||
php84-exif \
|
||||
curl \
|
||||
wget \
|
||||
vim \
|
||||
@@ -42,7 +42,7 @@ COPY docker/column-statistics.cnf /etc/mysql/conf.d/column-statistics.cnf
|
||||
# Where apache's PID lives
|
||||
RUN mkdir -p /run/apache2 && chown apache:apache /run/apache2
|
||||
|
||||
RUN sed -i 's/variables_order = .*/variables_order = "EGPCS"/' /etc/php82/php.ini
|
||||
RUN sed -i 's/variables_order = .*/variables_order = "EGPCS"/' /etc/php84/php.ini
|
||||
COPY docker/000-default-2.4.conf /etc/apache2/conf.d/default.conf
|
||||
|
||||
# Enable mod_rewrite
|
||||
|
||||
@@ -78,11 +78,14 @@ Since the release of the JSON REST API, several third-party developers have been
|
||||
|
||||
#### Libraries & Modules
|
||||
|
||||
- [SnipeScheduler](https://github.com/JSY-Ben/SnipeScheduler) by [@JSY-Ben](https://github.com/JSY-Ben) - An Asset Reservation/Checkout System for Snipe-IT
|
||||
- [Snipe-IT MCP Server](https://github.com/jameshgordy/snipeit-mcp) by [@jameshgordy](https://github.com/jameshgordy) - A Model Context Protocol (MCP) server for managing Snipe-IT inventory systems
|
||||
- [SnipeSharp - .NET module in C#](https://github.com/barrycarey/SnipeSharp) by [@barrycarey](https://github.com/barrycarey)
|
||||
- [SnipeitPS](https://github.com/snazy2000/SnipeitPS) by [@snazy2000](https://github.com/snazy2000) - Powershell API Wrapper for Snipe-it
|
||||
- [jamf2snipe](https://github.com/grokability/jamf2snipe) - Python script to sync assets between a JAMFPro instance and a Snipe-IT instance
|
||||
- [jamf-snipe-rename](https://macblog.org/jamf-snipe-rename/) - Python script to rename computers in Jamf from Snipe-IT
|
||||
- [Snipe-IT plugin for Jira Service Desk](https://marketplace.atlassian.com/apps/1220964/snipe-it-for-jira)
|
||||
- [Rudder2Snipe](https://github.com/norbertoaquino/rudder2snipe) by [@norbertoaquino](https://github.com/norbertoaquino) - Rudder.io integration for Snipe-IT
|
||||
- [Python 3 CSV importer](https://github.com/gastamper/snipeit-csvimporter) - allows importing assets into Snipe-IT based on Item Name rather than Asset Tag.
|
||||
- [Snipe-IT Kubernetes Helm Chart](https://github.com/t3n/helm-charts/tree/master/snipeit) - For more information, [click here](https://hub.helm.sh/charts/t3n/snipeit).
|
||||
- [Snipe-IT Bulk Edit](https://github.com/bricelabelle/snipe-it-bulkedit) - Google Script files to use Google Sheets as a bulk checkout/checkin/edit tool for Snipe-IT.
|
||||
|
||||
@@ -0,0 +1,59 @@
|
||||
<?php
|
||||
|
||||
namespace App\Actions\Categories;
|
||||
|
||||
use App\Exceptions\ItemStillHasAccessories;
|
||||
use App\Exceptions\ItemStillHasAssetModels;
|
||||
use App\Exceptions\ItemStillHasAssets;
|
||||
use App\Exceptions\ItemStillHasComponents;
|
||||
use App\Exceptions\ItemStillHasConsumables;
|
||||
use App\Exceptions\ItemStillHasLicenses;
|
||||
use App\Models\Category;
|
||||
use Illuminate\Support\Facades\Storage;
|
||||
|
||||
class DestroyCategoryAction
|
||||
{
|
||||
/**
|
||||
* @throws ItemStillHasAssets
|
||||
* @throws ItemStillHasAssetModels
|
||||
* @throws ItemStillHasComponents
|
||||
* @throws ItemStillHasAccessories
|
||||
* @throws ItemStillHasLicenses
|
||||
* @throws ItemStillHasConsumables
|
||||
*/
|
||||
static function run(Category $category): bool
|
||||
{
|
||||
$category->loadCount([
|
||||
'assets as assets_count',
|
||||
'accessories as accessories_count',
|
||||
'consumables as consumables_count',
|
||||
'components as components_count',
|
||||
'licenses as licenses_count',
|
||||
'models as models_count'
|
||||
]);
|
||||
|
||||
if ($category->assets_count > 0) {
|
||||
throw new ItemStillHasAssets($category);
|
||||
}
|
||||
if ($category->accessories_count > 0) {
|
||||
throw new ItemStillHasAccessories($category);
|
||||
}
|
||||
if ($category->consumables_count > 0) {
|
||||
throw new ItemStillHasConsumables($category);
|
||||
}
|
||||
if ($category->components_count > 0) {
|
||||
throw new ItemStillHasComponents($category);
|
||||
}
|
||||
if ($category->licenses_count > 0) {
|
||||
throw new ItemStillHasLicenses($category);
|
||||
}
|
||||
if ($category->models_count > 0) {
|
||||
throw new ItemStillHasAssetModels($category);
|
||||
}
|
||||
|
||||
Storage::disk('public')->delete('categories'.'/'.$category->image);
|
||||
$category->delete();
|
||||
|
||||
return true;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,63 @@
|
||||
<?php
|
||||
|
||||
namespace App\Actions\Manufacturers;
|
||||
|
||||
use App\Exceptions\ItemStillHasAccessories;
|
||||
use App\Exceptions\ItemStillHasAssets;
|
||||
use App\Exceptions\ItemStillHasComponents;
|
||||
use App\Exceptions\ItemStillHasConsumables;
|
||||
use App\Exceptions\ItemStillHasLicenses;
|
||||
use App\Models\Manufacturer;
|
||||
use Illuminate\Support\Facades\Log;
|
||||
use Illuminate\Support\Facades\Storage;
|
||||
|
||||
class DeleteManufacturerAction
|
||||
{
|
||||
/**
|
||||
* @throws ItemStillHasAssets
|
||||
* @throws ItemStillHasComponents
|
||||
* @throws ItemStillHasAccessories
|
||||
* @throws ItemStillHasLicenses
|
||||
* @throws ItemStillHasConsumables
|
||||
*/
|
||||
static function run(Manufacturer $manufacturer): bool
|
||||
{
|
||||
$manufacturer->loadCount([
|
||||
'assets as assets_count',
|
||||
'accessories as accessories_count',
|
||||
'consumables as consumables_count',
|
||||
'components as components_count',
|
||||
'licenses as licenses_count',
|
||||
]);
|
||||
|
||||
if ($manufacturer->assets_count > 0) {
|
||||
throw new ItemStillHasAssets($manufacturer);
|
||||
}
|
||||
if ($manufacturer->accessories_count > 0) {
|
||||
throw new ItemStillHasAccessories($manufacturer);
|
||||
}
|
||||
if ($manufacturer->consumables_count > 0) {
|
||||
throw new ItemStillHasConsumables($manufacturer);
|
||||
}
|
||||
if ($manufacturer->components_count > 0) {
|
||||
throw new ItemStillHasComponents($manufacturer);
|
||||
}
|
||||
if ($manufacturer->licenses_count > 0) {
|
||||
throw new ItemStillHasLicenses($manufacturer);
|
||||
}
|
||||
|
||||
if ($manufacturer->image) {
|
||||
try {
|
||||
Storage::disk('public')->delete('manufacturers/'.$manufacturer->image);
|
||||
} catch (\Exception $e) {
|
||||
Log::info($e);
|
||||
}
|
||||
}
|
||||
|
||||
$manufacturer->delete();
|
||||
//dd($manufacturer);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,72 @@
|
||||
<?php
|
||||
|
||||
namespace App\Actions\Suppliers;
|
||||
|
||||
use App\Exceptions\ItemStillHasAccessories;
|
||||
use App\Exceptions\ItemStillHasComponents;
|
||||
use App\Exceptions\ItemStillHasConsumables;
|
||||
use App\Models\Supplier;
|
||||
use App\Exceptions\ItemStillHasAssets;
|
||||
use App\Exceptions\ItemStillHasMaintenances;
|
||||
use App\Exceptions\ItemStillHasLicenses;
|
||||
use Illuminate\Support\Facades\Log;
|
||||
use Illuminate\Support\Facades\Storage;
|
||||
|
||||
class DestroySupplierAction
|
||||
{
|
||||
/**
|
||||
*
|
||||
* @throws ItemStillHasLicenses
|
||||
* @throws ItemStillHasAssets
|
||||
* @throws ItemStillHasMaintenances
|
||||
* @throws ItemStillHasAccessories
|
||||
* @throws ItemStillHasConsumables
|
||||
* @throws ItemStillHasComponents
|
||||
*/
|
||||
static function run(Supplier $supplier): bool
|
||||
{
|
||||
$supplier->loadCount([
|
||||
'maintenances as maintenances_count',
|
||||
'assets as assets_count',
|
||||
'licenses as licenses_count',
|
||||
'accessories as accessories_count',
|
||||
'consumables as consumables_count',
|
||||
'components as components_count',
|
||||
]);
|
||||
if ($supplier->assets_count > 0) {
|
||||
throw new ItemStillHasAssets($supplier);
|
||||
}
|
||||
|
||||
if ($supplier->maintenances_count > 0) {
|
||||
throw new ItemStillHasMaintenances($supplier);
|
||||
}
|
||||
|
||||
if ($supplier->licenses_count > 0) {
|
||||
throw new ItemStillHasLicenses($supplier);
|
||||
}
|
||||
|
||||
if ($supplier->accessories_count > 0) {
|
||||
throw new ItemStillHasAccessories($supplier);
|
||||
}
|
||||
|
||||
if ($supplier->consumables_count > 0) {
|
||||
throw new ItemStillHasConsumables($supplier);
|
||||
}
|
||||
|
||||
if ($supplier->components_count > 0) {
|
||||
throw new ItemStillHasComponents($supplier);
|
||||
}
|
||||
|
||||
if ($supplier->image) {
|
||||
try {
|
||||
Storage::disk('public')->delete('suppliers/'.$supplier->image);
|
||||
} catch (\Exception $e) {
|
||||
Log::info($e->getMessage());
|
||||
}
|
||||
}
|
||||
|
||||
$supplier->delete();
|
||||
|
||||
return true;
|
||||
}
|
||||
}
|
||||
@@ -245,26 +245,26 @@ class LdapSync extends Command
|
||||
// Assign the mapped LDAP attributes for each user to the Snipe-IT user fields
|
||||
for ($i = 0; $i < $results['count']; $i++) {
|
||||
$item = [];
|
||||
$item['username'] = $results[$i][$ldap_map["username"]][0] ?? '';
|
||||
$item['display_name'] = $results[$i][$ldap_map["display_name"]][0] ?? '';
|
||||
$item['employee_number'] = $results[$i][$ldap_map["emp_num"]][0] ?? '';
|
||||
$item['lastname'] = $results[$i][$ldap_map["last_name"]][0] ?? '';
|
||||
$item['firstname'] = $results[$i][$ldap_map["first_name"]][0] ?? '';
|
||||
$item['email'] = $results[$i][$ldap_map["email"]][0] ?? '';
|
||||
$item['ldap_location_override'] = $results[$i]['ldap_location_override'] ?? '';
|
||||
$item['location_id'] = $results[$i]['location_id'] ?? '';
|
||||
$item['telephone'] = $results[$i][$ldap_map["phone"]][0] ?? '';
|
||||
$item['mobile'] = $results[$i][$ldap_map["mobile"]][0] ?? '';
|
||||
$item['jobtitle'] = $results[$i][$ldap_map["jobtitle"]][0] ?? '';
|
||||
$item['address'] = $results[$i][$ldap_map["address"]][0] ?? '';
|
||||
$item['city'] = $results[$i][$ldap_map["city"]][0] ?? '';
|
||||
$item['state'] = $results[$i][$ldap_map["state"]][0] ?? '';
|
||||
$item['country'] = $results[$i][$ldap_map["country"]][0] ?? '';
|
||||
$item['zip'] = $results[$i][$ldap_map["zip"]][0] ?? '';
|
||||
$item['department'] = $results[$i][$ldap_map["dept"]][0] ?? '';
|
||||
$item['manager'] = $results[$i][$ldap_map["manager"]][0] ?? '';
|
||||
$item['location'] = $results[$i][$ldap_map["location"]][0] ?? '';
|
||||
$location = $default_location; //initially, set '$location' to the default_location (which may just be `null`)
|
||||
$item['username'] = $results[$i][$ldap_map["username"]][0] ?? null;
|
||||
$item['display_name'] = $results[$i][$ldap_map["display_name"]][0] ?? null;
|
||||
$item['employee_number'] = $results[$i][$ldap_map["emp_num"]][0] ?? null;
|
||||
$item['lastname'] = $results[$i][$ldap_map["last_name"]][0] ?? null;
|
||||
$item['firstname'] = $results[$i][$ldap_map["first_name"]][0] ?? null;
|
||||
$item['email'] = $results[$i][$ldap_map["email"]][0] ?? null;
|
||||
$item['ldap_location_override'] = $results[$i]['ldap_location_override'] ?? null;
|
||||
$item['location_id'] = $results[$i]['location_id'] ?? null;
|
||||
$item['telephone'] = $results[$i][$ldap_map["phone"]][0] ?? null;
|
||||
$item['mobile'] = $results[$i][$ldap_map["mobile"]][0] ?? null;
|
||||
$item['jobtitle'] = $results[$i][$ldap_map["jobtitle"]][0] ?? null;
|
||||
$item['address'] = $results[$i][$ldap_map["address"]][0] ?? null;
|
||||
$item['city'] = $results[$i][$ldap_map["city"]][0] ?? null;
|
||||
$item['state'] = $results[$i][$ldap_map["state"]][0] ?? null;
|
||||
$item['country'] = $results[$i][$ldap_map["country"]][0] ?? null;
|
||||
$item['zip'] = $results[$i][$ldap_map["zip"]][0] ?? null;
|
||||
$item['department'] = $results[$i][$ldap_map["dept"]][0] ?? null;
|
||||
$item['manager'] = $results[$i][$ldap_map["manager"]][0] ?? null;
|
||||
$item['location'] = $results[$i][$ldap_map["location"]][0] ?? null;
|
||||
$location = $default_location; //initially, set '$location' to the default_location (which may just be null)
|
||||
|
||||
// ONLY if you are using the "ldap_location" option *AND* you have an actual result
|
||||
if ($ldap_map["location"] && $item['location']) {
|
||||
@@ -317,9 +317,21 @@ class LdapSync extends Command
|
||||
if($ldap_map["jobtitle"] != null){
|
||||
$user->jobtitle = $item['jobtitle'];
|
||||
}
|
||||
if($ldap_map["address"] != null){
|
||||
$user->address = $item['address'];
|
||||
}
|
||||
if($ldap_map["city"] != null){
|
||||
$user->city = $item['city'];
|
||||
}
|
||||
if($ldap_map["state"] != null){
|
||||
$user->state = $item['state'];
|
||||
}
|
||||
if($ldap_map["country"] != null){
|
||||
$user->country = $item['country'];
|
||||
}
|
||||
if($ldap_map["zip"] != null){
|
||||
$user->zip = $item['zip'];
|
||||
}
|
||||
if($ldap_map["dept"] != null){
|
||||
$user->department_id = $department->id;
|
||||
}
|
||||
@@ -452,6 +464,7 @@ class LdapSync extends Command
|
||||
$errors = '';
|
||||
|
||||
if ($user->save()) {
|
||||
$item['id'] = $user->id;
|
||||
$item['note'] = $item['createorupdate'];
|
||||
$item['status'] = 'success';
|
||||
if ($item['createorupdate'] === 'created' && $ldap_default_group) {
|
||||
|
||||
@@ -0,0 +1,74 @@
|
||||
<?php
|
||||
|
||||
namespace App\Console\Commands;
|
||||
|
||||
use App\Enums\ActionType;
|
||||
use Illuminate\Console\Command;
|
||||
use Illuminate\Support\Facades\DB;
|
||||
use Illuminate\Support\Facades\Log;
|
||||
use Illuminate\Support\Str;
|
||||
|
||||
class MigrateLicenseSeatQuantitiesInActionLogs extends Command
|
||||
{
|
||||
/**
|
||||
* The name and signature of the console command.
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
protected $signature = 'snipeit:migrate-license-seat-quantities-in-action-logs
|
||||
{--no-interaction: Do not ask any interactive question}';
|
||||
|
||||
/**
|
||||
* The console command description.
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
protected $description = 'Updates quantity field in action_logs table for license seats that were added or deleted.';
|
||||
|
||||
/**
|
||||
* Execute the console command.
|
||||
*/
|
||||
public function handle()
|
||||
{
|
||||
$query = DB::table('action_logs')
|
||||
->whereIn('action_type', [
|
||||
ActionType::AddSeats->value,
|
||||
ActionType::DeleteSeats->value,
|
||||
])
|
||||
->where('quantity', '=', 1)
|
||||
->orderBy('id');
|
||||
|
||||
$count = $query->count();
|
||||
|
||||
if ($count === 0) {
|
||||
$this->info('Nothing to update');
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
$this->info("{$count} logs to update");
|
||||
|
||||
if ($this->option('no-interaction') || $this->confirm('Update quantities in the action log?')) {
|
||||
$query->chunk(50, function ($logs) {
|
||||
$logs->each(function ($log) {
|
||||
$quantityFromNote = Str::between($log->note, "ed ", " seats");
|
||||
|
||||
if (!is_numeric($quantityFromNote)) {
|
||||
$this->error('Could not parse quantity from ID: {id}', ['id' => $log->id]);
|
||||
}
|
||||
|
||||
if ($log->quantity !== (int) $quantityFromNote) {
|
||||
$this->info(vsprintf('Updating id: %s to quantity %s', [
|
||||
'id' => $log->id,
|
||||
'new_quantity' => $quantityFromNote,
|
||||
]));
|
||||
|
||||
DB::table('action_logs')->where('id', $log->id)->update(['quantity' => (int) $quantityFromNote]);
|
||||
}
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
@@ -113,7 +113,7 @@ class MoveUploadsToNewDisk extends Command
|
||||
$filename = basename($private_upload[$x]);
|
||||
|
||||
try {
|
||||
Storage::put($private_type . '/' . $filename, file_get_contents($private_upload[$i]));
|
||||
Storage::put($private_type . '/' . $filename, file_get_contents($private_upload[$x]));
|
||||
$new_url = Storage::url($private_type . '/' . $filename, $filename);
|
||||
$this->info($type_count . '. PRIVATE: ' . $filename . ' was copied to ' . $new_url);
|
||||
} catch (\Exception $e) {
|
||||
|
||||
@@ -8,8 +8,6 @@ use Symfony\Component\Console\Input\InputOption;
|
||||
use Illuminate\Support\Facades\Log;
|
||||
use Symfony\Component\Console\Helper\ProgressIndicator;
|
||||
|
||||
ini_set('max_execution_time', env('IMPORT_TIME_LIMIT', 600)); //600 seconds = 10 minutes
|
||||
ini_set('memory_limit', env('IMPORT_MEMORY_LIMIT', '500M'));
|
||||
|
||||
/**
|
||||
* Class ObjectImportCommand
|
||||
@@ -35,6 +33,11 @@ class ObjectImportCommand extends Command
|
||||
*/
|
||||
protected ProgressIndicator $progressIndicator;
|
||||
|
||||
/**
|
||||
* Logger instance with configurable log path
|
||||
*/
|
||||
protected $logger;
|
||||
|
||||
/**
|
||||
* Create a new command instance.
|
||||
*
|
||||
@@ -52,10 +55,13 @@ class ObjectImportCommand extends Command
|
||||
*/
|
||||
public function handle()
|
||||
{
|
||||
ini_set('max_execution_time', env('IMPORT_TIME_LIMIT', 600)); //600 seconds = 10 minutes
|
||||
ini_set('memory_limit', env('IMPORT_MEMORY_LIMIT', '500M'));
|
||||
|
||||
$this->progressIndicator = new ProgressIndicator($this->output);
|
||||
|
||||
$filename = $this->argument('filename');
|
||||
$class = title_case($this->option('item-type'));
|
||||
$class = ucfirst($this->option('item-type'));
|
||||
$classString = "App\\Importer\\{$class}Importer";
|
||||
$importer = new $classString($filename);
|
||||
$importer->setCallbacks([$this, 'log'], [$this, 'progress'], [$this, 'errorCallback'])
|
||||
@@ -64,9 +70,11 @@ class ObjectImportCommand extends Command
|
||||
->setShouldNotify($this->option('send-welcome'))
|
||||
->setUsernameFormat($this->option('username_format'));
|
||||
|
||||
// This $logFile/useFiles() bit is currently broken, so commenting it out for now
|
||||
// $logFile = $this->option('logfile');
|
||||
// Log::useFiles($logFile);
|
||||
$this->logger = Log::build([
|
||||
'driver' => 'single',
|
||||
'path' => $this->option('logfile'),
|
||||
]);
|
||||
|
||||
$this->progressIndicator->start('======= Importing Items from '.$filename.' =========');
|
||||
|
||||
$importer->import();
|
||||
@@ -98,10 +106,10 @@ class ObjectImportCommand extends Command
|
||||
public function log($string, $level = 'info')
|
||||
{
|
||||
if ($level === 'warning') {
|
||||
Log::warning($string);
|
||||
$this->logger->warning($string);
|
||||
$this->comment($string);
|
||||
} else {
|
||||
Log::Info($string);
|
||||
$this->logger->Info($string);
|
||||
if ($this->option('verbose')) {
|
||||
$this->comment($string);
|
||||
}
|
||||
|
||||
@@ -0,0 +1,132 @@
|
||||
<?php
|
||||
|
||||
namespace App\Console\Commands;
|
||||
|
||||
use App\Models\CheckoutAcceptance;
|
||||
use Carbon\Carbon;
|
||||
use Illuminate\Console\Command;
|
||||
use Illuminate\Support\Facades\Storage;
|
||||
|
||||
class PurgeEulaPDFs extends Command
|
||||
{
|
||||
/**
|
||||
* The name and signature of the console command.
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
protected $signature = 'snipeit:purge-eula-pdfs
|
||||
{--older-than-days= : The number of days we should delete before }
|
||||
{--force : Skip the interactive yes/no prompt for confirmation}
|
||||
{--dryrun : Show the records that would be deleted but don\'t update the database or delete files from disk}
|
||||
{--with-output : Display the results in a table in your console}';
|
||||
|
||||
/**
|
||||
* The console command description.
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
protected $description = 'This purges signature files and EULAs from the system if they are older than the date passed with --older-than-days=.';
|
||||
|
||||
/**
|
||||
* Execute the console command.
|
||||
*/
|
||||
public function handle()
|
||||
{
|
||||
|
||||
$before = $this->option('older-than-days');
|
||||
|
||||
if (($before=='') || (!is_numeric($before))) {
|
||||
return $this->error('ERROR: You must pass a valid number for --older-than-days (example: snipeit:purge-eula-pdfs --older-than-days=365.)');
|
||||
}
|
||||
|
||||
$interval_date = Carbon::now()->subDays($before);
|
||||
$signature_path = 'private_uploads/signatures/';
|
||||
$eula_path = 'private_uploads/eula-pdfs/';
|
||||
|
||||
if (!Storage::exists($eula_path)) {
|
||||
$this->fail('The storage directory "'.$eula_path.'" does not exist. No EULA files will be deleted.');
|
||||
}
|
||||
|
||||
if (!Storage::exists($signature_path)) {
|
||||
$this->fail('The storage directory "'.$signature_path.'" does not exist. No signature files will be deleted.');
|
||||
}
|
||||
|
||||
|
||||
if ($this->option('dryrun')) {
|
||||
$this->info('This script is being run with the --dryrun option. No files or records will be deleted.');
|
||||
|
||||
}
|
||||
$acceptances = CheckoutAcceptance::HasFiles()->where('updated_at','<', $interval_date)->with('assignedTo')->get();
|
||||
|
||||
if (!$this->option('force')) {
|
||||
if ($this->confirm("\n****************************************************\nTHIS WILL DELETE ALL OF THE SIGNATURES AND EULA PDF FILES SINCE $interval_date. \nThere is NO undo! \n****************************************************\n\nDo you wish to continue? No backsies! [y|N]")) {
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
if ($acceptances->count() == 0) {
|
||||
return $this->warn('There are no item acceptances with signatures or EULA PDFs from before '.$interval_date);
|
||||
}
|
||||
|
||||
$this->info(number_format($acceptances->count()) . ' EULA PDFs from before '.$interval_date.' will be purged');
|
||||
|
||||
if (!$this->option('with-output')) {
|
||||
$this->info('Run this command with the --with-output option to see the full list in the console.');
|
||||
} else {
|
||||
$this->table(
|
||||
[
|
||||
trans('general.user'),
|
||||
trans('general.type'),
|
||||
trans('general.item'),
|
||||
trans('general.category'),
|
||||
trans('general.accepted_date'),
|
||||
trans('general.declined_date'),
|
||||
trans('general.signature'),
|
||||
trans('general.filename'),
|
||||
|
||||
],
|
||||
$acceptances->map(fn($acceptance) => [
|
||||
trans('general.user') => $acceptance->assignedTo->display_name,
|
||||
trans('general.type') => $acceptance->display_checkoutable_type,
|
||||
trans('general.item') => $acceptance->checkoutable_type::find($acceptance->checkoutable_id)->display_name,
|
||||
trans('general.category') => $acceptance->checkoutable_category_name,
|
||||
trans('general.accepted_date') => $acceptance->accepted_at,
|
||||
trans('general.declined_date') => $acceptance->declined_at,
|
||||
trans('general.signature') => $acceptance->signature_filename,
|
||||
trans('general.filename') => $acceptance->stored_eula_file,
|
||||
])
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
|
||||
foreach ($acceptances as $acceptance) {
|
||||
|
||||
$signature_file = $signature_path.$acceptance->signature_filename;
|
||||
$eula_file = $eula_path.$acceptance->stored_eula_file;
|
||||
|
||||
if (Storage::exists($signature_file)) {
|
||||
if (!$this->option('dryrun')) {
|
||||
Storage::delete($signature_file);
|
||||
}
|
||||
} else {
|
||||
$this->error('The file "'. $signature_file.'" does not exist.');
|
||||
}
|
||||
|
||||
|
||||
if (Storage::exists($eula_file)) {
|
||||
if (!$this->option('dryrun')) {
|
||||
Storage::delete($eula_file);
|
||||
}
|
||||
} else {
|
||||
$this->error('The file "'.$eula_file.'" does not exist.');
|
||||
}
|
||||
|
||||
if (!$this->option('dryrun')) {
|
||||
$acceptance->delete();
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
@@ -49,14 +49,15 @@ class ResetDemoSettings extends Command
|
||||
$settings->logo = 'snipe-logo.png';
|
||||
$settings->alert_email = 'service@snipe-it.io';
|
||||
$settings->login_note = 'Use `admin` / `password` to login to the demo.';
|
||||
$settings->header_color = null;
|
||||
$settings->header_color = '#3c8dbc';
|
||||
$settings->link_dark_color = '#5fa4cc';
|
||||
$settings->link_light_color = '#296282;';
|
||||
$settings->label2_2d_type = 'QRCODE';
|
||||
$settings->default_currency = 'USD';
|
||||
$settings->brand = 2;
|
||||
$settings->ldap_enabled = 0;
|
||||
$settings->full_multiple_companies_support = 0;
|
||||
$settings->label2_1d_type = 'C128';
|
||||
$settings->skin = '';
|
||||
$settings->email_domain = 'snipeitapp.com';
|
||||
$settings->email_format = 'filastname';
|
||||
$settings->username_format = 'filastname';
|
||||
@@ -80,6 +81,8 @@ class ResetDemoSettings extends Command
|
||||
|
||||
if ($user = User::where('username', '=', 'admin')->first()) {
|
||||
$user->locale = 'en-US';
|
||||
$user->enable_confetti = 1;
|
||||
$user->enable_sounds = 1;
|
||||
$user->save();
|
||||
}
|
||||
|
||||
|
||||
@@ -52,7 +52,7 @@ class SQLStreamer {
|
||||
/* we *could* have made the ^INSERT INTO blah VALUES$ turn on the capturing state, and closed it with
|
||||
a ^(blahblah);$ but it's cleaner to not have to manage the state machine. We're just going to
|
||||
assume that (blahblah), or (blahblah); are values for INSERT and are always acceptable. */
|
||||
"<^/\*!40101 SET NAMES '?[a-zA-Z0-9_-]+'? \*/;$>" => false, //using weird delimiters (<,>) for readability. allow quoted or unquoted charsets
|
||||
"<^/\*![0-9]{5} SET NAMES '?[a-zA-Z0-9_-]+'? \*/;$>" => false, //using weird delimiters (<,>) for readability. allow quoted or unquoted charsets
|
||||
"<^/\*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' \*/;$>" => false, //same, now handle zero-values
|
||||
];
|
||||
|
||||
|
||||
@@ -3,13 +3,18 @@
|
||||
namespace App\Console\Commands;
|
||||
|
||||
use App\Mail\UnacceptedAssetReminderMail;
|
||||
use App\Models\Accessory;
|
||||
use App\Models\Asset;
|
||||
use App\Models\CheckoutAcceptance;
|
||||
use App\Models\Component;
|
||||
use App\Models\Consumable;
|
||||
use App\Models\LicenseSeat;
|
||||
use App\Models\Setting;
|
||||
use App\Models\User;
|
||||
use App\Notifications\CheckoutAssetNotification;
|
||||
use App\Notifications\CurrentInventory;
|
||||
use Illuminate\Console\Command;
|
||||
use Illuminate\Database\Eloquent\Relations\MorphTo;
|
||||
use Illuminate\Support\Facades\Mail;
|
||||
|
||||
class SendAcceptanceReminder extends Command
|
||||
@@ -26,7 +31,7 @@ class SendAcceptanceReminder extends Command
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
protected $description = 'This will resend users with unaccepted assets a reminder to accept or decline them.';
|
||||
protected $description = 'This will resend users with unaccepted items a reminder to accept or decline them.';
|
||||
|
||||
/**
|
||||
* Create a new command instance.
|
||||
@@ -45,19 +50,30 @@ class SendAcceptanceReminder extends Command
|
||||
*/
|
||||
public function handle()
|
||||
{
|
||||
$pending = CheckoutAcceptance::pending()->where('checkoutable_type', 'App\Models\Asset')
|
||||
->whereHas('checkoutable', function($query) {
|
||||
$query->where('accepted_at', null)
|
||||
->where('declined_at', null);
|
||||
})
|
||||
->with(['assignedTo', 'checkoutable.assignedTo', 'checkoutable.model', 'checkoutable.adminuser'])
|
||||
->get();
|
||||
$pending = CheckoutAcceptance::query()
|
||||
->with([
|
||||
'checkoutable' => function (MorphTo $morph) {
|
||||
$morph->morphWith([
|
||||
Asset::class => ['model.category', 'assignedTo', 'adminuser', 'company', 'checkouts'],
|
||||
Accessory::class => ['category', 'company', 'checkouts'],
|
||||
LicenseSeat::class => ['user', 'license', 'checkouts'],
|
||||
Component::class => ['assignedTo', 'company', 'checkouts'],
|
||||
Consumable::class => ['company', 'checkouts'],
|
||||
]);
|
||||
},
|
||||
'assignedTo',
|
||||
])
|
||||
->whereHasMorph(
|
||||
'checkoutable',
|
||||
[Asset::class, Accessory::class, LicenseSeat::class, Component::class, Consumable::class],
|
||||
fn ($q) => $q->whereNull('accepted_at')
|
||||
->whereNull('declined_at')
|
||||
)
|
||||
->pending()
|
||||
->get();
|
||||
|
||||
$count = 0;
|
||||
$unacceptedAssetGroups = $pending
|
||||
->filter(function($acceptance) {
|
||||
return $acceptance->checkoutable_type == 'App\Models\Asset';
|
||||
})
|
||||
->map(function($acceptance) {
|
||||
return ['assetItem' => $acceptance->checkoutable, 'acceptance' => $acceptance];
|
||||
})
|
||||
|
||||
@@ -9,6 +9,8 @@ use App\Notifications\ExpectedCheckinAdminNotification;
|
||||
use App\Notifications\ExpectedCheckinNotification;
|
||||
use Carbon\Carbon;
|
||||
use Illuminate\Console\Command;
|
||||
use Illuminate\Support\Facades\Notification;
|
||||
use App\Helpers\Helper;
|
||||
|
||||
class SendExpectedCheckinAlerts extends Command
|
||||
{
|
||||
@@ -17,7 +19,7 @@ class SendExpectedCheckinAlerts extends Command
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
protected $name = 'snipeit:expected-checkin';
|
||||
protected $signature = 'snipeit:expected-checkin {--with-output : Display the results in a table in your console in addition to sending the email}';
|
||||
|
||||
/**
|
||||
* The console command description.
|
||||
@@ -42,19 +44,47 @@ class SendExpectedCheckinAlerts extends Command
|
||||
public function handle()
|
||||
{
|
||||
$settings = Setting::getSettings();
|
||||
$interval = $settings->audit_warning_days ?? 0;
|
||||
$interval = $settings->due_checkin_days ?? 0;
|
||||
$today = Carbon::now();
|
||||
$interval_date = $today->copy()->addDays($interval);
|
||||
|
||||
$count = 0;
|
||||
|
||||
if (!$this->option('with-output')) {
|
||||
$this->info('Run this command with the --with-output option to see the full list in the console.');
|
||||
}
|
||||
|
||||
$assets = Asset::whereNull('deleted_at')->DueOrOverdueForCheckin($settings)->orderBy('assets.expected_checkin', 'desc')->get();
|
||||
|
||||
$this->info($assets->count().' assets must be checked in on or before '.$interval_date.' is deadline');
|
||||
$this->info($assets->count().' assets must be checked on or before '.Helper::getFormattedDateObject($interval_date, 'date', false));
|
||||
|
||||
|
||||
foreach ($assets as $asset) {
|
||||
if ($asset->assignedTo && (isset($asset->assignedTo->email)) && ($asset->assignedTo->email!='') && $asset->checkedOutToUser()) {
|
||||
$this->info('Sending User ExpectedCheckinNotification to: '.$asset->assignedTo->email);
|
||||
$asset->assignedTo->notify((new ExpectedCheckinNotification($asset)));
|
||||
$count++;
|
||||
}
|
||||
}
|
||||
|
||||
if ($this->option('with-output')) {
|
||||
if (($assets) && ($assets->count() > 0) && ($settings->alert_email != '')) {
|
||||
$this->table(
|
||||
[
|
||||
trans('general.id'),
|
||||
trans('admin/hardware/form.tag'),
|
||||
trans('admin/hardware/form.model'),
|
||||
trans('general.model_no'),
|
||||
trans('general.purchase_date'),
|
||||
trans('admin/hardware/form.expected_checkin'),
|
||||
],
|
||||
$assets->map(fn($assets) => [
|
||||
trans('general.id') => $assets->id,
|
||||
trans('admin/hardware/form.tag') => $assets->asset_tag,
|
||||
trans('admin/hardware/form.model') => $assets->model->name,
|
||||
trans('general.model_no') => $assets->model->model_number,
|
||||
trans('general.purchase_date') => $assets->purchase_date_formatted,
|
||||
trans('admin/hardware/form.eol_date') => $assets->expected_checkin_formattedDate ? $assets->expected_checkin_formattedDate . ' (' . $assets->expected_checkin_diff_for_humans . ')' : '',
|
||||
])
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -63,10 +93,11 @@ class SendExpectedCheckinAlerts extends Command
|
||||
$recipients = collect(explode(',', $settings->alert_email))->map(function ($item) {
|
||||
return new AlertRecipient($item);
|
||||
});
|
||||
|
||||
$this->info('Sending Admin ExpectedCheckinNotification to: '.$settings->alert_email);
|
||||
\Notification::send($recipients, new ExpectedCheckinAdminNotification($assets));
|
||||
Notification::send($recipients, new ExpectedCheckinAdminNotification($assets));
|
||||
|
||||
}
|
||||
|
||||
$this->info('Sent checkin reminders to to '.$count.' users.');
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -14,11 +14,11 @@ use Illuminate\Support\Facades\Mail;
|
||||
class SendExpirationAlerts extends Command
|
||||
{
|
||||
/**
|
||||
* The console command name.
|
||||
*
|
||||
* The name and signature of the console command.
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
protected $name = 'snipeit:expiring-alerts';
|
||||
protected $signature = 'snipeit:expiring-alerts {--expired-licenses}';
|
||||
|
||||
/**
|
||||
* The console command description.
|
||||
@@ -55,6 +55,8 @@ class SendExpirationAlerts extends Command
|
||||
// Expiring Assets
|
||||
$assets = Asset::getExpiringWarrantyOrEol($alert_interval);
|
||||
|
||||
$assets->load(['assignedTo', 'supplier']);
|
||||
|
||||
if ($assets->count() > 0) {
|
||||
|
||||
Mail::to($recipients)->send(new ExpiringAssetsMail($assets, $alert_interval));
|
||||
@@ -85,7 +87,7 @@ class SendExpirationAlerts extends Command
|
||||
}
|
||||
|
||||
// Expiring licenses
|
||||
$licenses = License::query()->ExpiringLicenses($alert_interval)
|
||||
$licenses = License::query()->ExpiringLicenses($alert_interval, $this->option('expired-licenses'))
|
||||
->with('manufacturer','category')
|
||||
->orderBy('expiration_date', 'ASC')
|
||||
->orderBy('termination_date', 'ASC')
|
||||
@@ -107,7 +109,7 @@ class SendExpirationAlerts extends Command
|
||||
trans('general.name') => $item->name,
|
||||
trans('general.purchase_date') => $item->purchase_date_formatted,
|
||||
trans('admin/licenses/form.expiration') => $item->expires_formatted_date,
|
||||
trans('mail.expires') => $item->expires_diff_for_humans,
|
||||
trans('mail.expires') => $item->expires_formatted_date ? $item->expires_diff_for_humans : '',
|
||||
trans('admin/licenses/form.termination_date') => $item->terminates_formatted_date,
|
||||
trans('mail.terminates') => $item->terminates_diff_for_humans
|
||||
])
|
||||
|
||||
@@ -52,7 +52,9 @@ class SendInventoryAlerts extends Command
|
||||
return new AlertRecipient($item);
|
||||
});
|
||||
|
||||
\Notification::send($recipients, new InventoryAlert($items, $settings->alert_threshold));
|
||||
Notification::send($recipients, new InventoryAlert($items, $settings->alert_threshold));
|
||||
} else {
|
||||
$this->info('No low inventory items found. No mail sent.');
|
||||
}
|
||||
} else {
|
||||
if ($settings->alert_email == '') {
|
||||
|
||||
@@ -16,7 +16,7 @@ class SendUpcomingAuditReport extends Command
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
protected $signature = 'snipeit:upcoming-audits';
|
||||
protected $signature = 'snipeit:upcoming-audits {--with-output : Display the results in a table in your console in addition to sending the email}';
|
||||
|
||||
/**
|
||||
* The console command description.
|
||||
@@ -47,43 +47,69 @@ class SendUpcomingAuditReport extends Command
|
||||
$today = Carbon::now();
|
||||
$interval_date = $today->copy()->addDays($interval);
|
||||
|
||||
$assets = Asset::whereNull('deleted_at')->dueOrOverdueForAudit($settings)->orderBy('assets.next_audit_date', 'asc')->get();
|
||||
$this->info($assets->count() . ' assets must be audited in on or before ' . $interval_date . ' is deadline');
|
||||
|
||||
|
||||
if ((count($assets) !== 0) && ($assets->count() > 0) && ($settings->alert_email != '')) {
|
||||
// Send a rollup to the admin, if settings dictate
|
||||
$recipients = collect(explode(',', $settings->alert_email))
|
||||
->map(fn($item) => trim($item))
|
||||
->filter(fn($item) => !empty($item))
|
||||
->all();
|
||||
|
||||
|
||||
$this->info('Sending Admin SendUpcomingAuditNotification to: ' . $settings->alert_email);
|
||||
Mail::to($recipients)->send(new SendUpcomingAuditMail($assets, $settings->audit_warning_days));
|
||||
|
||||
$this->table(
|
||||
[
|
||||
trans('general.id'),
|
||||
trans('general.name'),
|
||||
trans('general.last_audit'),
|
||||
trans('general.next_audit_date'),
|
||||
trans('mail.Days'),
|
||||
trans('mail.supplier'),
|
||||
trans('mail.assigned_to'),
|
||||
|
||||
],
|
||||
$assets->map(fn($item) => [
|
||||
trans('general.id') => $item->id,
|
||||
trans('general.name') => $item->display_name,
|
||||
trans('general.last_audit') => $item->last_audit_formatted_date,
|
||||
trans('general.next_audit_date') => $item->next_audit_formatted_date,
|
||||
trans('mail.Days') => round($item->next_audit_diff_in_days),
|
||||
trans('mail.supplier') => $item->supplier ? $item->supplier->name : '',
|
||||
trans('mail.assigned_to') => $item->assignedTo ? $item->assignedTo->display_name : '',
|
||||
])
|
||||
);
|
||||
$assets_query = Asset::whereNull('deleted_at')->dueOrOverdueForAudit($settings)->orderBy('assets.next_audit_date', 'asc')->with('supplier');
|
||||
$asset_count = $assets_query->count();
|
||||
$this->info(number_format($asset_count) . ' assets must be audited on or before ' . $interval_date);
|
||||
if (!$this->option('with-output')) {
|
||||
$this->info('Run this command with the --with-output option to see the full list in the console.');
|
||||
}
|
||||
|
||||
|
||||
if ($asset_count > 0) {
|
||||
|
||||
$assets_for_email = $assets_query->limit(30)->get();
|
||||
|
||||
// Send a rollup to the admin, if settings dictate
|
||||
if ($settings->alert_email != '') {
|
||||
|
||||
$recipients = collect(explode(',', $settings->alert_email))
|
||||
->map(fn($item) => trim($item))
|
||||
->filter(fn($item) => !empty($item))
|
||||
->all();
|
||||
|
||||
Mail::to($recipients)->send(new SendUpcomingAuditMail($assets_for_email, $settings->audit_warning_days, $asset_count));
|
||||
$this->info('Audit notification sent to: ' . $settings->alert_email);
|
||||
|
||||
} else {
|
||||
$this->info('There is no admin alert email set so no email will be sent.');
|
||||
}
|
||||
|
||||
|
||||
|
||||
if ($this->option('with-output')) {
|
||||
|
||||
|
||||
// Get the full list if the user wants output in the console
|
||||
$assets_for_output = $assets_query->limit(null)->get();
|
||||
|
||||
$this->table(
|
||||
[
|
||||
trans('general.id'),
|
||||
trans('general.name'),
|
||||
trans('general.last_audit'),
|
||||
trans('general.next_audit_date'),
|
||||
trans('mail.Days'),
|
||||
trans('mail.supplier'),
|
||||
trans('mail.assigned_to'),
|
||||
|
||||
],
|
||||
$assets_for_output->map(fn($item) => [
|
||||
trans('general.id') => $item->id,
|
||||
trans('general.name') => $item->display_name,
|
||||
trans('general.last_audit') => $item->last_audit_formatted_date,
|
||||
trans('general.next_audit_date') => $item->next_audit_formatted_date,
|
||||
trans('mail.Days') => round($item->next_audit_diff_in_days),
|
||||
trans('mail.supplier') => $item->supplier ? $item->supplier->name : '',
|
||||
trans('mail.assigned_to') => $item->assignedTo ? $item->assignedTo->display_name : '',
|
||||
])
|
||||
);
|
||||
}
|
||||
|
||||
} else {
|
||||
$this->info('There are no assets due for audit in the next ' . $interval . ' days.');
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -37,6 +37,8 @@ class SystemBackup extends Command
|
||||
*/
|
||||
public function handle()
|
||||
{
|
||||
ini_set('max_execution_time', env('BACKUP_TIME_LIMIT', 600)); //600 seconds = 10 minutes
|
||||
|
||||
if ($this->option('filename')) {
|
||||
$filename = $this->option('filename');
|
||||
|
||||
|
||||
@@ -0,0 +1,33 @@
|
||||
<?php
|
||||
|
||||
namespace App\Enums;
|
||||
enum ActionType: string
|
||||
{
|
||||
// General
|
||||
case Create = 'create';
|
||||
case Update = 'update';
|
||||
case Delete = 'delete';
|
||||
case Restore = 'restore';
|
||||
|
||||
// Assets/Accessories/Components/Licenses/Consumables
|
||||
case Checkout = 'checkout';
|
||||
case CheckinFrom = 'checkin from';
|
||||
case Requested = 'requested';
|
||||
case RequestCanceled = 'request canceled';
|
||||
case Accepted = 'accepted';
|
||||
case Declined = 'declined';
|
||||
case Audit = 'audit';
|
||||
case NoteAdded = 'note added';
|
||||
|
||||
// Users
|
||||
case TwoFactorReset = '2FA reset';
|
||||
case Merged = 'merged';
|
||||
|
||||
// Licenses
|
||||
case DeleteSeats = 'delete seats';
|
||||
case AddSeats = 'add seats';
|
||||
|
||||
// File Uploads
|
||||
case Uploaded = 'uploaded';
|
||||
case UploadDeleted = 'upload deleted';
|
||||
}
|
||||
@@ -15,18 +15,20 @@ class CheckoutableCheckedOut
|
||||
public $checkedOutBy;
|
||||
public $note;
|
||||
public $originalValues;
|
||||
public int $quantity;
|
||||
|
||||
/**
|
||||
* Create a new event instance.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function __construct($checkoutable, $checkedOutTo, User $checkedOutBy, $note, $originalValues = [])
|
||||
public function __construct($checkoutable, $checkedOutTo, User $checkedOutBy, $note, $originalValues = [], $quantity = 1)
|
||||
{
|
||||
$this->checkoutable = $checkoutable;
|
||||
$this->checkedOutTo = $checkedOutTo;
|
||||
$this->checkedOutBy = $checkedOutBy;
|
||||
$this->note = $note;
|
||||
$this->originalValues = $originalValues;
|
||||
$this->quantity = $quantity;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,24 @@
|
||||
<?php
|
||||
|
||||
namespace App\Events;
|
||||
|
||||
use App\Models\User;
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
use Illuminate\Foundation\Events\Dispatchable;
|
||||
use Illuminate\Queue\SerializesModels;
|
||||
use Illuminate\Support\Collection;
|
||||
|
||||
class CheckoutablesCheckedOutInBulk
|
||||
{
|
||||
use Dispatchable, SerializesModels;
|
||||
|
||||
public function __construct(
|
||||
public Collection $assets,
|
||||
public Model $target,
|
||||
public User $admin,
|
||||
public string $checkout_at,
|
||||
public string $expected_checkin,
|
||||
public string $note,
|
||||
) {
|
||||
}
|
||||
}
|
||||
@@ -94,7 +94,7 @@ class Handler extends ExceptionHandler
|
||||
|
||||
// Handle API requests that fail because Carbon cannot parse the date on validation (when a submitted date value is definitely not a date)
|
||||
if ($e instanceof InvalidFormatException) {
|
||||
return response()->json(Helper::formatStandardApiResponse('error', null, trans('validation.date', ['attribute' => 'date'])), config('app.validation_status_code'));
|
||||
return response()->json(Helper::formatStandardApiResponse('error', null, trans('validation.date', ['attribute' => 'date'])), 200);
|
||||
}
|
||||
|
||||
// Handle API requests that fail because the model doesn't exist
|
||||
@@ -124,7 +124,7 @@ class Handler extends ExceptionHandler
|
||||
// never even get to the controller where we normally nicely format JSON responses
|
||||
if ($e instanceof ValidationException) {
|
||||
$response = $this->invalidJson($request, $e);
|
||||
return response()->json(Helper::formatStandardApiResponse('error', null, $e->errors()), config('app.validation_status_code'));
|
||||
return response()->json(Helper::formatStandardApiResponse('error', null, $e->errors()), 200);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -162,6 +162,8 @@ class Handler extends ExceptionHandler
|
||||
$route = 'licenses.index';
|
||||
} elseif (($route === 'customfieldsets.index') || ($route === 'customfields.index')) {
|
||||
$route = 'fields.index';
|
||||
} elseif ($route == 'actionlogs.index') {
|
||||
$route = 'home';
|
||||
}
|
||||
|
||||
return redirect()
|
||||
@@ -198,7 +200,7 @@ class Handler extends ExceptionHandler
|
||||
|
||||
protected function invalidJson($request, ValidationException $exception)
|
||||
{
|
||||
return response()->json(Helper::formatStandardApiResponse('error', null, $exception->errors()), config('app.validation_status_code'));
|
||||
return response()->json(Helper::formatStandardApiResponse('error', null, $exception->errors()), 200);
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1,10 @@
|
||||
<?php
|
||||
|
||||
namespace App\Exceptions;
|
||||
|
||||
use Exception;
|
||||
|
||||
class ItemStillHasAccessories extends ItemStillHasChildren
|
||||
{
|
||||
//
|
||||
}
|
||||
@@ -0,0 +1,10 @@
|
||||
<?php
|
||||
|
||||
namespace App\Exceptions;
|
||||
|
||||
use Exception;
|
||||
|
||||
class ItemStillHasAssetModels extends ItemStillHasChildren
|
||||
{
|
||||
//
|
||||
}
|
||||
@@ -0,0 +1,9 @@
|
||||
<?php
|
||||
|
||||
namespace App\Exceptions;
|
||||
|
||||
use Exception;
|
||||
|
||||
class ItemStillHasAssets extends ItemStillHasChildren
|
||||
{
|
||||
}
|
||||
@@ -0,0 +1,14 @@
|
||||
<?php
|
||||
|
||||
namespace App\Exceptions;
|
||||
|
||||
use Exception;
|
||||
|
||||
class ItemStillHasChildren extends Exception
|
||||
{
|
||||
//public function __construct($message, $code = 0, Exception $previous = null, $parent, $children)
|
||||
//{
|
||||
// trans()
|
||||
//
|
||||
//}
|
||||
}
|
||||
@@ -0,0 +1,10 @@
|
||||
<?php
|
||||
|
||||
namespace App\Exceptions;
|
||||
|
||||
use Exception;
|
||||
|
||||
class ItemStillHasComponents extends ItemStillHasChildren
|
||||
{
|
||||
//
|
||||
}
|
||||
@@ -0,0 +1,10 @@
|
||||
<?php
|
||||
|
||||
namespace App\Exceptions;
|
||||
|
||||
use Exception;
|
||||
|
||||
class ItemStillHasConsumables extends ItemStillHasChildren
|
||||
{
|
||||
//
|
||||
}
|
||||
@@ -0,0 +1,10 @@
|
||||
<?php
|
||||
|
||||
namespace App\Exceptions;
|
||||
|
||||
use Exception;
|
||||
|
||||
class ItemStillHasLicenses extends ItemStillHasChildren
|
||||
{
|
||||
//
|
||||
}
|
||||
@@ -0,0 +1,10 @@
|
||||
<?php
|
||||
|
||||
namespace App\Exceptions;
|
||||
|
||||
use Exception;
|
||||
|
||||
class ItemStillHasMaintenances extends ItemStillHasChildren
|
||||
{
|
||||
//
|
||||
}
|
||||
+105
-50
@@ -2,6 +2,7 @@
|
||||
|
||||
namespace App\Helpers;
|
||||
use App\Models\Accessory;
|
||||
use App\Models\Actionlog;
|
||||
use App\Models\Asset;
|
||||
use App\Models\AssetModel;
|
||||
use App\Models\Component;
|
||||
@@ -13,6 +14,7 @@ use App\Models\Setting;
|
||||
use App\Models\Statuslabel;
|
||||
use App\Models\License;
|
||||
use App\Models\Location;
|
||||
use Illuminate\Database\Eloquent\Collection;
|
||||
use Illuminate\Http\RedirectResponse;
|
||||
use Illuminate\Support\Facades\Crypt;
|
||||
use Illuminate\Contracts\Encryption\DecryptException;
|
||||
@@ -773,18 +775,18 @@ class Helper
|
||||
public static function checkLowInventory()
|
||||
{
|
||||
$alert_threshold = \App\Models\Setting::getSettings()->alert_threshold;
|
||||
$consumables = Consumable::withCount('consumableAssignments as consumable_assignments_count')->whereNotNull('min_amt')->get();
|
||||
$consumables = Consumable::withCount('consumableAssignments as consumables_users_count')->whereNotNull('min_amt')->get();
|
||||
$accessories = Accessory::withCount('checkouts as checkouts_count')->whereNotNull('min_amt')->get();
|
||||
$components = Component::whereNotNull('min_amt')->get();
|
||||
$asset_models = AssetModel::where('min_amt', '>', 0)->get();
|
||||
$licenses = License::where('min_amt', '>', 0)->get();
|
||||
$components = Component::withCount('assets as sum_unconstrained_assets')->whereNotNull('min_amt')->get();
|
||||
$asset_models = AssetModel::where('min_amt', '>', 0)->withCount(['availableAssets', 'assets'])->get();
|
||||
$licenses = License::withCount('availCount as licenses_available')->where('min_amt', '>', 0)->get();
|
||||
|
||||
$items_array = [];
|
||||
$all_count = 0;
|
||||
|
||||
foreach ($consumables as $consumable) {
|
||||
$avail = $consumable->numRemaining();
|
||||
if ($avail < ($consumable->min_amt) + $alert_threshold) {
|
||||
if ($avail <= ($consumable->min_amt) + $alert_threshold) {
|
||||
if ($consumable->qty > 0) {
|
||||
$percent = number_format((($avail / $consumable->qty) * 100), 0);
|
||||
} else {
|
||||
@@ -803,7 +805,7 @@ class Helper
|
||||
|
||||
foreach ($accessories as $accessory) {
|
||||
$avail = $accessory->qty - $accessory->checkouts_count;
|
||||
if ($avail < ($accessory->min_amt) + $alert_threshold) {
|
||||
if ($avail <= ($accessory->min_amt) + $alert_threshold) {
|
||||
if ($accessory->qty > 0) {
|
||||
$percent = number_format((($avail / $accessory->qty) * 100), 0);
|
||||
} else {
|
||||
@@ -822,7 +824,7 @@ class Helper
|
||||
|
||||
foreach ($components as $component) {
|
||||
$avail = $component->numRemaining();
|
||||
if ($avail < ($component->min_amt) + $alert_threshold) {
|
||||
if ($avail <= ($component->min_amt) + $alert_threshold) {
|
||||
if ($component->qty > 0) {
|
||||
$percent = number_format((($avail / $component->qty) * 100), 0);
|
||||
} else {
|
||||
@@ -842,10 +844,10 @@ class Helper
|
||||
foreach ($asset_models as $asset_model){
|
||||
|
||||
$asset = new Asset();
|
||||
$total_owned = $asset->where('model_id', '=', $asset_model->id)->count();
|
||||
$avail = $asset->where('model_id', '=', $asset_model->id)->whereNull('assigned_to')->count();
|
||||
$total_owned = $asset_model->assets_count; //requires the withCount() clause in the initial query!
|
||||
$avail = $asset_model->available_assets_count; //requires the withCount() clause in the initial query!
|
||||
|
||||
if ($avail < ($asset_model->min_amt) + $alert_threshold) {
|
||||
if ($avail <= ($asset_model->min_amt) + $alert_threshold) {
|
||||
if ($avail > 0) {
|
||||
$percent = number_format((($avail / $total_owned) * 100), 0);
|
||||
} else {
|
||||
@@ -863,7 +865,7 @@ class Helper
|
||||
|
||||
foreach ($licenses as $license){
|
||||
$avail = $license->remaincount();
|
||||
if ($avail < ($license->min_amt) + $alert_threshold) {
|
||||
if ($avail <= ($license->min_amt) + $alert_threshold) {
|
||||
if ($avail > 0) {
|
||||
$percent = number_format((($avail / $license->min_amt) * 100), 0);
|
||||
} else {
|
||||
@@ -1384,49 +1386,24 @@ class Helper
|
||||
* @return string[]
|
||||
*/
|
||||
public static function SettingUrls(){
|
||||
$settings=['#','fields.index', 'statuslabels.index', 'models.index', 'categories.index', 'manufacturers.index', 'suppliers.index', 'departments.index', 'locations.index', 'companies.index', 'depreciations.index'];
|
||||
$settings=[
|
||||
'#',
|
||||
'fields*',
|
||||
'statuslabels*',
|
||||
'models*',
|
||||
'categories*',
|
||||
'manufacturers*',
|
||||
'suppliers*',
|
||||
'departments*',
|
||||
'locations*',
|
||||
'companies*',
|
||||
'depreciations*'
|
||||
];
|
||||
|
||||
return $settings;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Generic helper (largely used by livewire right now) that returns the font-awesome icon
|
||||
* for the object type.
|
||||
*
|
||||
* @author A. Gianotto <snipe@snipe.net>
|
||||
* @since 6.1.0
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public static function iconTypeByItem($item) {
|
||||
|
||||
switch ($item) {
|
||||
case 'asset':
|
||||
return 'fas fa-barcode';
|
||||
case 'accessory':
|
||||
return 'fas fa-keyboard';
|
||||
case 'component':
|
||||
return 'fas fa-hdd';
|
||||
case 'consumable':
|
||||
return 'fas fa-tint';
|
||||
case 'license':
|
||||
return 'far fa-save';
|
||||
case 'location':
|
||||
return 'fas fa-map-marker-alt';
|
||||
case 'user':
|
||||
return 'fas fa-user';
|
||||
case 'supplier':
|
||||
return 'fa-solid fa-store';
|
||||
case 'manufacturer':
|
||||
return 'fa-solid fa-building';
|
||||
case 'category':
|
||||
return 'fa-solid fa-table-columns';
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* This is a shorter way to see if the app is in demo mode.
|
||||
*
|
||||
@@ -1570,7 +1547,6 @@ class Helper
|
||||
]) ? 'rtl' : 'ltr';
|
||||
}
|
||||
|
||||
|
||||
static public function getRedirectOption($request, $id, $table, $item_id = null) : RedirectResponse
|
||||
{
|
||||
|
||||
@@ -1735,4 +1711,83 @@ class Helper
|
||||
}
|
||||
return $mismatched;
|
||||
}
|
||||
static public function labelFieldLayoutScaling(
|
||||
$pdf,
|
||||
iterable|\Closure $fields,
|
||||
float $currentX,
|
||||
float $usableWidth,
|
||||
float $usableHeight,
|
||||
float $baseLabelSize,
|
||||
float $baseFieldSize,
|
||||
float $baseFieldMargin,
|
||||
?string $title = null,
|
||||
float $baseTitleSize = 0.0,
|
||||
float $baseTitleMargin = 0.0,
|
||||
float $baseLabelPadding = 1.5,
|
||||
float $baseGap = 1.5,
|
||||
float $maxScale = 1.8,
|
||||
string $labelFont = 'freesans',
|
||||
|
||||
) : array
|
||||
{
|
||||
$fieldCount = count($fields);
|
||||
$perFieldHeight = max($baseLabelSize, $baseFieldSize) + $baseFieldMargin;
|
||||
$baseFieldsHeight = $fieldCount * $perFieldHeight;
|
||||
|
||||
$hasTitle = is_string($title) && trim($title) !== '';
|
||||
$baseTitleHeight = $hasTitle ? ($baseTitleSize + $baseTitleMargin) : 0.0;
|
||||
$baseTotalHeight = $baseTitleHeight + $baseFieldsHeight;
|
||||
$scale = 1.0;
|
||||
if ($baseTotalHeight > 0 && $usableHeight > 0) {
|
||||
$scale = $usableHeight / $baseTotalHeight;
|
||||
}
|
||||
|
||||
$scale = min($scale, $maxScale);
|
||||
|
||||
$labelSize = $baseLabelSize;
|
||||
$fieldSize = $baseFieldSize * $scale;
|
||||
$fieldMargin = $baseFieldMargin * $scale;
|
||||
|
||||
$rowAdvance = max($labelSize, $fieldSize) + $fieldMargin;
|
||||
$titleSize = $hasTitle ? ($baseTitleSize * $scale) : 0.0;
|
||||
$titleMargin = $hasTitle ? ($baseTitleMargin * $scale) : 0.0;
|
||||
$titleAdvance = $hasTitle ? ($titleSize + $titleMargin) : 0.0;
|
||||
|
||||
$pdf->SetFont($labelFont, '', $baseLabelSize);
|
||||
|
||||
$maxLabelWidthPerUnit = 0;
|
||||
foreach ($fields as $field) {
|
||||
$rawLabel = $field['label'] ?? null;
|
||||
|
||||
// If no label, do not include it in label-column sizing
|
||||
if (!is_string($rawLabel) || trim($rawLabel) === '') {
|
||||
continue;
|
||||
}
|
||||
$label = rtrim($field['label'], ':') . ':';
|
||||
$width = $pdf->GetStringWidth($label);
|
||||
$maxLabelWidthPerUnit = max($maxLabelWidthPerUnit, $width / $baseLabelSize);
|
||||
}
|
||||
|
||||
$labelPadding = $baseLabelPadding * $scale;
|
||||
$gap = $baseGap * $scale;
|
||||
|
||||
$labelWidth = ($maxLabelWidthPerUnit * $labelSize) + $labelPadding;
|
||||
$valueX = $currentX + $labelWidth + $gap;
|
||||
$valueWidth = $usableWidth - $labelWidth - $gap;
|
||||
|
||||
return compact(
|
||||
'scale',
|
||||
'hasTitle',
|
||||
'titleSize',
|
||||
'titleMargin',
|
||||
'titleAdvance',
|
||||
'labelSize',
|
||||
'fieldSize',
|
||||
'fieldMargin',
|
||||
'rowAdvance',
|
||||
'labelWidth',
|
||||
'valueX',
|
||||
'valueWidth'
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -12,6 +12,7 @@ class IconHelper
|
||||
case 'checkin':
|
||||
return 'fa-solid fa-rotate-right';
|
||||
case 'edit':
|
||||
case 'update':
|
||||
return 'fas fa-pencil-alt';
|
||||
case 'clone':
|
||||
return 'far fa-clone';
|
||||
@@ -36,14 +37,20 @@ class IconHelper
|
||||
return 'fa-solid fa-user';
|
||||
case 'users':
|
||||
return 'fas fa-users';
|
||||
case 'supplier':
|
||||
return 'fa-solid fa-store';
|
||||
case 'restore':
|
||||
return 'fa-solid fa-trash-arrow-up';
|
||||
case 'external-link':
|
||||
return 'fa fa-external-link';
|
||||
case 'link':
|
||||
return 'fa fa-link';
|
||||
case 'email':
|
||||
return 'fa-regular fa-envelope';
|
||||
case 'phone':
|
||||
return 'fa-solid fa-phone';
|
||||
case 'fax':
|
||||
return 'fa-solid fa-fax';
|
||||
case 'mobile':
|
||||
return 'fas fa-mobile-screen-button';
|
||||
case 'long-arrow-right':
|
||||
@@ -51,7 +58,7 @@ class IconHelper
|
||||
case 'download':
|
||||
return 'fas fa-download';
|
||||
case 'checkmark':
|
||||
return 'fas fa-check icon-white';
|
||||
return 'fas fa-check';
|
||||
case 'x':
|
||||
return 'fas fa-times';
|
||||
case 'logout':
|
||||
@@ -83,8 +90,11 @@ class IconHelper
|
||||
case 'licenses':
|
||||
case 'license':
|
||||
return 'far fa-save';
|
||||
case 'requests':
|
||||
case 'requestable':
|
||||
return 'fas fa-laptop';
|
||||
case 'request':
|
||||
case 'requested':
|
||||
return 'fa-solid fa-bell-concierge';
|
||||
case 'reports':
|
||||
return 'fas fa-chart-bar';
|
||||
case 'heart':
|
||||
@@ -127,9 +137,12 @@ class IconHelper
|
||||
return 'fa-regular fa-clipboard';
|
||||
case 'paperclip':
|
||||
return 'fas fa-paperclip';
|
||||
case 'contact-card':
|
||||
return 'fa-regular fa-id-card';
|
||||
case 'files':
|
||||
return 'fa-regular fa-file';
|
||||
case 'more-info':
|
||||
case 'support':
|
||||
return 'far fa-life-ring';
|
||||
case 'calendar':
|
||||
return 'fas fa-calendar';
|
||||
@@ -140,7 +153,7 @@ class IconHelper
|
||||
case 'more-files':
|
||||
return 'fa-solid fa-laptop-file';
|
||||
case 'maintenances':
|
||||
return 'fas fa-wrench';
|
||||
return 'fa-solid fa-screwdriver-wrench';
|
||||
case 'seats':
|
||||
return 'far fa-list-alt';
|
||||
case 'globe-us':
|
||||
@@ -195,6 +208,60 @@ class IconHelper
|
||||
case 'note':
|
||||
case 'notes':
|
||||
return 'fas fa-sticky-note';
|
||||
case 'tip':
|
||||
return 'fa-solid fa-lightbulb';
|
||||
case 'highlight':
|
||||
return 'fa-solid fa-highlighter';
|
||||
case 'manager':
|
||||
return 'fa-solid fa-building-user';
|
||||
case 'company':
|
||||
return 'fa-regular fa-building';
|
||||
case 'parent':
|
||||
return 'fa-solid fa-building-flag';
|
||||
case 'number':
|
||||
return 'fa-solid fa-hashtag';
|
||||
case 'depreciation':
|
||||
return 'fa-solid fa-arrows-down-to-line';
|
||||
case 'depreciation-calendar':
|
||||
case 'expiration':
|
||||
case 'terminates':
|
||||
return 'fa-regular fa-calendar-xmark';
|
||||
case 'manufacturer':
|
||||
return 'fa-solid fa-industry';
|
||||
case 'fieldset' :
|
||||
return 'fa-regular fa-rectangle-list';
|
||||
case 'deleted-date':
|
||||
return 'fa-solid fa-calendar-xmark';
|
||||
case 'eol':
|
||||
return 'fa-regular fa-calendar-days';
|
||||
case 'category':
|
||||
return 'fa-solid fa-icons';
|
||||
case 'cost':
|
||||
return 'fa-solid fa-money-bills';
|
||||
case 'available':
|
||||
return 'fa-solid fa-box';
|
||||
case 'checkedout':
|
||||
return 'fa-solid fa-box-open';
|
||||
case 'purchase_order':
|
||||
return 'fa-solid fa-file-invoice-dollar';
|
||||
case 'order':
|
||||
return 'fa-solid fa-file-invoice';
|
||||
case 'checkout-all':
|
||||
return 'fa-solid fa-arrows-down-to-people';
|
||||
case 'square-right':
|
||||
return 'fa-regular fa-square-caret-right';
|
||||
case 'square-left':
|
||||
return 'fa-regular fa-square-caret-left';
|
||||
case 'square':
|
||||
return 'fa-solid fa-square';
|
||||
case 'models':
|
||||
case 'model':
|
||||
return 'fa-solid fa-boxes-stacked';
|
||||
case 'min-qty':
|
||||
return 'fa-solid fa-chart-pie';
|
||||
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -90,10 +90,10 @@ class AccessoriesController extends Controller
|
||||
$accessory = $request->handleImages($accessory);
|
||||
}
|
||||
|
||||
if($request->get('redirect_option') === 'back'){
|
||||
if($request->input('redirect_option') === 'back'){
|
||||
session()->put(['redirect_option' => 'index']);
|
||||
} else {
|
||||
session()->put(['redirect_option' => $request->get('redirect_option')]);
|
||||
session()->put(['redirect_option' => $request->input('redirect_option')]);
|
||||
}
|
||||
|
||||
// Was the accessory created?
|
||||
@@ -182,7 +182,11 @@ class AccessoriesController extends Controller
|
||||
|
||||
$accessory = $request->handleImages($accessory);
|
||||
|
||||
session()->put(['redirect_option' => $request->get('redirect_option')]);
|
||||
if($request->input('redirect_option') === 'back'){
|
||||
session()->put(['redirect_option' => 'index']);
|
||||
} else {
|
||||
session()->put(['redirect_option' => $request->input('redirect_option')]);
|
||||
}
|
||||
|
||||
if ($accessory->save()) {
|
||||
return Helper::getRedirectOption($request, $accessory->id, 'Accessories')
|
||||
|
||||
@@ -76,7 +76,7 @@ class AccessoryCheckinController extends Controller
|
||||
if ($accessory_checkout->delete()) {
|
||||
event(new CheckoutableCheckedIn($accessory, $accessory_checkout->assignedTo, auth()->user(), $request->input('note'), $checkin_at));
|
||||
|
||||
session()->put(['redirect_option' => $request->get('redirect_option')]);
|
||||
session()->put(['redirect_option' => $request->input('redirect_option')]);
|
||||
|
||||
return Helper::getRedirectOption($request, $accessory->id, 'Accessories')
|
||||
->with('success', trans('admin/accessories/message.checkin.success'));
|
||||
|
||||
@@ -67,7 +67,7 @@ class AccessoryCheckoutController extends Controller
|
||||
*/
|
||||
public function store(AccessoryCheckoutRequest $request, Accessory $accessory) : RedirectResponse
|
||||
{
|
||||
|
||||
|
||||
$this->authorize('checkout', $accessory);
|
||||
|
||||
$target = $this->determineCheckoutTarget();
|
||||
@@ -89,12 +89,19 @@ class AccessoryCheckoutController extends Controller
|
||||
$accessory_checkout->save();
|
||||
}
|
||||
|
||||
event(new CheckoutableCheckedOut($accessory, $target, auth()->user(), $request->input('note')));
|
||||
event(new CheckoutableCheckedOut(
|
||||
$accessory,
|
||||
$target,
|
||||
auth()->user(),
|
||||
$request->input('note'),
|
||||
[],
|
||||
$accessory->checkout_qty,
|
||||
));
|
||||
|
||||
$request->request->add(['checkout_to_type' => request('checkout_to_type')]);
|
||||
$request->request->add(['assigned_to' => $target->id]);
|
||||
|
||||
session()->put(['redirect_option' => $request->get('redirect_option'), 'checkout_to_type' => $request->get('checkout_to_type')]);
|
||||
session()->put(['redirect_option' => $request->input('redirect_option'), 'checkout_to_type' => $request->input('checkout_to_type')]);
|
||||
|
||||
|
||||
// Redirect to the new accessory page
|
||||
|
||||
@@ -13,9 +13,9 @@ use App\Models\Company;
|
||||
use App\Models\Contracts\Acceptable;
|
||||
use App\Models\Setting;
|
||||
use App\Models\User;
|
||||
use App\Notifications\AcceptanceAssetAcceptedNotification;
|
||||
use App\Notifications\AcceptanceAssetAcceptedToUserNotification;
|
||||
use App\Notifications\AcceptanceAssetDeclinedNotification;
|
||||
use App\Notifications\AcceptanceItemAcceptedNotification;
|
||||
use App\Notifications\AcceptanceItemAcceptedToUserNotification;
|
||||
use App\Notifications\AcceptanceItemDeclinedNotification;
|
||||
use Exception;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Support\Facades\Mail;
|
||||
@@ -74,16 +74,16 @@ class AcceptanceController extends Controller
|
||||
*/
|
||||
public function store(Request $request, $id) : RedirectResponse
|
||||
{
|
||||
$acceptance = CheckoutAcceptance::find($id);
|
||||
|
||||
if (!$acceptance = CheckoutAcceptance::find($id)) {
|
||||
return redirect()->route('account.accept')->with('error', trans('admin/hardware/message.does_not_exist'));
|
||||
}
|
||||
|
||||
$assigned_user = User::find($acceptance->assigned_to_id);
|
||||
$settings = Setting::getSettings();
|
||||
$sig_filename='';
|
||||
|
||||
|
||||
if (is_null($acceptance)) {
|
||||
return redirect()->route('account.accept')->with('error', trans('admin/hardware/message.does_not_exist'));
|
||||
}
|
||||
|
||||
if (! $acceptance->isPending()) {
|
||||
return redirect()->route('account.accept')->with('error', trans('admin/users/message.error.asset_already_accepted'));
|
||||
}
|
||||
@@ -116,8 +116,6 @@ class AcceptanceController extends Controller
|
||||
|
||||
$item = $acceptance->checkoutable_type::find($acceptance->checkoutable_id);
|
||||
|
||||
|
||||
|
||||
// If signatures are required, make sure we have one
|
||||
if (Setting::getSettings()->require_accept_signature == '1') {
|
||||
|
||||
@@ -140,14 +138,14 @@ class AcceptanceController extends Controller
|
||||
// Convert PDF logo to base64 for TCPDF
|
||||
// This is needed for TCPDF to properly embed the image if it's a png and the cache isn't writable
|
||||
$encoded_logo = null;
|
||||
if ($settings->acceptance_pdf_logo) {
|
||||
if (($settings->acceptance_pdf_logo) && (Storage::disk('public')->exists($settings->acceptance_pdf_logo))) {
|
||||
$encoded_logo = base64_encode(file_get_contents(public_path() . '/uploads/' . $settings->acceptance_pdf_logo));
|
||||
}
|
||||
|
||||
// Get the data array ready for the notifications and PDF generation
|
||||
$data = [
|
||||
'item_tag' => $item->asset_tag,
|
||||
'item_name' => $item->name, // this handles licenses seats, which don't have a 'name' field
|
||||
'item_name' => $item->display_name, // this handles licenses seats, which don't have a 'name' field
|
||||
'item_model' => $item->model?->name,
|
||||
'item_serial' => $item->serial,
|
||||
'item_status' => $item->assetstatus?->name,
|
||||
@@ -164,11 +162,9 @@ class AcceptanceController extends Controller
|
||||
'signature' => (($sig_filename && array_key_exists('1', $encoded_image))) ? $encoded_image[1] : null,
|
||||
'logo' => ($encoded_logo) ?? null,
|
||||
'date_settings' => $settings->date_display_format,
|
||||
'admin' => auth()->user()->present()?->fullName,
|
||||
'qty' => $acceptance->qty ?? 1,
|
||||
];
|
||||
|
||||
|
||||
if ($request->input('asset_acceptance') == 'accepted') {
|
||||
|
||||
|
||||
@@ -187,13 +183,13 @@ class AcceptanceController extends Controller
|
||||
// Add the attachment for the signing user into the $data array
|
||||
$data['file'] = $pdf_filename;
|
||||
try {
|
||||
$assigned_user->notify((new AcceptanceAssetAcceptedToUserNotification($data))->locale($assigned_user->locale));
|
||||
$assigned_user->notify((new AcceptanceItemAcceptedToUserNotification($data))->locale($assigned_user->locale));
|
||||
} catch (\Exception $e) {
|
||||
Log::warning($e);
|
||||
}
|
||||
}
|
||||
try {
|
||||
$acceptance->notify((new AcceptanceAssetAcceptedNotification($data))->locale(Setting::getSettings()->locale));
|
||||
$acceptance->notify((new AcceptanceItemAcceptedNotification($data))->locale(Setting::getSettings()->locale));
|
||||
} catch (\Exception $e) {
|
||||
Log::warning($e);
|
||||
}
|
||||
@@ -208,7 +204,7 @@ class AcceptanceController extends Controller
|
||||
$acceptance->decline($sig_filename, $request->input('note'));
|
||||
}
|
||||
|
||||
$acceptance->notify(new AcceptanceAssetDeclinedNotification($data));
|
||||
$acceptance->notify(new AcceptanceItemDeclinedNotification($data));
|
||||
Log::debug('New event acceptance.');
|
||||
event(new CheckoutDeclined($acceptance));
|
||||
$return_msg = trans('admin/users/message.declined');
|
||||
@@ -220,7 +216,7 @@ class AcceptanceController extends Controller
|
||||
try {
|
||||
$recipient = User::find($acceptance->alert_on_response_id);
|
||||
|
||||
if ($recipient) {
|
||||
if ($recipient?->email) {
|
||||
Log::debug('Attempting to send email acceptance.');
|
||||
Mail::to($recipient)->send(new CheckoutAcceptanceResponseMail(
|
||||
$acceptance,
|
||||
|
||||
@@ -11,9 +11,12 @@ use App\Http\Requests\StoreAccessoryRequest;
|
||||
use App\Http\Transformers\AccessoriesTransformer;
|
||||
use App\Http\Transformers\SelectlistTransformer;
|
||||
use App\Models\Accessory;
|
||||
use App\Models\Company;
|
||||
use App\Models\User;
|
||||
use Illuminate\Http\JsonResponse;
|
||||
use Illuminate\Support\Facades\Auth;
|
||||
use Carbon\Carbon;
|
||||
use Illuminate\Support\Facades\DB;
|
||||
use Illuminate\Http\Request;
|
||||
use App\Http\Requests\ImageUploadRequest;
|
||||
use App\Models\AccessoryCheckout;
|
||||
@@ -23,25 +26,11 @@ class AccessoriesController extends Controller
|
||||
use CheckInOutRequest;
|
||||
|
||||
/**
|
||||
* List accessories
|
||||
* Display a listing of the resource.
|
||||
*
|
||||
* @group Accessories
|
||||
* @queryParam search string A search term to filter results by. Example: keyboard
|
||||
* @queryParam filter[<fieldname>] string A field to filter by. Example
|
||||
* @queryParam company_id int Filter by company ID. Example: 1
|
||||
* @queryParam category_id int Filter by category ID. Example: 1
|
||||
* @queryParam manufacturer_id int Filter by manufacturer ID. Example: 1
|
||||
* @queryParam supplier_id int Filter by supplier ID. Example: 1
|
||||
* @queryParam location_id int Filter by location ID. Example: 1
|
||||
* @queryParam notes string Filter by notes. Example: For office use only
|
||||
* @queryParam offset int The number of items to skip before starting to collect the result set. Example: 0
|
||||
* @queryParam limit int The number of items to return. Example: 50
|
||||
* @queryParam sort string The field to sort by. Example: created_at
|
||||
* @queryParam order string The order to sort by. Example: desc
|
||||
*
|
||||
* @return \Illuminate\Http\Response
|
||||
*@since [v4.0]
|
||||
* @author [A. Gianotto] [<snipe@snipe.net>]
|
||||
* @since [v4.0]
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function index(Request $request)
|
||||
{
|
||||
@@ -64,6 +53,7 @@ class AccessoriesController extends Controller
|
||||
'company_id',
|
||||
'notes',
|
||||
'checkouts_count',
|
||||
'order_number',
|
||||
'qty',
|
||||
// These are *relationships* so we wouldn't normally include them in this array,
|
||||
// since they would normally create a `column not found` error,
|
||||
@@ -102,6 +92,10 @@ class AccessoriesController extends Controller
|
||||
$accessories->where('accessories.company_id', '=', $request->input('company_id'));
|
||||
}
|
||||
|
||||
if ($request->filled('order_number')) {
|
||||
$accessories->where('accessories.order_number', '=', $request->input('order_number'));
|
||||
}
|
||||
|
||||
if ($request->filled('category_id')) {
|
||||
$accessories->where('category_id', '=', $request->input('category_id'));
|
||||
}
|
||||
@@ -162,13 +156,9 @@ class AccessoriesController extends Controller
|
||||
|
||||
|
||||
/**
|
||||
* Create Accessory
|
||||
* Store a newly created resource in storage.
|
||||
*
|
||||
* @group Accessories
|
||||
* @bodyParam name string required The name of the accessory. Example: Apple Bluetooth Keyboard
|
||||
* @bodyParam qty int required The number of accessories to create. Example: 10
|
||||
* @bodyParam category_id int required The ID of the category to assign this accessory to. Example: 1
|
||||
* @bodyParam image file No-example
|
||||
* @param \App\Http\Requests\ImageUploadRequest $request
|
||||
* @return \Illuminate\Http\JsonResponse
|
||||
* @author [A. Gianotto] [<snipe@snipe.net>]
|
||||
* @since [v4.0]
|
||||
@@ -188,9 +178,8 @@ class AccessoriesController extends Controller
|
||||
}
|
||||
|
||||
/**
|
||||
* Show Accessory
|
||||
* Display the specified resource.
|
||||
*
|
||||
* @group Accessories
|
||||
* @param int $id
|
||||
* @return array
|
||||
* @author [A. Gianotto] [<snipe@snipe.net>]
|
||||
@@ -205,11 +194,26 @@ class AccessoriesController extends Controller
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Display the specified resource.
|
||||
*
|
||||
* @param int $id
|
||||
* @return array
|
||||
* @author [A. Gianotto] [<snipe@snipe.net>]
|
||||
* @since [v4.0]
|
||||
*/
|
||||
public function accessory_detail($id)
|
||||
{
|
||||
$this->authorize('view', Accessory::class);
|
||||
$accessory = Accessory::findOrFail($id);
|
||||
|
||||
return (new AccessoriesTransformer)->transformAccessory($accessory);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Show Accessory Checkouts
|
||||
* Get the list of checkouts for a specific accessory
|
||||
*
|
||||
* @group Accessories
|
||||
* @author [A. Gianotto] [<snipe@snipe.net>]
|
||||
* @since [v4.0]
|
||||
* @param int $id
|
||||
@@ -239,9 +243,8 @@ class AccessoriesController extends Controller
|
||||
|
||||
|
||||
/**
|
||||
* Update accessory.
|
||||
* Update the specified resource in storage.
|
||||
*
|
||||
* @group Accessories
|
||||
* @author [A. Gianotto] [<snipe@snipe.net>]
|
||||
* @since [v4.0]
|
||||
* @param \App\Http\Requests\ImageUploadRequest $request
|
||||
@@ -263,9 +266,8 @@ class AccessoriesController extends Controller
|
||||
}
|
||||
|
||||
/**
|
||||
* Delete Accessory
|
||||
* Remove the specified resource from storage.
|
||||
*
|
||||
* @group Accessories
|
||||
* @author [A. Gianotto] [<snipe@snipe.net>]
|
||||
* @since [v4.0]
|
||||
* @param int $id
|
||||
@@ -288,12 +290,11 @@ class AccessoriesController extends Controller
|
||||
|
||||
|
||||
/**
|
||||
* Checkout Accessory
|
||||
* Save the Accessory checkout information.
|
||||
*
|
||||
* If Slack is enabled and/or asset acceptance is enabled, it will also
|
||||
* trigger a Slack message and send an email.
|
||||
*
|
||||
* @group Accessories
|
||||
* @param int $accessoryId
|
||||
* @return \Illuminate\Http\JsonResponse
|
||||
* @author [A. Gianotto] [<snipe@snipe.net>]
|
||||
@@ -329,16 +330,22 @@ class AccessoriesController extends Controller
|
||||
}
|
||||
|
||||
// Set this value to be able to pass the qty through to the event
|
||||
event(new CheckoutableCheckedOut($accessory, $target, auth()->user(), $request->input('note')));
|
||||
event(new CheckoutableCheckedOut(
|
||||
$accessory,
|
||||
$target,
|
||||
auth()->user(),
|
||||
$request->input('note'),
|
||||
[],
|
||||
$accessory->checkout_qty,
|
||||
));
|
||||
|
||||
return response()->json(Helper::formatStandardApiResponse('success', $payload, trans('admin/accessories/message.checkout.success')));
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Checkin Accessory
|
||||
* Check in the item so that it can be checked out again to someone else
|
||||
*
|
||||
* @group Accessories
|
||||
* @param Request $request
|
||||
* @param int $accessoryUserId
|
||||
* @param string $backto
|
||||
@@ -380,10 +387,8 @@ class AccessoriesController extends Controller
|
||||
|
||||
|
||||
/**
|
||||
* Selectlist
|
||||
* Gets a paginated collection for the select2 menus
|
||||
*
|
||||
* @group Accessories
|
||||
* @queryParam search string A search term to filter results by name. No-example
|
||||
* @see \App\Http\Transformers\SelectlistTransformer
|
||||
*
|
||||
*/
|
||||
@@ -396,7 +401,7 @@ class AccessoriesController extends Controller
|
||||
]);
|
||||
|
||||
if ($request->filled('search')) {
|
||||
$accessories = $accessories->where('accessories.name', 'LIKE', '%'.$request->get('search').'%');
|
||||
$accessories = $accessories->where('accessories.name', 'LIKE', '%'.$request->input('search').'%');
|
||||
}
|
||||
|
||||
$accessories = $accessories->orderBy('name', 'ASC')->paginate(50);
|
||||
|
||||
@@ -25,9 +25,8 @@ use Illuminate\Http\JsonResponse;
|
||||
class AssetModelsController extends Controller
|
||||
{
|
||||
/**
|
||||
* List Models
|
||||
* Display a listing of the resource.
|
||||
*
|
||||
* @group Models
|
||||
* @author [A. Gianotto] [<snipe@snipe.net>]
|
||||
* @since [v4.0]
|
||||
*/
|
||||
@@ -173,9 +172,8 @@ class AssetModelsController extends Controller
|
||||
|
||||
|
||||
/**
|
||||
* Create Model
|
||||
* Store a newly created resource in storage.
|
||||
*
|
||||
* @group Models
|
||||
* @author [A. Gianotto] [<snipe@snipe.net>]
|
||||
* @since [v4.0]
|
||||
* @param \App\Http\Requests\StoreAssetModelRequest $request
|
||||
@@ -196,12 +194,11 @@ class AssetModelsController extends Controller
|
||||
}
|
||||
|
||||
/**
|
||||
* Show Model
|
||||
* Display the specified resource.
|
||||
*
|
||||
* @group Models
|
||||
* @urlParam id int required The ID of the model.
|
||||
* @author [A. Gianotto] [<snipe@snipe.net>]
|
||||
* @since [v4.0]
|
||||
* @param int $id
|
||||
*/
|
||||
public function show($id) : array
|
||||
{
|
||||
@@ -212,13 +209,11 @@ class AssetModelsController extends Controller
|
||||
}
|
||||
|
||||
/**
|
||||
* List Assets in Model
|
||||
* Display the specified resource's assets
|
||||
*
|
||||
* @group Models
|
||||
* @urlParam id int required The ID of the model.
|
||||
* @author [A. Gianotto] [<snipe@snipe.net>]
|
||||
* @since [v4.0]
|
||||
*
|
||||
* @param int $id
|
||||
*/
|
||||
public function assets($id) : array
|
||||
{
|
||||
@@ -230,12 +225,12 @@ class AssetModelsController extends Controller
|
||||
|
||||
|
||||
/**
|
||||
* Update Model
|
||||
* Update the specified resource in storage.
|
||||
*
|
||||
* @group Models
|
||||
* @urlParam id int required The ID of the model.
|
||||
* @author [A. Gianotto] [<snipe@snipe.net>]
|
||||
* @since [v4.0]
|
||||
* @param \App\Http\Requests\ImageUploadRequest $request
|
||||
* @param int $id
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function update(StoreAssetModelRequest $request, $id) : JsonResponse
|
||||
@@ -254,7 +249,7 @@ class AssetModelsController extends Controller
|
||||
* it, but I'll be damned if I can think of one. - snipe
|
||||
*/
|
||||
if ($request->filled('custom_fieldset_id')) {
|
||||
$assetmodel->fieldset_id = $request->get('custom_fieldset_id');
|
||||
$assetmodel->fieldset_id = $request->input('custom_fieldset_id');
|
||||
}
|
||||
|
||||
|
||||
@@ -266,12 +261,11 @@ class AssetModelsController extends Controller
|
||||
}
|
||||
|
||||
/**
|
||||
* Delete Model
|
||||
* Remove the specified resource from storage.
|
||||
*
|
||||
* @group Models
|
||||
* @author [A. Gianotto] [<snipe@snipe.net>]
|
||||
* @since [v4.0]
|
||||
* @urlParam id int required The ID of the model.
|
||||
* @param int $id
|
||||
*/
|
||||
public function destroy($id) : JsonResponse
|
||||
{
|
||||
@@ -297,9 +291,8 @@ class AssetModelsController extends Controller
|
||||
}
|
||||
|
||||
/**
|
||||
* Selectlist of Models
|
||||
* Gets a paginated collection for the select2 menus
|
||||
*
|
||||
* @group Models
|
||||
* @author [A. Gianotto] [<snipe@snipe.net>]
|
||||
* @since [v4.0.16]
|
||||
* @see \App\Http\Transformers\SelectlistTransformer
|
||||
|
||||
@@ -3,37 +3,39 @@
|
||||
namespace App\Http\Controllers\Api;
|
||||
|
||||
use App\Events\CheckoutableCheckedIn;
|
||||
use App\Http\Requests\StoreAssetRequest;
|
||||
use App\Http\Requests\UpdateAssetRequest;
|
||||
use App\Http\Traits\MigratesLegacyAssetLocations;
|
||||
use App\Http\Transformers\ComponentsTransformer;
|
||||
use App\Models\AccessoryCheckout;
|
||||
use App\Models\CheckoutAcceptance;
|
||||
use App\Models\LicenseSeat;
|
||||
use Illuminate\Database\Eloquent\Builder;
|
||||
use Illuminate\Http\JsonResponse;
|
||||
use Illuminate\Support\Facades\Crypt;
|
||||
use Illuminate\Support\Facades\Gate;
|
||||
use App\Helpers\Helper;
|
||||
use App\Http\Controllers\Controller;
|
||||
use App\Http\Requests\AssetCheckoutRequest;
|
||||
use App\Http\Requests\FilterRequest;
|
||||
use App\Http\Requests\StoreAssetRequest;
|
||||
use App\Http\Requests\UpdateAssetRequest;
|
||||
use App\Http\Traits\MigratesLegacyAssetLocations;
|
||||
use App\Http\Transformers\AssetsTransformer;
|
||||
use App\Http\Transformers\ComponentsTransformer;
|
||||
use App\Http\Transformers\LicensesTransformer;
|
||||
use App\Http\Transformers\SelectlistTransformer;
|
||||
use App\Models\AccessoryCheckout;
|
||||
use App\Models\Actionlog;
|
||||
use App\Models\Asset;
|
||||
use App\Models\AssetModel;
|
||||
use App\Models\CheckoutAcceptance;
|
||||
use App\Models\Company;
|
||||
use App\Models\CustomField;
|
||||
use App\Models\License;
|
||||
use App\Models\LicenseSeat;
|
||||
use App\Models\Location;
|
||||
use App\Models\Setting;
|
||||
use App\Models\User;
|
||||
use App\View\Label;
|
||||
use Carbon\Carbon;
|
||||
use Illuminate\Support\Facades\DB;
|
||||
use Illuminate\Database\Eloquent\Builder;
|
||||
use Illuminate\Http\JsonResponse;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Support\Facades\Crypt;
|
||||
use Illuminate\Support\Facades\DB;
|
||||
use Illuminate\Support\Facades\Gate;
|
||||
use Illuminate\Support\Facades\Log;
|
||||
use Illuminate\Support\Facades\Route;
|
||||
use App\View\Label;
|
||||
use Illuminate\Support\Facades\Storage;
|
||||
use Illuminate\Support\Facades\Validator;
|
||||
|
||||
@@ -50,35 +52,13 @@ class AssetsController extends Controller
|
||||
use MigratesLegacyAssetLocations;
|
||||
|
||||
/**
|
||||
* List Assets
|
||||
* Returns JSON listing of all assets
|
||||
*
|
||||
* @group Assets
|
||||
* @queryParam action string The action to filter by: audits, checkins. No-example
|
||||
* @queryParam upcoming_status string The status to filter by: `due`, `overdue`, `due-or-overdue`. No-example
|
||||
* @queryParam status string The asset status to filter by: `RTD`, `Deployed`, `Pending`, `Undeployable`, `Archived`, `Requestable`. No-example
|
||||
* @queryParam status_id int The asset status ID to filter by. No-example
|
||||
* @queryParam asset_tag string The asset tag to filter by. No-example
|
||||
* @queryParam serial string The serial number to filter by. No-example
|
||||
* @queryParam requestable boolean Filter by requestable assets. No-example
|
||||
* @queryParam model_id int The model ID or IDs to filter by. No-example
|
||||
* @queryParam category_id int The category ID to filter by. No-example
|
||||
* @queryParam location_id int The location ID to filter by. No-example
|
||||
* @queryParam rtd_location_id int The RTD location ID to filter by. No-example
|
||||
* @queryParam supplier_id int The supplier ID to filter by. No-example
|
||||
* @queryParam asset_eol_date date The asset end-of-life date to filter by. No-example
|
||||
* @queryParam assigned_to int The user ID or department ID the asset is assigned to. No-example
|
||||
* @queryParam assigned_type string The type of assignment, either 'user' or 'asset' or 'location'. Example: user
|
||||
* @queryParam company_id int The company ID to filter by. No-example
|
||||
* @queryParam manufacturer_id int The manufacturer ID to filter by. No-example
|
||||
* @queryParam depreciation_id int The depreciation ID to filter by. No-example
|
||||
* @queryParam byod boolean Filter by BYOD assets. Example: true
|
||||
* @queryParam order_number string The order number to filter by. Example: No-example
|
||||
* @queryParam search string A text string to search for. Example: No-example
|
||||
* @queryParam filter string A JSON object of key/value pairs to filter by. No-example
|
||||
* @author [A. Gianotto] [<snipe@snipe.net>]
|
||||
* @param int $assetId
|
||||
* @since [v4.0]
|
||||
*/
|
||||
public function index(Request $request, $action = null, $upcoming_status = null) : JsonResponse | array
|
||||
public function index(FilterRequest $request, $action = null, $upcoming_status = null) : JsonResponse | array
|
||||
{
|
||||
|
||||
|
||||
@@ -174,6 +154,15 @@ class AssetsController extends Controller
|
||||
}
|
||||
|
||||
$assets = Asset::select('assets.*')
|
||||
// ->addSelect([
|
||||
// 'first_checkout_at' => Actionlog::query()
|
||||
// ->select('created_at')
|
||||
// ->whereColumn('item_id', 'assets.id')
|
||||
// ->where('item_type', Asset::class)
|
||||
// ->where('action_type', 'checkout')
|
||||
// ->orderBy('created_at')
|
||||
// ->limit(1),
|
||||
// ])
|
||||
->with(
|
||||
'model',
|
||||
'location',
|
||||
@@ -205,7 +194,7 @@ class AssetsController extends Controller
|
||||
// Search custom fields by column name
|
||||
foreach ($all_custom_fields as $field) {
|
||||
if ($request->filled($field->db_column_name()) && $field->db_column_name()) {
|
||||
$assets->where($field->db_column_name(), '=', $request->input($field->db_column_name()));
|
||||
$assets->where('assets.'.$field->db_column_name(), '=', $request->input($field->db_column_name()));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -398,7 +387,7 @@ class AssetsController extends Controller
|
||||
}
|
||||
|
||||
if ($request->filled('order_number')) {
|
||||
$assets->where('assets.order_number', '=', strval($request->get('order_number')));
|
||||
$assets->where('assets.order_number', '=', strval($request->input('order_number')));
|
||||
}
|
||||
|
||||
// This is kinda gross, but we need to do this because the Bootstrap Tables
|
||||
@@ -497,10 +486,9 @@ class AssetsController extends Controller
|
||||
|
||||
|
||||
/**
|
||||
* Lookup by Tag
|
||||
* Returns JSON with information about an asset (by tag) for detail view.
|
||||
*
|
||||
* @group Assets
|
||||
* @urlParam $tag string required The asset tag. Example: 1
|
||||
* @param string $tag
|
||||
* @since [v4.2.1]
|
||||
* @author [A. Gianotto] [<snipe@snipe.net>]
|
||||
*/
|
||||
@@ -533,11 +521,10 @@ class AssetsController extends Controller
|
||||
}
|
||||
|
||||
/**
|
||||
* Lookup by Serial
|
||||
* Returns JSON with information about an asset (by serial) for detail view.
|
||||
*
|
||||
* @group Assets
|
||||
* @author [A. Gianotto] [<snipe@snipe.net>]
|
||||
* @urlParam $serial string
|
||||
* @param string $serial
|
||||
* @since [v4.2.1]
|
||||
* @return \Illuminate\Http\JsonResponse
|
||||
*/
|
||||
@@ -577,11 +564,10 @@ class AssetsController extends Controller
|
||||
}
|
||||
|
||||
/**
|
||||
* Show Asset
|
||||
* Returns JSON with information about an asset for detail view.
|
||||
*
|
||||
* @group Assets
|
||||
* @author [A. Gianotto] [<snipe@snipe.net>]
|
||||
* @queryParam $assetId int required The asset ID. Example: 1
|
||||
* @param int $assetId
|
||||
* @since [v4.0]
|
||||
* @return \Illuminate\Http\JsonResponse
|
||||
*/
|
||||
@@ -598,13 +584,6 @@ class AssetsController extends Controller
|
||||
return response()->json(Helper::formatStandardApiResponse('error', null, trans('admin/hardware/message.does_not_exist')), 200);
|
||||
}
|
||||
|
||||
/**
|
||||
* Licenses Assigned to Asset
|
||||
*
|
||||
* @group Assets
|
||||
* @queryParam $assetId int required The asset ID. Example: 1
|
||||
* @return \Illuminate\Http\JsonResponse
|
||||
*/
|
||||
public function licenses(Request $request, $id): array
|
||||
{
|
||||
$this->authorize('view', Asset::class);
|
||||
@@ -617,12 +596,8 @@ class AssetsController extends Controller
|
||||
|
||||
|
||||
/**
|
||||
* Selectlist
|
||||
* Gets a paginated collection for the select2 menus
|
||||
*
|
||||
* @group Assets
|
||||
* @queryParam $search string String to search on. No-example
|
||||
* @queryParam $companyId int Company ID to filter by. No-example
|
||||
* @queryParam $assetStatusType string The asset status type to filter by: `RTD`. No-example
|
||||
* @author [A. Gianotto] [<snipe@snipe.net>]
|
||||
* @since [v4.0.16]
|
||||
* @see \App\Http\Transformers\SelectlistTransformer
|
||||
@@ -680,9 +655,8 @@ class AssetsController extends Controller
|
||||
|
||||
|
||||
/**
|
||||
* Create Asset
|
||||
* Accepts a POST request to create a new asset
|
||||
*
|
||||
* @group Assets
|
||||
* @author [A. Gianotto] [<snipe@snipe.net>]
|
||||
* @param \App\Http\Requests\ImageUploadRequest $request
|
||||
* @since [v4.0]
|
||||
@@ -690,7 +664,7 @@ class AssetsController extends Controller
|
||||
public function store(StoreAssetRequest $request): JsonResponse
|
||||
{
|
||||
$asset = new Asset();
|
||||
$asset->model()->associate(AssetModel::find((int) $request->get('model_id')));
|
||||
$asset->model()->associate(AssetModel::find((int) $request->input('model_id')));
|
||||
|
||||
$asset->fill($request->validated());
|
||||
$asset->created_by = auth()->id();
|
||||
@@ -719,8 +693,8 @@ class AssetsController extends Controller
|
||||
// If input value is null, use custom field's default value
|
||||
if ($field_val == null) {
|
||||
Log::debug('Field value for ' . $field->db_column . ' is null');
|
||||
$field_val = $field->defaultValue($request->get('model_id'));
|
||||
Log::debug('Use the default fieldset value of ' . $field->defaultValue($request->get('model_id')));
|
||||
$field_val = $field->defaultValue($request->input('model_id'));
|
||||
Log::debug('Use the default fieldset value of ' . $field->defaultValue($request->input('model_id')));
|
||||
}
|
||||
|
||||
// if the field is set to encrypted, make sure we encrypt the value
|
||||
@@ -731,7 +705,7 @@ class AssetsController extends Controller
|
||||
|
||||
// If input value is null, use custom field's default value
|
||||
if (($field_val == null) && ($request->has('model_id') != '')) {
|
||||
$field_val = Crypt::encrypt($field->defaultValue($request->get('model_id')));
|
||||
$field_val = Crypt::encrypt($field->defaultValue($request->input('model_id')));
|
||||
} else {
|
||||
$field_val = Crypt::encrypt($request->input($field->db_column));
|
||||
}
|
||||
@@ -749,15 +723,15 @@ class AssetsController extends Controller
|
||||
}
|
||||
|
||||
if ($asset->save()) {
|
||||
if ($request->get('assigned_user')) {
|
||||
if ($request->input('assigned_user')) {
|
||||
$target = User::find(request('assigned_user'));
|
||||
} elseif ($request->get('assigned_asset')) {
|
||||
} elseif ($request->input('assigned_asset')) {
|
||||
$target = Asset::find(request('assigned_asset'));
|
||||
} elseif ($request->get('assigned_location')) {
|
||||
} elseif ($request->input('assigned_location')) {
|
||||
$target = Location::find(request('assigned_location'));
|
||||
}
|
||||
if (isset($target)) {
|
||||
$asset->checkOut($target, auth()->user(), date('Y-m-d H:i:s'), '', 'Checked out on asset creation', e($request->get('name')));
|
||||
$asset->checkOut($target, auth()->user(), date('Y-m-d H:i:s'), '', 'Checked out on asset creation', e($request->input('name')));
|
||||
}
|
||||
|
||||
if ($asset->image) {
|
||||
@@ -776,15 +750,8 @@ class AssetsController extends Controller
|
||||
|
||||
|
||||
/**
|
||||
* Update Asset
|
||||
* Accepts a POST request to update an asset
|
||||
*
|
||||
* @group Assets
|
||||
* @queryParam model_id int The model ID to associate the asset with. Example: 1
|
||||
* @queryParam company_id int The company ID to associate the asset with. Example: 1
|
||||
* @queryParam rtd_location_id int The RTD location ID to associate the asset with. Example: 1
|
||||
* @queryParam last_audit_date date The last audit date for the asset. Example: 2023-12-31
|
||||
* @queryParam image file The image file to upload for the asset. Example: (binary)
|
||||
* @param \App\Http\Requests\UpdateAssetRequest $request
|
||||
* @author [A. Gianotto] [<snipe@snipe.net>]
|
||||
* @since [v4.0]
|
||||
*/
|
||||
@@ -841,19 +808,22 @@ class AssetsController extends Controller
|
||||
}
|
||||
}
|
||||
if ($asset->save()) {
|
||||
if (($request->filled('assigned_user')) && ($target = User::find($request->get('assigned_user')))) {
|
||||
if (($request->filled('assigned_user')) && ($target = User::find($request->input('assigned_user')))) {
|
||||
$location = $target->location_id;
|
||||
} elseif (($request->filled('assigned_asset')) && ($target = Asset::find($request->get('assigned_asset')))) {
|
||||
} elseif (($request->filled('assigned_asset')) && ($target = Asset::find($request->input('assigned_asset')))) {
|
||||
$location = $target->location_id;
|
||||
|
||||
Asset::where('assigned_type', \App\Models\Asset::class)->where('assigned_to', $asset->id)
|
||||
->update(['location_id' => $target->location_id]);
|
||||
} elseif (($request->filled('assigned_location')) && ($target = Location::find($request->get('assigned_location')))) {
|
||||
} elseif (($request->filled('assigned_location')) && ($target = Location::find($request->input('assigned_location')))) {
|
||||
$location = $target->id;
|
||||
}
|
||||
|
||||
if (isset($target)) {
|
||||
$asset->checkOut($target, auth()->user(), date('Y-m-d H:i:s'), '', 'Checked out on asset update', e($request->get('name')), $location);
|
||||
// Using `->has` preserves the asset name if the name parameter was not included in request.
|
||||
$asset_name = request()->has('name') ? request('name') : $asset->name;
|
||||
|
||||
$asset->checkOut($target, auth()->user(), date('Y-m-d H:i:s'), '', 'Checked out on asset update', $asset_name, $location);
|
||||
}
|
||||
|
||||
if ($asset->image) {
|
||||
@@ -875,10 +845,8 @@ class AssetsController extends Controller
|
||||
|
||||
|
||||
/**
|
||||
* Delete Asset
|
||||
* Delete a given asset (mark as deleted).
|
||||
*
|
||||
* @group Assets
|
||||
* @param int $id
|
||||
* @author [A. Gianotto] [<snipe@snipe.net>]
|
||||
* @param int $assetId
|
||||
* @since [v4.0]
|
||||
@@ -912,9 +880,8 @@ class AssetsController extends Controller
|
||||
|
||||
|
||||
/**
|
||||
* Restore Asset
|
||||
* Restore a soft-deleted asset.
|
||||
*
|
||||
* @group Assets
|
||||
* @author [A. Gianotto] [<snipe@snipe.net>]
|
||||
* @param int $assetId
|
||||
* @since [v5.1.18]
|
||||
@@ -941,9 +908,8 @@ class AssetsController extends Controller
|
||||
}
|
||||
|
||||
/**
|
||||
* Checkout by Asset Tag
|
||||
* Checkout an asset by its tag.
|
||||
*
|
||||
* @group Assets
|
||||
* @author [N. Butler]
|
||||
* @param string $tag
|
||||
* @since [v6.0.5]
|
||||
@@ -957,9 +923,8 @@ class AssetsController extends Controller
|
||||
}
|
||||
|
||||
/**
|
||||
* Checkout Asset
|
||||
* Checkout an asset
|
||||
*
|
||||
* @group Assets
|
||||
* @author [A. Gianotto] [<snipe@snipe.net>]
|
||||
* @param int $assetId
|
||||
* @since [v4.0]
|
||||
@@ -1002,7 +967,7 @@ class AssetsController extends Controller
|
||||
}
|
||||
|
||||
if ($request->filled('status_id')) {
|
||||
$asset->status_id = $request->get('status_id');
|
||||
$asset->status_id = $request->input('status_id');
|
||||
}
|
||||
|
||||
if (! isset($target)) {
|
||||
@@ -1033,9 +998,8 @@ class AssetsController extends Controller
|
||||
|
||||
|
||||
/**
|
||||
* Checkin Asset
|
||||
* Checkin an asset
|
||||
*
|
||||
* @group Assets
|
||||
* @author [A. Gianotto] [<snipe@snipe.net>]
|
||||
* @param int $assetId
|
||||
* @since [v4.0]
|
||||
@@ -1083,7 +1047,7 @@ class AssetsController extends Controller
|
||||
$checkin_at = $request->filled('checkin_at') ? $request->input('checkin_at') . ' ' . date('H:i:s') : date('Y-m-d H:i:s');
|
||||
$originalValues = $asset->getRawOriginal();
|
||||
|
||||
if (($request->filled('checkin_at')) && ($request->get('checkin_at') != date('Y-m-d'))) {
|
||||
if (($request->filled('checkin_at')) && ($request->input('checkin_at') != date('Y-m-d'))) {
|
||||
$originalValues['action_date'] = $checkin_at;
|
||||
}
|
||||
|
||||
@@ -1119,9 +1083,8 @@ class AssetsController extends Controller
|
||||
}
|
||||
|
||||
/**
|
||||
* Checkin by Asset Tag
|
||||
* Checkin an asset by asset tag
|
||||
*
|
||||
* @group Assets
|
||||
* @author [A. Janes] [<ajanes@adagiohealth.org>]
|
||||
* @since [v6.0]
|
||||
*/
|
||||
@@ -1144,9 +1107,8 @@ class AssetsController extends Controller
|
||||
|
||||
|
||||
/**
|
||||
* Audit Asset
|
||||
* Mark an asset as audited
|
||||
*
|
||||
* @group Assets
|
||||
* @author [A. Gianotto] [<snipe@snipe.net>]
|
||||
* @param int $id
|
||||
* @since [v4.0]
|
||||
@@ -1186,7 +1148,9 @@ class AssetsController extends Controller
|
||||
$payload = [
|
||||
'id' => $asset->id,
|
||||
'asset_tag' => $asset->asset_tag,
|
||||
'note' => $request->input('note'),
|
||||
'note' => e($request->input('note')),
|
||||
'status_label' => e($asset->assetstatus->display_name),
|
||||
'status_type' => $asset->assetstatus->getStatuslabelType(),
|
||||
'next_audit_date' => Helper::getFormattedDateObject($asset->next_audit_date),
|
||||
];
|
||||
|
||||
@@ -1194,7 +1158,7 @@ class AssetsController extends Controller
|
||||
/**
|
||||
* Update custom fields in the database.
|
||||
* Validation for these fields is handled through the AssetRequest form request
|
||||
* $model = AssetModel::find($request->get('model_id'));
|
||||
* $model = AssetModel::find($request->input('model_id'));
|
||||
*/
|
||||
if (($asset->model) && ($asset->model->fieldset)) {
|
||||
$payload['custom_fields'] = [];
|
||||
@@ -1270,9 +1234,8 @@ class AssetsController extends Controller
|
||||
|
||||
|
||||
/**
|
||||
* Show Requestable Assets
|
||||
* Returns JSON listing of all requestable assets
|
||||
*
|
||||
* @group Assets
|
||||
* @author [A. Gianotto] [<snipe@snipe.net>]
|
||||
* @since [v4.0]
|
||||
*/
|
||||
@@ -1359,11 +1322,6 @@ class AssetsController extends Controller
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* List Assets Assigned to Asset
|
||||
*
|
||||
* @group Assets
|
||||
*/
|
||||
public function assignedAssets(Request $request, Asset $asset) : JsonResponse | array
|
||||
{
|
||||
$this->authorize('view', Asset::class);
|
||||
@@ -1381,11 +1339,6 @@ class AssetsController extends Controller
|
||||
return (new AssetsTransformer)->transformAssets($assets, $total);
|
||||
}
|
||||
|
||||
/**
|
||||
* List Accessories Assigned to Asset
|
||||
*
|
||||
* @group Assets
|
||||
*/
|
||||
public function assignedAccessories(Request $request, Asset $asset) : JsonResponse | array
|
||||
{
|
||||
$this->authorize('view', Asset::class);
|
||||
@@ -1403,11 +1356,6 @@ class AssetsController extends Controller
|
||||
return (new AssetsTransformer)->transformCheckedoutAccessories($accessory_checkouts, $total);
|
||||
}
|
||||
|
||||
/**
|
||||
* List Components Assigned to Asset
|
||||
*
|
||||
* @group Assets
|
||||
*/
|
||||
public function assignedComponents(Request $request, Asset $asset): JsonResponse|array
|
||||
{
|
||||
$this->authorize('view', Asset::class);
|
||||
@@ -1422,10 +1370,10 @@ class AssetsController extends Controller
|
||||
}
|
||||
|
||||
/**
|
||||
* Generate Label by Asset Tag
|
||||
*
|
||||
* @group Assets
|
||||
* Generate asset labels by tag
|
||||
*
|
||||
* @author [Nebelkreis] [https://github.com/NebelKreis]
|
||||
*
|
||||
* @param Request $request Contains asset_tags array of asset tags to generate labels for
|
||||
* @return JsonResponse Returns base64 encoded PDF on success, error message on failure
|
||||
*/
|
||||
|
||||
@@ -2,6 +2,8 @@
|
||||
|
||||
namespace App\Http\Controllers\Api;
|
||||
|
||||
use App\Actions\Categories\DestroyCategoryAction;
|
||||
use App\Exceptions\ItemStillHasChildren;
|
||||
use App\Helpers\Helper;
|
||||
use App\Http\Controllers\Controller;
|
||||
use App\Http\Transformers\CategoriesTransformer;
|
||||
@@ -15,9 +17,8 @@ use Illuminate\Support\Facades\Storage;
|
||||
class CategoriesController extends Controller
|
||||
{
|
||||
/**
|
||||
* List Categories
|
||||
* Display a listing of the resource.
|
||||
*
|
||||
* @group Categories
|
||||
* @author [A. Gianotto] [<snipe@snipe.net>]
|
||||
* @since [v4.0]
|
||||
* @return \Illuminate\Http\Response
|
||||
@@ -42,6 +43,7 @@ class CategoriesController extends Controller
|
||||
'created_at',
|
||||
'updated_at',
|
||||
'image',
|
||||
'tag_color',
|
||||
'notes',
|
||||
];
|
||||
|
||||
@@ -56,6 +58,7 @@ class CategoriesController extends Controller
|
||||
'require_acceptance',
|
||||
'checkin_email',
|
||||
'image',
|
||||
'tag_color',
|
||||
'notes',
|
||||
])
|
||||
->with('adminuser')
|
||||
@@ -149,9 +152,8 @@ class CategoriesController extends Controller
|
||||
|
||||
|
||||
/**
|
||||
* Create Category
|
||||
* Store a newly created resource in storage.
|
||||
*
|
||||
* @group Categories
|
||||
* @author [A. Gianotto] [<snipe@snipe.net>]
|
||||
* @since [v4.0]
|
||||
* @param \App\Http\Requests\ImageUploadRequest $request
|
||||
@@ -173,9 +175,8 @@ class CategoriesController extends Controller
|
||||
}
|
||||
|
||||
/**
|
||||
* Show Category
|
||||
* Display the specified resource.
|
||||
*
|
||||
* @group Categories
|
||||
* @author [A. Gianotto] [<snipe@snipe.net>]
|
||||
* @since [v4.0]
|
||||
* @param int $id
|
||||
@@ -190,9 +191,8 @@ class CategoriesController extends Controller
|
||||
|
||||
|
||||
/**
|
||||
* Update Category
|
||||
* Update the specified resource in storage.
|
||||
*
|
||||
* @group Categories
|
||||
* @author [A. Gianotto] [<snipe@snipe.net>]
|
||||
* @since [v4.0]
|
||||
* @param \App\Http\Requests\ImageUploadRequest $request
|
||||
@@ -221,34 +221,36 @@ class CategoriesController extends Controller
|
||||
}
|
||||
|
||||
/**
|
||||
* Delete Category
|
||||
* Remove the specified resource from storage.
|
||||
*
|
||||
* @group Categories
|
||||
* @author [A. Gianotto] [<snipe@snipe.net>]
|
||||
* @since [v4.0]
|
||||
* @param int $id
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function destroy($id) : JsonResponse
|
||||
public function destroy(Category $category): JsonResponse
|
||||
{
|
||||
$this->authorize('delete', Category::class);
|
||||
$category = Category::withCount('assets as assets_count', 'accessories as accessories_count', 'consumables as consumables_count', 'components as components_count', 'licenses as licenses_count', 'models as models_count')->findOrFail($id);
|
||||
|
||||
if (! $category->isDeletable()) {
|
||||
try {
|
||||
DestroyCategoryAction::run(category: $category);
|
||||
} catch (ItemStillHasChildren $e) {
|
||||
return response()->json(
|
||||
Helper::formatStandardApiResponse('error', null, trans('admin/categories/message.assoc_items', ['asset_type'=>$category->category_type]))
|
||||
Helper::formatStandardApiResponse('error', null, trans('general.bulk_delete_associations.general_assoc_warning', ['asset_type' => $category->category_type]))
|
||||
);
|
||||
} catch (\Exception $e) {
|
||||
report($e);
|
||||
return response()->json(
|
||||
Helper::formatStandardApiResponse('error', null, trans('general.something_went_wrong'))
|
||||
);
|
||||
}
|
||||
$category->delete();
|
||||
|
||||
return response()->json(Helper::formatStandardApiResponse('success', null, trans('admin/categories/message.delete.success')));
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Selectlist
|
||||
* Gets a paginated collection for the select2 menus
|
||||
*
|
||||
* @group Categories
|
||||
* @author [A. Gianotto] [<snipe@snipe.net>]
|
||||
* @since [v4.0.16]
|
||||
* @see \App\Http\Transformers\SelectlistTransformer
|
||||
@@ -263,7 +265,7 @@ class CategoriesController extends Controller
|
||||
]);
|
||||
|
||||
if ($request->filled('search')) {
|
||||
$categories = $categories->where('name', 'LIKE', '%'.$request->get('search').'%');
|
||||
$categories = $categories->where('name', 'LIKE', '%'.$request->input('search').'%');
|
||||
}
|
||||
|
||||
$categories = $categories->where('category_type', $category_type)->orderBy('name', 'ASC')->paginate(50);
|
||||
|
||||
@@ -14,11 +14,6 @@ use Exception;
|
||||
|
||||
class CheckoutRequest extends Controller
|
||||
{
|
||||
/**
|
||||
* Store Asset Request
|
||||
*
|
||||
* @group Account
|
||||
*/
|
||||
public function store(Asset $asset): JsonResponse
|
||||
{
|
||||
try {
|
||||
@@ -34,11 +29,6 @@ class CheckoutRequest extends Controller
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Cancel Asset Request
|
||||
*
|
||||
* @group Account
|
||||
*/
|
||||
public function destroy(Asset $asset): JsonResponse
|
||||
{
|
||||
try {
|
||||
|
||||
@@ -15,9 +15,8 @@ use Illuminate\Http\JsonResponse;
|
||||
class CompaniesController extends Controller
|
||||
{
|
||||
/**
|
||||
* List Companies
|
||||
* Display a listing of the resource.
|
||||
*
|
||||
* @group Companies
|
||||
* @author [A. Gianotto] [<snipe@snipe.net>]
|
||||
* @since [v4.0]
|
||||
*/
|
||||
@@ -39,6 +38,7 @@ class CompaniesController extends Controller
|
||||
'accessories_count',
|
||||
'consumables_count',
|
||||
'components_count',
|
||||
'tag_color',
|
||||
'notes',
|
||||
];
|
||||
|
||||
@@ -65,6 +65,11 @@ class CompaniesController extends Controller
|
||||
$companies->where('created_by', '=', $request->input('created_by'));
|
||||
}
|
||||
|
||||
if ($request->filled('tag_color')) {
|
||||
$companies->where('tag_color', '=', $request->input('tag_color'));
|
||||
}
|
||||
|
||||
|
||||
|
||||
// Make sure the offset and limit are actually integers and do not exceed system limits
|
||||
$offset = ($request->input('offset') > $companies->count()) ? $companies->count() : app('api_offset_value');
|
||||
@@ -91,12 +96,11 @@ class CompaniesController extends Controller
|
||||
|
||||
|
||||
/**
|
||||
* Create Company
|
||||
* Store a newly created resource in storage.
|
||||
*
|
||||
* @group Companies
|
||||
* @param \App\Http\Requests\ImageUploadRequest $request
|
||||
*@since [v4.0]
|
||||
* @author [A. Gianotto] [<snipe@snipe.net>]
|
||||
* @since [v4.0]
|
||||
* @param \App\Http\Requests\ImageUploadRequest $request
|
||||
*/
|
||||
public function store(ImageUploadRequest $request) : JsonResponse
|
||||
{
|
||||
@@ -114,12 +118,11 @@ class CompaniesController extends Controller
|
||||
}
|
||||
|
||||
/**
|
||||
* Show Company
|
||||
* Display the specified resource.
|
||||
*
|
||||
* @group Companies
|
||||
* @param int $id
|
||||
* @since [v4.0]
|
||||
* @author [A. Gianotto] [<snipe@snipe.net>]
|
||||
* @since [v4.0]
|
||||
* @param int $id
|
||||
*/
|
||||
public function show($id) : array
|
||||
{
|
||||
@@ -132,13 +135,12 @@ class CompaniesController extends Controller
|
||||
|
||||
|
||||
/**
|
||||
* Update Company
|
||||
* Update the specified resource in storage.
|
||||
*
|
||||
* @group Companies
|
||||
* @author [A. Gianotto] [<snipe@snipe.net>]
|
||||
* @since [v4.0]
|
||||
* @param \App\Http\Requests\ImageUploadRequest $request
|
||||
* @param int $id
|
||||
*@author [A. Gianotto] [<snipe@snipe.net>]
|
||||
* @since [v4.0]
|
||||
*/
|
||||
public function update(ImageUploadRequest $request, $id) : JsonResponse
|
||||
{
|
||||
@@ -158,12 +160,11 @@ class CompaniesController extends Controller
|
||||
}
|
||||
|
||||
/**
|
||||
* Delete Company
|
||||
* Remove the specified resource from storage.
|
||||
*
|
||||
* @group Companies
|
||||
* @param int $id
|
||||
* @since [v4.0]
|
||||
* @author [A. Gianotto] [<snipe@snipe.net>]
|
||||
* @since [v4.0]
|
||||
* @param int $id
|
||||
*/
|
||||
public function destroy($id) : JsonResponse
|
||||
{
|
||||
@@ -182,9 +183,8 @@ class CompaniesController extends Controller
|
||||
}
|
||||
|
||||
/**
|
||||
* Selectlist
|
||||
* Gets a paginated collection for the select2 menus
|
||||
*
|
||||
* @group Companies
|
||||
* @author [A. Gianotto] [<snipe@snipe.net>]
|
||||
* @since [v4.0.16]
|
||||
* @see \App\Http\Transformers\SelectlistTransformer
|
||||
@@ -197,11 +197,12 @@ class CompaniesController extends Controller
|
||||
'companies.name',
|
||||
'companies.email',
|
||||
'companies.image',
|
||||
'companies.tag_color',
|
||||
]);
|
||||
|
||||
|
||||
if ($request->filled('search')) {
|
||||
$companies = $companies->where('companies.name', 'LIKE', '%'.$request->get('search').'%');
|
||||
$companies = $companies->where('companies.name', 'LIKE', '%'.$request->input('search').'%');
|
||||
}
|
||||
|
||||
$companies = $companies->orderBy('name', 'ASC')->paginate(50);
|
||||
|
||||
@@ -20,9 +20,8 @@ use Carbon\Carbon;
|
||||
class ComponentsController extends Controller
|
||||
{
|
||||
/**
|
||||
* List Categories
|
||||
* Display a listing of the resource.
|
||||
*
|
||||
* @group Components
|
||||
* @author [A. Gianotto] [<snipe@snipe.net>]
|
||||
* @since [v4.0]
|
||||
*
|
||||
@@ -59,8 +58,8 @@ class ComponentsController extends Controller
|
||||
];
|
||||
|
||||
$components = Component::select('components.*')
|
||||
->with('company', 'location', 'category', 'assets', 'supplier', 'adminuser', 'manufacturer', 'uncontrainedAssets')
|
||||
->withSum('uncontrainedAssets', 'components_assets.assigned_qty');
|
||||
->with('company', 'location', 'category', 'supplier', 'adminuser', 'manufacturer')
|
||||
->withSum('unconstrainedAssets as sum_unconstrained_assets', 'components_assets.assigned_qty');
|
||||
|
||||
$filter = [];
|
||||
|
||||
@@ -88,6 +87,10 @@ class ComponentsController extends Controller
|
||||
$components->where('components.company_id', '=', $request->input('company_id'));
|
||||
}
|
||||
|
||||
if ($request->filled('order_number')) {
|
||||
$components->where('components.order_number', '=', $request->input('order_number'));
|
||||
}
|
||||
|
||||
if ($request->filled('category_id')) {
|
||||
$components->where('category_id', '=', $request->input('category_id'));
|
||||
}
|
||||
@@ -113,7 +116,8 @@ class ComponentsController extends Controller
|
||||
}
|
||||
|
||||
// Make sure the offset and limit are actually integers and do not exceed system limits
|
||||
$offset = ($request->input('offset') > $components->count()) ? $components->count() : app('api_offset_value');
|
||||
$components_count = $components->count();
|
||||
$offset = ($request->input('offset') > $components_count) ? $components_count : app('api_offset_value');
|
||||
$limit = app('api_limit_value');
|
||||
|
||||
$order = $request->input('order') === 'asc' ? 'asc' : 'desc';
|
||||
@@ -144,7 +148,7 @@ class ComponentsController extends Controller
|
||||
break;
|
||||
}
|
||||
|
||||
$total = $components->count();
|
||||
$total = $components_count;
|
||||
$components = $components->skip($offset)->take($limit)->get();
|
||||
|
||||
return (new ComponentsTransformer)->transformComponents($components, $total);
|
||||
@@ -152,9 +156,8 @@ class ComponentsController extends Controller
|
||||
|
||||
|
||||
/**
|
||||
* Create Component
|
||||
* Store a newly created resource in storage.
|
||||
*
|
||||
* @group Components
|
||||
* @author [A. Gianotto] [<snipe@snipe.net>]
|
||||
* @since [v4.0]
|
||||
* @param \App\Http\Requests\ImageUploadRequest $request
|
||||
@@ -174,9 +177,8 @@ class ComponentsController extends Controller
|
||||
}
|
||||
|
||||
/**
|
||||
* Show Component
|
||||
* Display the specified resource.
|
||||
*
|
||||
* @group Components
|
||||
* @author [A. Gianotto] [<snipe@snipe.net>]
|
||||
* @param int $id
|
||||
*/
|
||||
@@ -191,9 +193,8 @@ class ComponentsController extends Controller
|
||||
}
|
||||
|
||||
/**
|
||||
* Update Component
|
||||
* Update the specified resource in storage.
|
||||
*
|
||||
* @group Components
|
||||
* @author [A. Gianotto] [<snipe@snipe.net>]
|
||||
* @since [v4.0]
|
||||
* @param \App\Http\Requests\ImageUploadRequest $request
|
||||
@@ -215,9 +216,8 @@ class ComponentsController extends Controller
|
||||
}
|
||||
|
||||
/**
|
||||
* Delete Component
|
||||
* Remove the specified resource from storage.
|
||||
*
|
||||
* @group Components
|
||||
* @author [A. Gianotto] [<snipe@snipe.net>]
|
||||
* @since [v4.0]
|
||||
* @param int $id
|
||||
@@ -238,9 +238,8 @@ class ComponentsController extends Controller
|
||||
}
|
||||
|
||||
/**
|
||||
* Component Assets
|
||||
* Display all assets attached to a component
|
||||
*
|
||||
* @group Components
|
||||
* @author [A. Bergamasco] [@vjandrea]
|
||||
* @since [v4.0]
|
||||
* @param Request $request
|
||||
@@ -280,10 +279,10 @@ class ComponentsController extends Controller
|
||||
|
||||
|
||||
/**
|
||||
* Checkout Component
|
||||
* Validate and checkout the component.
|
||||
*
|
||||
* @group Components
|
||||
* @author [A. Gianotto] [<snipe@snipe.net>]
|
||||
* t
|
||||
* @since [v5.1.8]
|
||||
* @param Request $request
|
||||
* @param int $componentId
|
||||
@@ -308,11 +307,11 @@ class ComponentsController extends Controller
|
||||
}
|
||||
|
||||
// Make sure there is at least one available to checkout
|
||||
if ($component->numRemaining() < $request->get('assigned_qty')) {
|
||||
return response()->json(Helper::formatStandardApiResponse('error', null, trans('admin/components/message.checkout.unavailable', ['remaining' => $component->numRemaining(), 'requested' => $request->get('assigned_qty')])));
|
||||
if ($component->numRemaining() < $request->input('assigned_qty')) {
|
||||
return response()->json(Helper::formatStandardApiResponse('error', null, trans('admin/components/message.checkout.unavailable', ['remaining' => $component->numRemaining(), 'requested' => $request->input('assigned_qty')])));
|
||||
}
|
||||
|
||||
if ($component->numRemaining() >= $request->get('assigned_qty')) {
|
||||
if ($component->numRemaining() >= $request->input('assigned_qty')) {
|
||||
|
||||
$asset = Asset::find($request->input('assigned_to'));
|
||||
$component->assigned_to = $request->input('assigned_to');
|
||||
@@ -320,24 +319,23 @@ class ComponentsController extends Controller
|
||||
$component->assets()->attach($component->id, [
|
||||
'component_id' => $component->id,
|
||||
'created_at' => Carbon::now(),
|
||||
'assigned_qty' => $request->get('assigned_qty', 1),
|
||||
'assigned_qty' => $request->input('assigned_qty', 1),
|
||||
'created_by' => auth()->id(),
|
||||
'asset_id' => $request->get('assigned_to'),
|
||||
'note' => $request->get('note'),
|
||||
'asset_id' => $request->input('assigned_to'),
|
||||
'note' => $request->input('note'),
|
||||
]);
|
||||
|
||||
$component->logCheckout($request->input('note'), $asset);
|
||||
$component->logCheckout($request->input('note'), $asset, null, [], $request->get('assigned_qty', 1));
|
||||
|
||||
return response()->json(Helper::formatStandardApiResponse('success', null, trans('admin/components/message.checkout.success')));
|
||||
}
|
||||
|
||||
return response()->json(Helper::formatStandardApiResponse('error', null, trans('admin/components/message.checkout.unavailable', ['remaining' => $component->numRemaining(), 'requested' => $request->get('assigned_qty')])));
|
||||
return response()->json(Helper::formatStandardApiResponse('error', null, trans('admin/components/message.checkout.unavailable', ['remaining' => $component->numRemaining(), 'requested' => $request->input('assigned_qty')])));
|
||||
}
|
||||
|
||||
/**
|
||||
* Checkin Component
|
||||
* Validate and store checkin data.
|
||||
*
|
||||
* @group Components
|
||||
* @author [A. Gianotto] [<snipe@snipe.net>]
|
||||
* @since [v5.1.8]
|
||||
* @param Request $request
|
||||
|
||||
@@ -19,21 +19,8 @@ use Illuminate\Http\JsonResponse;
|
||||
class ConsumablesController extends Controller
|
||||
{
|
||||
/**
|
||||
* List Consumables
|
||||
* Display a listing of the resource.
|
||||
*
|
||||
* @group Consumables
|
||||
* @queryParam filter string A JSON encoded array of key/value pairs to filter results by. Example: {"company":"1","location":"2"}
|
||||
* @queryParam search string A search term to filter results by.
|
||||
* @queryParam name string Filter by exact name.
|
||||
* @queryParam company_id integer Filter by exact company ID.
|
||||
* @queryParam category_id integer Filter by exact category ID.
|
||||
* @queryParam model_number string Filter by exact model number.
|
||||
* @queryParam manufacturer_id integer Filter by exact manufacturer ID.
|
||||
* @queryParam supplier_id integer Filter by exact supplier ID.
|
||||
* @queryParam location_id integer Filter by exact location ID.
|
||||
* @queryParam notes string Filter by exact notes.
|
||||
* @queryParam sort string The column to sort results by. Must be one of the following: id, name, order_number, min_amt, purchase_date, purchase_cost, company, category, model_number, item_no, manufacturer, location, qty, image, company, location, category, supplier, manufacturer. Default is created_at.
|
||||
* @queryParam order string The order to sort results by. Must be one of the following: asc, desc. Default is desc.
|
||||
* @author [A. Gianotto] [<snipe@snipe.net>]
|
||||
* @since [v4.0]
|
||||
*/
|
||||
@@ -99,6 +86,10 @@ class ConsumablesController extends Controller
|
||||
$consumables->where('consumables.company_id', '=', $request->input('company_id'));
|
||||
}
|
||||
|
||||
if ($request->filled('order_number')) {
|
||||
$consumables->where('consumables.order_number', '=', $request->input('order_number'));
|
||||
}
|
||||
|
||||
if ($request->filled('category_id')) {
|
||||
$consumables->where('category_id', '=', $request->input('category_id'));
|
||||
}
|
||||
@@ -166,7 +157,6 @@ class ConsumablesController extends Controller
|
||||
/**
|
||||
* Store a newly created resource in storage.
|
||||
*
|
||||
* @group Consumables
|
||||
* @author [A. Gianotto] [<snipe@snipe.net>]
|
||||
* @since [v4.0]
|
||||
* @param \App\Http\Requests\ImageUploadRequest $request
|
||||
@@ -186,9 +176,8 @@ class ConsumablesController extends Controller
|
||||
}
|
||||
|
||||
/**
|
||||
* Show Consumable
|
||||
* Display the specified resource.
|
||||
*
|
||||
* @group Consumables
|
||||
* @author [A. Gianotto] [<snipe@snipe.net>]
|
||||
* @param int $id
|
||||
*/
|
||||
@@ -201,9 +190,8 @@ class ConsumablesController extends Controller
|
||||
}
|
||||
|
||||
/**
|
||||
* Update Consumable
|
||||
* Update the specified resource in storage.
|
||||
*
|
||||
* @group Consumables
|
||||
* @author [A. Gianotto] [<snipe@snipe.net>]
|
||||
* @since [v4.0]
|
||||
* @param \App\Http\Requests\ImageUploadRequest $request
|
||||
@@ -224,9 +212,8 @@ class ConsumablesController extends Controller
|
||||
}
|
||||
|
||||
/**
|
||||
* Delete Consumable
|
||||
* Remove the specified resource from storage.
|
||||
*
|
||||
* @group Consumables
|
||||
* @author [A. Gianotto] [<snipe@snipe.net>]
|
||||
* @since [v4.0]
|
||||
* @param int $id
|
||||
@@ -242,9 +229,8 @@ class ConsumablesController extends Controller
|
||||
}
|
||||
|
||||
/**
|
||||
* User Assignments
|
||||
* Returns a JSON response containing details on the users associated with this consumable.
|
||||
*
|
||||
* @group Consumables
|
||||
* @author [A. Gianotto] [<snipe@snipe.net>]
|
||||
* @see \App\Http\Controllers\Consumables\ConsumablesController::getView() method that returns the form.
|
||||
* @since [v1.0]
|
||||
@@ -290,9 +276,8 @@ class ConsumablesController extends Controller
|
||||
}
|
||||
|
||||
/**
|
||||
* Checkout Consumable
|
||||
* Checkout a consumable
|
||||
*
|
||||
* @group Consumables
|
||||
* @author [A. Gutierrez] [<andres@baller.tv>]
|
||||
* @param int $id
|
||||
* @since [v4.9.5]
|
||||
@@ -345,17 +330,22 @@ class ConsumablesController extends Controller
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
event(new CheckoutableCheckedOut($consumable, $user, auth()->user(), $request->input('note')));
|
||||
event(new CheckoutableCheckedOut(
|
||||
$consumable,
|
||||
$user,
|
||||
auth()->user(),
|
||||
$request->input('note'),
|
||||
[],
|
||||
$consumable->checkout_qty,
|
||||
));
|
||||
|
||||
return response()->json(Helper::formatStandardApiResponse('success', null, trans('admin/consumables/message.checkout.success')));
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Selectlist
|
||||
* Gets a paginated collection for the select2 menus
|
||||
*
|
||||
* @group Consumables
|
||||
* @see \App\Http\Transformers\SelectlistTransformer
|
||||
*/
|
||||
public function selectlist(Request $request) : array
|
||||
@@ -366,7 +356,7 @@ class ConsumablesController extends Controller
|
||||
]);
|
||||
|
||||
if ($request->filled('search')) {
|
||||
$consumables = $consumables->where('consumables.name', 'LIKE', '%'.$request->get('search').'%');
|
||||
$consumables = $consumables->where('consumables.name', 'LIKE', '%'.$request->input('search').'%');
|
||||
}
|
||||
|
||||
$consumables = $consumables->orderBy('name', 'ASC')->paginate(50);
|
||||
|
||||
@@ -14,9 +14,8 @@ use Illuminate\Http\JsonResponse;
|
||||
class CustomFieldsController extends Controller
|
||||
{
|
||||
/**
|
||||
* List Custom Fields
|
||||
* Reorder the custom fields within a fieldset
|
||||
*
|
||||
* @group Custom Fields
|
||||
* @author [Brady Wetherington] [<uberbrady@gmail.com>]
|
||||
* @param int $id
|
||||
* @since [v3.0]
|
||||
@@ -31,9 +30,7 @@ class CustomFieldsController extends Controller
|
||||
}
|
||||
|
||||
/**
|
||||
* Show Field
|
||||
*
|
||||
* @group Custom Fields
|
||||
* Shows the given field
|
||||
* @author [V. Cordes] [<volker@fdatek.de>]
|
||||
* @param int $id
|
||||
* @since [v4.1.10]
|
||||
@@ -49,9 +46,8 @@ class CustomFieldsController extends Controller
|
||||
}
|
||||
|
||||
/**
|
||||
* Update Field
|
||||
* Update the specified field
|
||||
*
|
||||
* @group Custom Fields
|
||||
* @author [V. Cordes] [<volker@fdatek.de>]
|
||||
* @since [v4.1.10]
|
||||
* @param \Illuminate\Http\Request $request
|
||||
@@ -84,9 +80,8 @@ class CustomFieldsController extends Controller
|
||||
}
|
||||
|
||||
/**
|
||||
* Create Field
|
||||
* Store a newly created field.
|
||||
*
|
||||
* @group Custom Fields
|
||||
* @author [V. Cordes] [<volker@fdatek.de>]
|
||||
* @since [v4.1.10]
|
||||
* @param \Illuminate\Http\Request $request
|
||||
@@ -117,12 +112,6 @@ class CustomFieldsController extends Controller
|
||||
return response()->json(Helper::formatStandardApiResponse('error', null, $field->getErrors()));
|
||||
}
|
||||
|
||||
/**
|
||||
* Reorder Fields
|
||||
*
|
||||
* @group Custom Fields
|
||||
* @param \Illuminate\Http\Request $request
|
||||
*/
|
||||
public function postReorder(Request $request, $id)
|
||||
{
|
||||
$fieldset = CustomFieldset::find($id);
|
||||
@@ -145,12 +134,6 @@ class CustomFieldsController extends Controller
|
||||
return $fieldset->fields()->sync($fields);
|
||||
}
|
||||
|
||||
/**
|
||||
* Add Field to Fieldset
|
||||
*
|
||||
* @group Custom Fields
|
||||
* @param \Illuminate\Http\Request $request
|
||||
*/
|
||||
public function associate(Request $request, $field_id) : JsonResponse
|
||||
{
|
||||
$this->authorize('update', CustomFieldset::class);
|
||||
@@ -170,12 +153,6 @@ class CustomFieldsController extends Controller
|
||||
return response()->json(Helper::formatStandardApiResponse('success', $fieldset, trans('admin/custom_fields/message.fieldset.update.success')));
|
||||
}
|
||||
|
||||
/**
|
||||
* Remove Field from Fieldset
|
||||
*
|
||||
* @group Custom Fields
|
||||
* @param \Illuminate\Http\Request $request
|
||||
*/
|
||||
public function disassociate(Request $request, $field_id) : JsonResponse
|
||||
{
|
||||
$this->authorize('update', CustomFieldset::class);
|
||||
@@ -195,9 +172,8 @@ class CustomFieldsController extends Controller
|
||||
}
|
||||
|
||||
/**
|
||||
* Delete Field
|
||||
* Delete a custom field.
|
||||
*
|
||||
* @group Custom Fields
|
||||
* @author [Brady Wetherington] [<uberbrady@gmail.com>]
|
||||
* @since [v1.8]
|
||||
*/
|
||||
|
||||
@@ -24,10 +24,7 @@ use Illuminate\Http\JsonResponse;
|
||||
class CustomFieldsetsController extends Controller
|
||||
{
|
||||
/**
|
||||
* List Fieldsets
|
||||
*
|
||||
* @group Custom Fields
|
||||
* @subgroup Custom Fieldsets
|
||||
* Shows the given fieldset and its fields
|
||||
* @author [A. Gianotto] [<snipe@snipe.net>]
|
||||
* @author [Josh Gibson]
|
||||
* @param int $id
|
||||
@@ -42,13 +39,10 @@ class CustomFieldsetsController extends Controller
|
||||
}
|
||||
|
||||
/**
|
||||
* Show Fieldset and Fields
|
||||
*
|
||||
* @group Custom Fields
|
||||
* @subgroup Custom Fieldsets
|
||||
* @param int $id
|
||||
* @author [Josh Gibson]
|
||||
* Shows the given fieldset and its fields
|
||||
* @author [A. Gianotto] [<snipe@snipe.net>]
|
||||
* @author [Josh Gibson]
|
||||
* @param int $id
|
||||
* @since [v1.8]
|
||||
*/
|
||||
public function show($id) : JsonResponse | array
|
||||
@@ -62,14 +56,12 @@ class CustomFieldsetsController extends Controller
|
||||
}
|
||||
|
||||
/**
|
||||
* Update Fieldset
|
||||
* Update the specified resource in storage.
|
||||
*
|
||||
* @group Custom Fields
|
||||
* @subgroup Custom Fieldsets
|
||||
* @author [A. Gianotto] [<snipe@snipe.net>]
|
||||
* @since [v4.0]
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @param int $id
|
||||
*@author [A. Gianotto] [<snipe@snipe.net>]
|
||||
* @since [v4.0]
|
||||
*/
|
||||
public function update(Request $request, $id) : JsonResponse
|
||||
{
|
||||
@@ -85,13 +77,11 @@ class CustomFieldsetsController extends Controller
|
||||
}
|
||||
|
||||
/**
|
||||
* Create Fieldset
|
||||
* Store a newly created resource in storage.
|
||||
*
|
||||
* @group Custom Fields
|
||||
* @subgroup Custom Fieldsets
|
||||
* @param \Illuminate\Http\Request $request
|
||||
*@since [v4.0]
|
||||
* @author [A. Gianotto] [<snipe@snipe.net>]
|
||||
* @since [v4.0]
|
||||
* @param \Illuminate\Http\Request $request
|
||||
*/
|
||||
public function store(Request $request) : JsonResponse
|
||||
{
|
||||
@@ -119,10 +109,8 @@ class CustomFieldsetsController extends Controller
|
||||
}
|
||||
|
||||
/**
|
||||
* Delete Fieldset
|
||||
* Delete a custom fieldset.
|
||||
*
|
||||
* @group Custom Fields
|
||||
* @subgroup Custom Fieldsets
|
||||
* @author [A. Gianotto] [<snipe@snipe.net>]
|
||||
* @since [v4.0]
|
||||
*/
|
||||
@@ -146,14 +134,12 @@ class CustomFieldsetsController extends Controller
|
||||
}
|
||||
|
||||
/**
|
||||
* Show Fields in Fieldset
|
||||
* Return JSON containing a list of fields belonging to a fieldset.
|
||||
*
|
||||
* @group Custom Fields
|
||||
* @subgroup Custom Fieldsets
|
||||
* @param $fieldsetId
|
||||
* @return string JSON
|
||||
* @author [V. Cordes] [<volker@fdatek.de>]
|
||||
* @since [v4.1.10]
|
||||
* @param $fieldsetId
|
||||
* @return string JSON
|
||||
*/
|
||||
public function fields($id) : array
|
||||
{
|
||||
@@ -165,10 +151,9 @@ class CustomFieldsetsController extends Controller
|
||||
}
|
||||
|
||||
/**
|
||||
* Fields in Fieldset with Default Values for Model
|
||||
* Return JSON containing a list of fields belonging to a fieldset with the
|
||||
* default values for a given model
|
||||
*
|
||||
* @group Custom Fields
|
||||
* @subgroup Custom Fieldsets
|
||||
* @param $modelId
|
||||
* @param $fieldsetId
|
||||
* @return string JSON
|
||||
|
||||
@@ -4,6 +4,7 @@ namespace App\Http\Controllers\Api;
|
||||
|
||||
use App\Helpers\Helper;
|
||||
use App\Http\Controllers\Controller;
|
||||
use App\Http\Requests\StoreDepartmentRequest;
|
||||
use App\Http\Transformers\DepartmentsTransformer;
|
||||
use App\Http\Transformers\SelectlistTransformer;
|
||||
use App\Models\Department;
|
||||
@@ -15,39 +16,31 @@ use Illuminate\Http\JsonResponse;
|
||||
class DepartmentsController extends Controller
|
||||
{
|
||||
/**
|
||||
* List Departments
|
||||
* Display a listing of the resource.
|
||||
*
|
||||
* @group Departments
|
||||
* @queryParam search string Search term to filter results. Example: IT
|
||||
* @queryParam name string Filter by exact department name. Example: IT
|
||||
* @queryParam company_id integer Filter by exact company ID. Example: 1
|
||||
* @queryParam manager_id integer Filter by exact manager (user) ID. Example:
|
||||
* @queryParam location_id integer Filter by exact location ID. Example: 1
|
||||
* @queryParam sort string Column to sort results by. Allowed values: id, name, image, users_count, notes, created_at, updated_at, location, manager, company. Default: created_at. Example: name
|
||||
* @queryParam order string Order of sorted results. Allowed values: asc, desc. Default: desc. Example: asc
|
||||
* @queryParam offset integer Offset/starting position of the results. Default: 0. Example: 0
|
||||
* @queryParam limit integer Limit the number of results returned. Default: 25. Maximum: 100. Example: 50
|
||||
* @author [Godfrey Martinez] [<snipe@snipe.net>]
|
||||
* @since [v4.0]
|
||||
*/
|
||||
public function index(Request $request) : JsonResponse | array
|
||||
{
|
||||
$this->authorize('view', Department::class);
|
||||
$allowed_columns = ['id', 'name', 'image', 'users_count', 'notes'];
|
||||
$allowed_columns = ['id', 'name', 'image', 'users_count', 'notes', 'tag_color'];
|
||||
|
||||
$departments = Department::select(
|
||||
'departments.id',
|
||||
'departments.name',
|
||||
'departments.phone',
|
||||
'departments.fax',
|
||||
'departments.location_id',
|
||||
'departments.company_id',
|
||||
'departments.manager_id',
|
||||
'departments.created_at',
|
||||
'departments.updated_at',
|
||||
'departments.image',
|
||||
'departments.notes',
|
||||
)->with('users')->with('location')->with('manager')->with('company')->withCount('users as users_count');
|
||||
[
|
||||
'departments.id',
|
||||
'departments.name',
|
||||
'departments.phone',
|
||||
'departments.fax',
|
||||
'departments.location_id',
|
||||
'departments.company_id',
|
||||
'departments.manager_id',
|
||||
'departments.created_at',
|
||||
'departments.updated_at',
|
||||
'departments.image',
|
||||
'departments.tag_color',
|
||||
'departments.notes'
|
||||
])->with('location')->with('manager')->with('company')->withCount('users as users_count');
|
||||
|
||||
if ($request->filled('search')) {
|
||||
$departments = $departments->TextSearch($request->input('search'));
|
||||
@@ -69,6 +62,10 @@ class DepartmentsController extends Controller
|
||||
$departments->where('location_id', '=', $request->input('location_id'));
|
||||
}
|
||||
|
||||
if ($request->filled('tag_color')) {
|
||||
$departments->where('tag_color', '=', $request->input('departments.tag_color'));
|
||||
}
|
||||
|
||||
// Make sure the offset and limit are actually integers and do not exceed system limits
|
||||
$offset = ($request->input('offset') > $departments->count()) ? $departments->count() : app('api_offset_value');
|
||||
$limit = app('api_limit_value');
|
||||
@@ -98,34 +95,31 @@ class DepartmentsController extends Controller
|
||||
}
|
||||
|
||||
/**
|
||||
* Create Department
|
||||
* Store a newly created resource in storage.
|
||||
*
|
||||
* @group Departments
|
||||
* @author [A. Gianotto] [<snipe@snipe.net>]
|
||||
* @since [v4.0]
|
||||
* @param \App\Http\Requests\ImageUploadRequest $request
|
||||
*/
|
||||
public function store(ImageUploadRequest $request) : JsonResponse
|
||||
public function store(StoreDepartmentRequest $request): JsonResponse
|
||||
{
|
||||
$this->authorize('create', Department::class);
|
||||
$department = new Department;
|
||||
$department->fill($request->all());
|
||||
$department->fill($request->validated());
|
||||
$department = $request->handleImages($department);
|
||||
|
||||
$department->created_by = auth()->id();
|
||||
$department->manager_id = ($request->filled('manager_id') ? $request->input('manager_id') : null);
|
||||
|
||||
if ($department->save()) {
|
||||
return response()->json(Helper::formatStandardApiResponse('success', $department, trans('admin/departments/message.create.success')));
|
||||
return response()->json(Helper::formatStandardApiResponse('success', (new DepartmentsTransformer)->transformDepartment($department), trans('admin/departments/message.create.success')));
|
||||
}
|
||||
return response()->json(Helper::formatStandardApiResponse('error', null, $department->getErrors()));
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Show Department
|
||||
* Display the specified resource.
|
||||
*
|
||||
* @group Departments
|
||||
* @author [A. Gianotto] [<snipe@snipe.net>]
|
||||
* @since [v4.0]
|
||||
* @param int $id
|
||||
@@ -133,14 +127,13 @@ class DepartmentsController extends Controller
|
||||
public function show($id) : array
|
||||
{
|
||||
$this->authorize('view', Department::class);
|
||||
$department = Department::findOrFail($id);
|
||||
$department = Department::withCount('users as users_count')->findOrFail($id);
|
||||
return (new DepartmentsTransformer)->transformDepartment($department);
|
||||
}
|
||||
|
||||
/**
|
||||
* Update Department
|
||||
* Update the specified resource in storage.
|
||||
*
|
||||
* @group Departments
|
||||
* @author [A. Gianotto] [<snipe@snipe.net>]
|
||||
* @since [v5.0]
|
||||
* @param \App\Http\Requests\ImageUploadRequest $request
|
||||
@@ -154,7 +147,7 @@ class DepartmentsController extends Controller
|
||||
$department = $request->handleImages($department);
|
||||
|
||||
if ($department->save()) {
|
||||
return response()->json(Helper::formatStandardApiResponse('success', $department, trans('admin/departments/message.update.success')));
|
||||
return response()->json(Helper::formatStandardApiResponse('success', (new DepartmentsTransformer)->transformDepartment($department), trans('admin/departments/message.update.success')));
|
||||
}
|
||||
|
||||
return response()->json(Helper::formatStandardApiResponse('error', null, $department->getErrors()));
|
||||
@@ -162,9 +155,8 @@ class DepartmentsController extends Controller
|
||||
|
||||
|
||||
/**
|
||||
* Delete Department
|
||||
* Validates and deletes selected department.
|
||||
*
|
||||
* @group Departments
|
||||
* @author [A. Gianotto] [<snipe@snipe.net>]
|
||||
* @param int $locationId
|
||||
* @since [v4.0]
|
||||
@@ -185,9 +177,8 @@ class DepartmentsController extends Controller
|
||||
}
|
||||
|
||||
/**
|
||||
* Selectlist
|
||||
* Gets a paginated collection for the select2 menus
|
||||
*
|
||||
* @group Departments
|
||||
* @author [A. Gianotto] [<snipe@snipe.net>]
|
||||
* @since [v4.0.16]
|
||||
* @see \App\Http\Transformers\SelectlistTransformer
|
||||
@@ -200,10 +191,11 @@ class DepartmentsController extends Controller
|
||||
'id',
|
||||
'name',
|
||||
'image',
|
||||
'tag_color',
|
||||
]);
|
||||
|
||||
if ($request->filled('search')) {
|
||||
$departments = $departments->where('name', 'LIKE', '%'.$request->get('search').'%');
|
||||
$departments = $departments->where('name', 'LIKE', '%'.$request->input('search').'%');
|
||||
}
|
||||
|
||||
$departments = $departments->orderBy('name', 'ASC')->paginate(50);
|
||||
|
||||
@@ -12,9 +12,8 @@ use Illuminate\Http\JsonResponse;
|
||||
class DepreciationsController extends Controller
|
||||
{
|
||||
/**
|
||||
* List Depreciations
|
||||
* Display a listing of the resource.
|
||||
*
|
||||
* @group Depreciations
|
||||
* @author [A. Gianotto] [<snipe@snipe.net>]
|
||||
* @since [v4.0]
|
||||
*/
|
||||
@@ -66,9 +65,8 @@ class DepreciationsController extends Controller
|
||||
}
|
||||
|
||||
/**
|
||||
* Create Depreciation
|
||||
* Store a newly created resource in storage.
|
||||
*
|
||||
* @group Depreciations
|
||||
* @author [A. Gianotto] [<snipe@snipe.net>]
|
||||
* @since [v4.0]
|
||||
* @param \Illuminate\Http\Request $request
|
||||
@@ -87,9 +85,8 @@ class DepreciationsController extends Controller
|
||||
}
|
||||
|
||||
/**
|
||||
* Show Depreciation
|
||||
* Display the specified resource.
|
||||
*
|
||||
* @group Depreciations
|
||||
* @author [A. Gianotto] [<snipe@snipe.net>]
|
||||
* @since [v4.0]
|
||||
* @param int $id
|
||||
@@ -103,9 +100,8 @@ class DepreciationsController extends Controller
|
||||
}
|
||||
|
||||
/**
|
||||
* Update Depreciation
|
||||
* Update the specified resource in storage.
|
||||
*
|
||||
* @group Depreciations
|
||||
* @author [A. Gianotto] [<snipe@snipe.net>]
|
||||
* @since [v4.0]
|
||||
* @param \Illuminate\Http\Request $request
|
||||
@@ -125,9 +121,8 @@ class DepreciationsController extends Controller
|
||||
}
|
||||
|
||||
/**
|
||||
* Delete Depreciation
|
||||
* Remove the specified resource from storage.
|
||||
*
|
||||
* @group Depreciations
|
||||
* @author [A. Gianotto] [<snipe@snipe.net>]
|
||||
* @since [v4.0]
|
||||
* @param int $id
|
||||
|
||||
@@ -15,7 +15,6 @@ class GroupsController extends Controller
|
||||
/**
|
||||
* Display a listing of the resource.
|
||||
*
|
||||
* @group User Groups
|
||||
* @author [A. Gianotto] [<snipe@snipe.net>]
|
||||
* @since [v4.0]
|
||||
*/
|
||||
@@ -25,7 +24,7 @@ class GroupsController extends Controller
|
||||
|
||||
$this->authorize('view', Group::class);
|
||||
|
||||
$groups = Group::select('id', 'name', 'permissions', 'notes', 'created_at', 'updated_at', 'created_by')->with('adminuser')->withCount('users as users_count');
|
||||
$groups = Group::select(['id', 'name', 'permissions', 'notes', 'created_at', 'updated_at', 'created_by'])->with('adminuser')->withCount('users as users_count');
|
||||
|
||||
if ($request->filled('search')) {
|
||||
$groups = $groups->TextSearch($request->input('search'));
|
||||
@@ -51,6 +50,7 @@ class GroupsController extends Controller
|
||||
'id',
|
||||
'name',
|
||||
'created_at',
|
||||
'updated_at',
|
||||
'users_count',
|
||||
];
|
||||
|
||||
@@ -66,9 +66,8 @@ class GroupsController extends Controller
|
||||
}
|
||||
|
||||
/**
|
||||
* Create Group
|
||||
* Store a newly created resource in storage.
|
||||
*
|
||||
* @group User Groups
|
||||
* @author [A. Gianotto] [<snipe@snipe.net>]
|
||||
* @since [v4.0]
|
||||
* @param \Illuminate\Http\Request $request
|
||||
@@ -94,9 +93,8 @@ class GroupsController extends Controller
|
||||
}
|
||||
|
||||
/**
|
||||
* Show Group
|
||||
* Display the specified resource.
|
||||
*
|
||||
* @group User Groups
|
||||
* @author [A. Gianotto] [<snipe@snipe.net>]
|
||||
* @since [v4.0]
|
||||
* @param int $id
|
||||
@@ -109,9 +107,8 @@ class GroupsController extends Controller
|
||||
}
|
||||
|
||||
/**
|
||||
* Update Group
|
||||
* Update the specified resource in storage.
|
||||
*
|
||||
* @group User Groups
|
||||
* @author [A. Gianotto] [<snipe@snipe.net>]
|
||||
* @since [v4.0]
|
||||
* @param \Illuminate\Http\Request $request
|
||||
@@ -136,7 +133,6 @@ class GroupsController extends Controller
|
||||
/**
|
||||
* Remove the specified resource from storage.
|
||||
*
|
||||
* @group User Groups
|
||||
* @author [A. Gianotto] [<snipe@snipe.net>]
|
||||
* @since [v4.0]
|
||||
* @param int $id
|
||||
|
||||
@@ -15,6 +15,7 @@ use Illuminate\Database\Eloquent\JsonEncodingException;
|
||||
use Illuminate\Support\Facades\Request;
|
||||
use Illuminate\Support\Facades\Session;
|
||||
use Illuminate\Support\Facades\Storage;
|
||||
use Illuminate\Support\Str;
|
||||
use League\Csv\Reader;
|
||||
use Onnov\DetectEncoding\EncodingDetector;
|
||||
use Symfony\Component\HttpFoundation\File\Exception\FileException;
|
||||
@@ -24,9 +25,8 @@ use Illuminate\Http\JsonResponse;
|
||||
class ImportController extends Controller
|
||||
{
|
||||
/**
|
||||
* List Import Files
|
||||
* Display a listing of the resource.
|
||||
*
|
||||
* @group Imports
|
||||
*/
|
||||
public function index() : JsonResponse | array
|
||||
{
|
||||
@@ -36,9 +36,8 @@ class ImportController extends Controller
|
||||
}
|
||||
|
||||
/**
|
||||
* Save Import File
|
||||
* Process and store a CSV upload file.
|
||||
*
|
||||
* @group Imports
|
||||
* @param \Illuminate\Http\Request $request
|
||||
*/
|
||||
public function store() : JsonResponse
|
||||
@@ -151,7 +150,9 @@ class ImportController extends Controller
|
||||
}
|
||||
|
||||
$date = date('Y-m-d-his');
|
||||
$fixed_filename = str_slug($file->getClientOriginalName());
|
||||
|
||||
$fixed_filename = Str::of($file->getClientOriginalName())->basename('.csv').'.csv';
|
||||
|
||||
try {
|
||||
$file->move($path, $date.'-'.$fixed_filename);
|
||||
} catch (FileException $exception) {
|
||||
@@ -186,9 +187,8 @@ class ImportController extends Controller
|
||||
}
|
||||
|
||||
/**
|
||||
* Process Import
|
||||
* Processes the specified Import.
|
||||
*
|
||||
* @group Imports
|
||||
* @param int $import_id
|
||||
*/
|
||||
public function process(ItemImportRequest $request, $import_id) : JsonResponse
|
||||
@@ -196,7 +196,7 @@ class ImportController extends Controller
|
||||
$this->authorize('import');
|
||||
|
||||
// Run a backup immediately before processing
|
||||
if ($request->get('run-backup')) {
|
||||
if ($request->input('run-backup')) {
|
||||
Log::debug('Backup manually requested via importer');
|
||||
Artisan::call('snipeit:backup', ['--filename' => 'pre-import-backup-'.date('Y-m-d-H-i-s')]);
|
||||
} else {
|
||||
@@ -212,38 +212,49 @@ class ImportController extends Controller
|
||||
|
||||
$errors = $request->import($import);
|
||||
$redirectTo = 'hardware.index';
|
||||
switch ($request->get('import-type')) {
|
||||
switch ($request->input('import-type')) {
|
||||
case 'asset':
|
||||
$model_perms = 'App\Models\Asset';
|
||||
$redirectTo = 'hardware.index';
|
||||
break;
|
||||
case 'assetModel':
|
||||
$model_perms = 'App\Models\AssetModel';
|
||||
$redirectTo = 'models.index';
|
||||
break;
|
||||
case 'accessory':
|
||||
$model_perms = 'App\Models\Accessory';
|
||||
$redirectTo = 'accessories.index';
|
||||
break;
|
||||
case 'consumable':
|
||||
$model_perms = 'App\Models\Consumable';
|
||||
$redirectTo = 'consumables.index';
|
||||
break;
|
||||
case 'component':
|
||||
$model_perms = 'App\Models\Component';
|
||||
$redirectTo = 'components.index';
|
||||
break;
|
||||
case 'license':
|
||||
$model_perms = 'App\Models\License';
|
||||
$redirectTo = 'licenses.index';
|
||||
break;
|
||||
case 'user':
|
||||
$model_perms = 'App\Models\User';
|
||||
$redirectTo = 'users.index';
|
||||
break;
|
||||
case 'location':
|
||||
$model_perms = 'App\Models\Location';
|
||||
$redirectTo = 'locations.index';
|
||||
break;
|
||||
case 'supplier':
|
||||
$model_perms = 'App\Models\Supplier';
|
||||
$redirectTo = 'suppliers.index';
|
||||
break;
|
||||
case 'manufacturer':
|
||||
$model_perms = 'App\Models\Manufacturer';
|
||||
$redirectTo = 'manufacturers.index';
|
||||
break;
|
||||
case 'category':
|
||||
$model_perms = 'App\Models\Category';
|
||||
$redirectTo = 'categories.index';
|
||||
break;
|
||||
}
|
||||
@@ -254,20 +265,30 @@ class ImportController extends Controller
|
||||
//Flash message before the redirect
|
||||
Session::flash('success', trans('admin/hardware/message.import.success'));
|
||||
|
||||
return response()->json(Helper::formatStandardApiResponse('success', null, ['redirect_url' => route($redirectTo)]));
|
||||
if (auth()->user()->can('view', $model_perms)) {
|
||||
return response()->json(Helper::formatStandardApiResponse('success', null, ['redirect_url' => route($redirectTo)]));
|
||||
}
|
||||
|
||||
return response()->json(Helper::formatStandardApiResponse('success', null, ['redirect_url' => route('imports.index')]));
|
||||
}
|
||||
|
||||
/**
|
||||
* Delete Import File
|
||||
* Remove the specified resource from storage.
|
||||
*
|
||||
* @group Imports
|
||||
* @param int $import_id
|
||||
*/
|
||||
public function destroy($import_id) : JsonResponse
|
||||
{
|
||||
$this->authorize('create', Asset::class);
|
||||
$this->authorize('import');
|
||||
|
||||
if ($import = Import::find($import_id)) {
|
||||
|
||||
|
||||
if ((auth()->user()->id != $import->created_by) && (!auth()->user()->isSuperUser())) {
|
||||
return response()->json(Helper::formatStandardApiResponse('warning', null, trans('admin/hardware/message.import.file_not_deleted_warning')));
|
||||
}
|
||||
|
||||
|
||||
try {
|
||||
// Try to delete the file
|
||||
Storage::delete('imports/'.$import->file_path);
|
||||
@@ -284,4 +305,6 @@ class ImportController extends Controller
|
||||
}
|
||||
return response()->json(Helper::formatStandardApiResponse('warning', null, trans('admin/hardware/message.import.file_not_deleted_warning')));
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -13,9 +13,8 @@ use Illuminate\Http\JsonResponse;
|
||||
class LabelsController extends Controller
|
||||
{
|
||||
/**
|
||||
* List Labels
|
||||
* Returns JSON listing of all labels.
|
||||
*
|
||||
* @group Labels
|
||||
* @author Grant Le Roux <grant.leroux+snipe-it@gmail.com>
|
||||
*/
|
||||
public function index(Request $request) : JsonResponse | array
|
||||
@@ -25,7 +24,7 @@ class LabelsController extends Controller
|
||||
$labels = Label::find();
|
||||
|
||||
if ($request->filled('search')) {
|
||||
$search = $request->get('search');
|
||||
$search = $request->input('search');
|
||||
$labels = $labels->filter(function ($label, $index) use ($search) {
|
||||
return stripos($label->getName(), $search) !== false;
|
||||
});
|
||||
@@ -33,11 +32,11 @@ class LabelsController extends Controller
|
||||
|
||||
$total = $labels->count();
|
||||
|
||||
$offset = $request->get('offset', 0);
|
||||
$offset = $request->input('offset', 0);
|
||||
$offset = ($offset > $total) ? $total : $offset;
|
||||
|
||||
$maxLimit = config('app.max_results');
|
||||
$limit = $request->get('limit', $maxLimit);
|
||||
$limit = $request->input('limit', $maxLimit);
|
||||
$limit = ($limit > $maxLimit) ? $maxLimit : $limit;
|
||||
|
||||
$labels = $labels->skip($offset)->take($limit);
|
||||
@@ -46,9 +45,8 @@ class LabelsController extends Controller
|
||||
}
|
||||
|
||||
/**
|
||||
* Show Label
|
||||
* Returns JSON with information about a label for detail view.
|
||||
*
|
||||
* @group Labels
|
||||
* @author Grant Le Roux <grant.leroux+snipe-it@gmail.com>
|
||||
* @param string $labelName
|
||||
*/
|
||||
|
||||
@@ -15,10 +15,8 @@ use Illuminate\Http\Request;
|
||||
class LicenseSeatsController extends Controller
|
||||
{
|
||||
/**
|
||||
* List License Seats
|
||||
* Display a listing of the resource.
|
||||
*
|
||||
* @group Licenses
|
||||
* @subgroup License Seats
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @param int $licenseId
|
||||
*/
|
||||
@@ -28,11 +26,11 @@ class LicenseSeatsController extends Controller
|
||||
if ($license = License::find($licenseId)) {
|
||||
$this->authorize('view', $license);
|
||||
|
||||
$seats = LicenseSeat::with('license', 'user', 'asset', 'user.department')
|
||||
$seats = LicenseSeat::with('license', 'user', 'asset', 'user.department', 'user.company', 'asset.company')
|
||||
->where('license_seats.license_id', $licenseId);
|
||||
|
||||
if ($request->input('status') == 'available') {
|
||||
$seats->whereNull('license_seats.assigned_to');
|
||||
$seats->whereNull('license_seats.assigned_to')->whereNull('license_seats.asset_id');
|
||||
}
|
||||
|
||||
if ($request->input('status') == 'assigned') {
|
||||
@@ -42,8 +40,10 @@ class LicenseSeatsController extends Controller
|
||||
|
||||
$order = $request->input('order') === 'asc' ? 'asc' : 'desc';
|
||||
|
||||
if ($request->input('sort') == 'department') {
|
||||
if ($request->input('sort') == 'assigned_user.department') {
|
||||
$seats->OrderDepartments($order);
|
||||
} elseif ($request->input('sort') == 'assigned_user.company') {
|
||||
$seats->OrderCompany($order);
|
||||
} else {
|
||||
$seats->orderBy('updated_at', $order);
|
||||
}
|
||||
@@ -70,10 +70,8 @@ class LicenseSeatsController extends Controller
|
||||
}
|
||||
|
||||
/**
|
||||
* Show License Seat
|
||||
* Display the specified resource.
|
||||
*
|
||||
* @group Licenses
|
||||
* @subgroup License Seats
|
||||
* @param int $licenseId
|
||||
* @param int $seatId
|
||||
*/
|
||||
@@ -81,90 +79,122 @@ class LicenseSeatsController extends Controller
|
||||
{
|
||||
|
||||
$this->authorize('view', License::class);
|
||||
// sanity checks:
|
||||
// 1. does the license seat exist?
|
||||
if (! $licenseSeat = LicenseSeat::find($seatId)) {
|
||||
return response()->json(Helper::formatStandardApiResponse('error', null, 'Seat not found'));
|
||||
}
|
||||
// 2. does the seat belong to the specified license?
|
||||
if (! $license = $licenseSeat->license()->first() || $license->id != intval($licenseId)) {
|
||||
return response()->json(Helper::formatStandardApiResponse('error', null, 'Seat does not belong to the specified license'));
|
||||
|
||||
if ($licenseSeat = LicenseSeat::where('license_id', $licenseId)->find($seatId)) {
|
||||
return (new LicenseSeatsTransformer)->transformLicenseSeat($licenseSeat);
|
||||
}
|
||||
|
||||
return (new LicenseSeatsTransformer)->transformLicenseSeat($licenseSeat);
|
||||
return response()->json(Helper::formatStandardApiResponse('error', null, 'Seat ID or license not found or the seat does not belong to this license'));
|
||||
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Update License Seat
|
||||
* Update the specified resource in storage.
|
||||
*
|
||||
* @group Licenses
|
||||
* @subgroup License Seats
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @param int $licenseId
|
||||
* @param int $seatId
|
||||
*/
|
||||
public function update(Request $request, $licenseId, $seatId) : JsonResponse | array
|
||||
{
|
||||
$validated = $this->validate($request, [
|
||||
'assigned_to' => [
|
||||
'sometimes',
|
||||
'int',
|
||||
'nullable',
|
||||
'prohibits:asset_id',
|
||||
// must be a valid user or null to unassign
|
||||
function ($attribute, $value, $fail) {
|
||||
if (!is_null($value) && !User::where('id', $value)->whereNull('deleted_at')->exists()) {
|
||||
$fail('The selected assigned_to is invalid.');
|
||||
}
|
||||
},
|
||||
],
|
||||
'asset_id' => [
|
||||
'sometimes',
|
||||
'int',
|
||||
'nullable',
|
||||
'prohibits:assigned_to',
|
||||
// must be a valid asset or null to unassign
|
||||
function ($attribute, $value, $fail) {
|
||||
if (!is_null($value) && !Asset::where('id', $value)->whereNull('deleted_at')->exists()) {
|
||||
$fail('The selected asset_id is invalid.');
|
||||
}
|
||||
},
|
||||
],
|
||||
'notes' => 'sometimes|string|nullable',
|
||||
]);
|
||||
|
||||
$this->authorize('checkout', License::class);
|
||||
|
||||
$licenseSeat = LicenseSeat::with(['license', 'asset', 'user'])->find($seatId);
|
||||
|
||||
if (! $licenseSeat = LicenseSeat::find($seatId)) {
|
||||
if (!$licenseSeat) {
|
||||
return response()->json(Helper::formatStandardApiResponse('error', null, 'Seat not found'));
|
||||
}
|
||||
|
||||
$license = $licenseSeat->license()->first();
|
||||
$license = $licenseSeat->license;
|
||||
if (!$license || $license->id != intval($licenseId)) {
|
||||
return response()->json(Helper::formatStandardApiResponse('error', null, 'Seat does not belong to the specified license'));
|
||||
}
|
||||
|
||||
$oldUser = $licenseSeat->user()->first();
|
||||
$oldAsset = $licenseSeat->asset()->first();
|
||||
$oldUser = $licenseSeat->user;
|
||||
$oldAsset = $licenseSeat->asset;
|
||||
|
||||
// attempt to update the license seat
|
||||
$licenseSeat->fill($request->all());
|
||||
$licenseSeat->created_by = auth()->id();
|
||||
$licenseSeat->fill($validated);
|
||||
|
||||
// check if this update is a checkin operation
|
||||
// 1. are relevant fields touched at all?
|
||||
$touched = $licenseSeat->isDirty('assigned_to') || $licenseSeat->isDirty('asset_id');
|
||||
// 2. are they cleared? if yes then this is a checkin operation
|
||||
$is_checkin = ($touched && $licenseSeat->assigned_to === null && $licenseSeat->asset_id === null);
|
||||
$assignmentTouched = $licenseSeat->isDirty('assigned_to') || $licenseSeat->isDirty('asset_id');
|
||||
$anythingTouched = $licenseSeat->isDirty();
|
||||
|
||||
if (! $touched) {
|
||||
// nothing to update
|
||||
return response()->json(Helper::formatStandardApiResponse('success', $licenseSeat, trans('admin/licenses/message.update.success')));
|
||||
if (! $anythingTouched) {
|
||||
return response()->json(
|
||||
Helper::formatStandardApiResponse('success', $licenseSeat, trans('admin/licenses/message.update.success'))
|
||||
);
|
||||
}
|
||||
if( $touched && $licenseSeat->unreassignable_seat) {
|
||||
if( $assignmentTouched && $licenseSeat->unreassignable_seat) {
|
||||
return response()->json(Helper::formatStandardApiResponse('error', null, trans('admin/licenses/message.checkout.unavailable')));
|
||||
}
|
||||
|
||||
// 2. are they cleared? if yes then this is a checkin operation
|
||||
$is_checkin = ($assignmentTouched && $licenseSeat->assigned_to === null && $licenseSeat->asset_id === null);
|
||||
$target = null;
|
||||
|
||||
// the logging functions expect only one "target". if both asset and user are present in the request,
|
||||
// we simply let assets take precedence over users...
|
||||
if ($licenseSeat->isDirty('assigned_to')) {
|
||||
$target = $is_checkin ? $oldUser : User::find($licenseSeat->assigned_to);
|
||||
}
|
||||
|
||||
if ($licenseSeat->isDirty('asset_id')) {
|
||||
$target = $is_checkin ? $oldAsset : Asset::find($licenseSeat->asset_id);
|
||||
}
|
||||
|
||||
if (is_null($target)){
|
||||
return response()->json(Helper::formatStandardApiResponse('error', null, 'Target not found'));
|
||||
if ($assignmentTouched && is_null($target)){
|
||||
// if both asset_id and assigned_to are null then we are "checking-in"
|
||||
// a related model that does not exist (possible purged or bad data).
|
||||
if (!is_null($request->input('asset_id')) || !is_null($request->input('assigned_to'))) {
|
||||
return response()->json(Helper::formatStandardApiResponse('error', null, 'Target not found'));
|
||||
}
|
||||
}
|
||||
|
||||
if ($licenseSeat->save()) {
|
||||
|
||||
if ($is_checkin) {
|
||||
if(!$licenseSeat->license->reassignable){
|
||||
$licenseSeat->unreassignable_seat = true;
|
||||
$licenseSeat->save();
|
||||
if($assignmentTouched) {
|
||||
if ($is_checkin) {
|
||||
if (!$licenseSeat->license->reassignable) {
|
||||
$licenseSeat->unreassignable_seat = true;
|
||||
$licenseSeat->save();
|
||||
}
|
||||
// todo: skip if target is null?
|
||||
$licenseSeat->logCheckin($target, $licenseSeat->notes);
|
||||
} else {
|
||||
// in this case, relevant fields are touched but it's not a checkin operation. so it must be a checkout operation.
|
||||
$licenseSeat->logCheckout($request->input('notes'), $target);
|
||||
}
|
||||
$licenseSeat->logCheckin($target, $licenseSeat->notes);
|
||||
|
||||
return response()->json(Helper::formatStandardApiResponse('success', $licenseSeat, trans('admin/licenses/message.update.success')));
|
||||
}
|
||||
|
||||
// in this case, relevant fields are touched but it's not a checkin operation. so it must be a checkout operation.
|
||||
$licenseSeat->logCheckout($request->input('notes'), $target);
|
||||
|
||||
return response()->json(Helper::formatStandardApiResponse('success', $licenseSeat, trans('admin/licenses/message.update.success')));
|
||||
}
|
||||
|
||||
|
||||
@@ -15,17 +15,8 @@ use Illuminate\Http\JsonResponse;
|
||||
class LicensesController extends Controller
|
||||
{
|
||||
/**
|
||||
* List Licenses
|
||||
* Display a listing of the resource.
|
||||
*
|
||||
* @group Licenses
|
||||
* @queryParam status string Filter by license status. Options: active, inactive, expiring Example: ?status=active
|
||||
* @queryParam company_id integer Filter by exact company ID. Example: 1
|
||||
* @queryParam name string Filter by exact license name. Example: Microsoft 365
|
||||
* @queryParam product_key string Filter by exact product key. Example: W269N
|
||||
* @queryParam order_number string Filter by exact order number. Example: 12345
|
||||
* @queryParam purchase_order string Filter by exact purchase order. Example: PO12345
|
||||
* @queryParam license_name string Filter by exact licensee name. Example: John Doe
|
||||
* @queryParam license_email string Filter by exact licensee email. Example: john.d
|
||||
* @author [A. Gianotto] [<snipe@snipe.net>]
|
||||
* @since [v4.0]
|
||||
*
|
||||
@@ -41,7 +32,7 @@ class LicensesController extends Controller
|
||||
$licenses->ExpiredLicenses();
|
||||
} elseif ($request->input('status')=='expiring') {
|
||||
$licenses->ExpiringLicenses($settings->alert_interval);
|
||||
} else {
|
||||
} elseif ($request->input('status')=='active') {
|
||||
$licenses->ActiveLicenses();
|
||||
}
|
||||
|
||||
@@ -175,9 +166,8 @@ class LicensesController extends Controller
|
||||
}
|
||||
|
||||
/**
|
||||
* Create License
|
||||
* Store a newly created resource in storage.
|
||||
*
|
||||
* @group Licenses
|
||||
* @author [A. Gianotto] [<snipe@snipe.net>]
|
||||
* @since [v4.0]
|
||||
* @param \Illuminate\Http\Request $request
|
||||
@@ -196,9 +186,8 @@ class LicensesController extends Controller
|
||||
}
|
||||
|
||||
/**
|
||||
* Show License
|
||||
* Display the specified resource.
|
||||
*
|
||||
* @group Licenses
|
||||
* @author [A. Gianotto] [<snipe@snipe.net>]
|
||||
* @param int $id
|
||||
*/
|
||||
@@ -212,9 +201,8 @@ class LicensesController extends Controller
|
||||
}
|
||||
|
||||
/**
|
||||
* Update License
|
||||
* Update the specified resource in storage.
|
||||
*
|
||||
* @group Licenses
|
||||
* @author [A. Gianotto] [<snipe@snipe.net>]
|
||||
* @since [v4.0]
|
||||
* @param \Illuminate\Http\Request $request
|
||||
@@ -236,9 +224,8 @@ class LicensesController extends Controller
|
||||
}
|
||||
|
||||
/**
|
||||
* Delete License
|
||||
* Remove the specified resource from storage.
|
||||
*
|
||||
* @group Licenses
|
||||
* @author [A. Gianotto] [<snipe@snipe.net>]
|
||||
* @since [v4.0]
|
||||
* @param int $id
|
||||
@@ -266,9 +253,8 @@ class LicensesController extends Controller
|
||||
}
|
||||
|
||||
/**
|
||||
* Selectlist
|
||||
* Gets a paginated collection for the select2 menus
|
||||
*
|
||||
* @group Licenses
|
||||
* @see \App\Http\Transformers\SelectlistTransformer
|
||||
*/
|
||||
public function selectlist(Request $request) : array
|
||||
@@ -279,7 +265,7 @@ class LicensesController extends Controller
|
||||
]);
|
||||
|
||||
if ($request->filled('search')) {
|
||||
$licenses = $licenses->where('licenses.name', 'LIKE', '%'.$request->get('search').'%');
|
||||
$licenses = $licenses->where('licenses.name', 'LIKE', '%'.$request->input('search').'%');
|
||||
}
|
||||
|
||||
$licenses = $licenses->orderBy('name', 'ASC')->paginate(50);
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user