index.php 28 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728
  1. <?php
  2. $generationTime = -microtime(true);
  3. //include functions
  4. require_once 'functions.php';
  5. //Set result array
  6. $result = array();
  7. //Get request method
  8. $method = $_SERVER['REQUEST_METHOD'];
  9. reset($_GET);
  10. $function = (key($_GET) ? str_replace("/","_",key($_GET)) : false);
  11. //Exit if $function is blank
  12. if($function === false){
  13. $result['status'] = "error";
  14. $result['statusText'] = "No API Path Supplied";
  15. exit(json_encode($result));
  16. }
  17. $result['request'] = key($_GET);
  18. switch ($function) {
  19. case 'v1_settings_page':
  20. switch ($method) {
  21. case 'GET':
  22. if(qualifyRequest(1)){
  23. $result['status'] = 'success';
  24. $result['statusText'] = 'success';
  25. $result['data'] = $pageSettings;
  26. writeLog('success', 'Admin Function - Accessed Settings Page', $GLOBALS['organizrUser']['username']);
  27. }else{
  28. $result['status'] = 'error';
  29. $result['statusText'] = 'API/Token invalid or not set';
  30. $result['data'] = null;
  31. writeLog('error', 'Admin Function - Tried to access Settings Page', $GLOBALS['organizrUser']['username']);
  32. }
  33. break;
  34. default:
  35. $result['status'] = 'error';
  36. $result['statusText'] = 'The function requested is not defined for method: '.$method;
  37. break;
  38. }
  39. break;
  40. case 'v1_settings_plugins':
  41. switch ($method) {
  42. case 'GET':
  43. if(qualifyRequest(1)){
  44. $result['status'] = 'success';
  45. $result['statusText'] = 'success';
  46. $result['data'] = $pageSettingsPlugins;
  47. }else{
  48. $result['status'] = 'error';
  49. $result['statusText'] = 'API/Token invalid or not set';
  50. $result['data'] = null;
  51. }
  52. break;
  53. default:
  54. $result['status'] = 'error';
  55. $result['statusText'] = 'The function requested is not defined for method: '.$method;
  56. break;
  57. }
  58. break;
  59. case 'v1_settings_plugins_list':
  60. switch ($method) {
  61. case 'GET':
  62. if(qualifyRequest(1)){
  63. $result['status'] = 'success';
  64. $result['statusText'] = 'success';
  65. $result['data'] = getPlugins();
  66. }else{
  67. $result['status'] = 'error';
  68. $result['statusText'] = 'API/Token invalid or not set';
  69. $result['data'] = null;
  70. }
  71. break;
  72. case 'POST':
  73. if(qualifyRequest(1)){
  74. $result['status'] = 'success';
  75. $result['statusText'] = 'success';
  76. $result['data'] = editPlugins($_POST);
  77. }else{
  78. $result['status'] = 'error';
  79. $result['statusText'] = 'API/Token invalid or not set';
  80. $result['data'] = null;
  81. }
  82. break;
  83. default:
  84. $result['status'] = 'error';
  85. $result['statusText'] = 'The function requested is not defined for method: '.$method;
  86. break;
  87. }
  88. break;
  89. case 'v1_settings_settings_logs':
  90. switch ($method) {
  91. case 'GET':
  92. if(qualifyRequest(1)){
  93. $result['status'] = 'success';
  94. $result['statusText'] = 'success';
  95. $result['data'] = $pageSettingsSettingsLogs;
  96. }else{
  97. $result['status'] = 'error';
  98. $result['statusText'] = 'API/Token invalid or not set';
  99. $result['data'] = null;
  100. }
  101. break;
  102. default:
  103. $result['status'] = 'error';
  104. $result['statusText'] = 'The function requested is not defined for method: '.$method;
  105. break;
  106. }
  107. break;
  108. case 'v1_settings_settings_sso':
  109. switch ($method) {
  110. case 'GET':
  111. if(qualifyRequest(1)){
  112. $result['status'] = 'success';
  113. $result['statusText'] = 'success';
  114. $result['data'] = $pageSettingsSettingsSSO;
  115. }else{
  116. $result['status'] = 'error';
  117. $result['statusText'] = 'API/Token invalid or not set';
  118. $result['data'] = null;
  119. }
  120. break;
  121. default:
  122. $result['status'] = 'error';
  123. $result['statusText'] = 'The function requested is not defined for method: '.$method;
  124. break;
  125. }
  126. break;
  127. case 'v1_settings_settings_main':
  128. switch ($method) {
  129. case 'GET':
  130. if(qualifyRequest(1)){
  131. $result['status'] = 'success';
  132. $result['statusText'] = 'success';
  133. $result['data'] = $pageSettingsSettingsMain;
  134. }else{
  135. $result['status'] = 'error';
  136. $result['statusText'] = 'API/Token invalid or not set';
  137. $result['data'] = null;
  138. }
  139. break;
  140. default:
  141. $result['status'] = 'error';
  142. $result['statusText'] = 'The function requested is not defined for method: '.$method;
  143. break;
  144. }
  145. break;
  146. case 'v1_settings_customize_appearance':
  147. switch ($method) {
  148. case 'GET':
  149. if(qualifyRequest(1)){
  150. $result['status'] = 'success';
  151. $result['statusText'] = 'success';
  152. $result['data'] = $pageSettingsCustomizeAppearance;
  153. }else{
  154. $result['status'] = 'error';
  155. $result['statusText'] = 'API/Token invalid or not set';
  156. $result['data'] = null;
  157. }
  158. break;
  159. case 'POST':
  160. if(qualifyRequest(1)){
  161. $result['status'] = 'success';
  162. $result['statusText'] = 'success';
  163. $result['data'] = editAppearance($_POST);
  164. }else{
  165. $result['status'] = 'error';
  166. $result['statusText'] = 'API/Token invalid or not set';
  167. $result['data'] = null;
  168. }
  169. break;
  170. default:
  171. $result['status'] = 'error';
  172. $result['statusText'] = 'The function requested is not defined for method: '.$method;
  173. break;
  174. }
  175. break;
  176. case 'v1_update_config':
  177. switch ($method) {
  178. case 'POST':
  179. if(qualifyRequest(1)){
  180. $result['status'] = 'success';
  181. $result['statusText'] = 'success';
  182. $result['data'] = updateConfigItem($_POST);
  183. }else{
  184. $result['status'] = 'error';
  185. $result['statusText'] = 'API/Token invalid or not set';
  186. $result['data'] = null;
  187. }
  188. break;
  189. default:
  190. $result['status'] = 'error';
  191. $result['statusText'] = 'The function requested is not defined for method: '.$method;
  192. break;
  193. }
  194. break;
  195. case 'v1_settings_tab_editor_tabs':
  196. switch ($method) {
  197. case 'GET':
  198. if(qualifyRequest(1)){
  199. $result['status'] = 'success';
  200. $result['statusText'] = 'success';
  201. $result['data'] = $pageSettingsTabEditorTabs;
  202. }else{
  203. $result['status'] = 'error';
  204. $result['statusText'] = 'API/Token invalid or not set';
  205. $result['data'] = null;
  206. }
  207. break;
  208. case 'POST':
  209. if(qualifyRequest(1)){
  210. $result['status'] = 'success';
  211. $result['statusText'] = 'success';
  212. $result['data'] = editTabs($_POST);
  213. }else{
  214. $result['status'] = 'error';
  215. $result['statusText'] = 'API/Token invalid or not set';
  216. $result['data'] = null;
  217. }
  218. break;
  219. default:
  220. $result['status'] = 'error';
  221. $result['statusText'] = 'The function requested is not defined for method: '.$method;
  222. break;
  223. }
  224. break;
  225. case 'v1_settings_tab_editor_categories':
  226. switch ($method) {
  227. case 'GET':
  228. if(qualifyRequest(1)){
  229. $result['status'] = 'success';
  230. $result['statusText'] = 'success';
  231. $result['data'] = $pageSettingsTabEditorCategories;
  232. }else{
  233. $result['status'] = 'error';
  234. $result['statusText'] = 'API/Token invalid or not set';
  235. $result['data'] = null;
  236. }
  237. break;
  238. case 'POST':
  239. if(qualifyRequest(1)){
  240. $result['status'] = 'success';
  241. $result['statusText'] = 'success';
  242. $result['data'] = editCategories($_POST);
  243. }else{
  244. $result['status'] = 'error';
  245. $result['statusText'] = 'API/Token invalid or not set';
  246. $result['data'] = null;
  247. }
  248. break;
  249. default:
  250. $result['status'] = 'error';
  251. $result['statusText'] = 'The function requested is not defined for method: '.$method;
  252. break;
  253. }
  254. break;
  255. case 'v1_settings_user_manage_users':
  256. switch ($method) {
  257. case 'GET':
  258. if(qualifyRequest(1)){
  259. $result['status'] = 'success';
  260. $result['statusText'] = 'success';
  261. $result['data'] = $pageSettingsUserManageUsers;
  262. }else{
  263. $result['status'] = 'error';
  264. $result['statusText'] = 'API/Token invalid or not set';
  265. $result['data'] = null;
  266. }
  267. break;
  268. case 'POST':
  269. if(qualifyRequest(1)){
  270. $result['status'] = 'success';
  271. $result['statusText'] = 'success';
  272. $result['data'] = adminEditUser($_POST);
  273. }elseif(qualifyRequest(998)){
  274. $result['status'] = 'success';
  275. $result['statusText'] = 'success';
  276. $result['data'] = editUser($_POST);
  277. }else{
  278. $result['status'] = 'error';
  279. $result['statusText'] = 'API/Token invalid or not set';
  280. $result['data'] = null;
  281. }
  282. break;
  283. default:
  284. $result['status'] = 'error';
  285. $result['statusText'] = 'The function requested is not defined for method: '.$method;
  286. break;
  287. }
  288. break;
  289. case 'v1_settings_user_manage_groups':
  290. switch ($method) {
  291. case 'GET':
  292. if(qualifyRequest(1)){
  293. $result['status'] = 'success';
  294. $result['statusText'] = 'success';
  295. $result['data'] = $pageSettingsUserManageGroups;
  296. }else{
  297. $result['status'] = 'error';
  298. $result['statusText'] = 'API/Token invalid or not set';
  299. $result['data'] = null;
  300. }
  301. break;
  302. case 'POST':
  303. if(qualifyRequest(1)){
  304. $result['status'] = 'success';
  305. $result['statusText'] = 'success';
  306. $result['data'] = adminEditGroup($_POST);
  307. }else{
  308. $result['status'] = 'error';
  309. $result['statusText'] = 'API/Token invalid or not set';
  310. $result['data'] = null;
  311. }
  312. break;
  313. default:
  314. $result['status'] = 'error';
  315. $result['statusText'] = 'The function requested is not defined for method: '.$method;
  316. break;
  317. }
  318. break;
  319. case 'v1_settings_image_manager_view':
  320. switch ($method) {
  321. case 'GET':
  322. if(qualifyRequest(1)){
  323. $result['status'] = 'success';
  324. $result['statusText'] = 'success';
  325. $result['data'] = $pageSettingsImageManager;
  326. }else{
  327. $result['status'] = 'error';
  328. $result['statusText'] = 'API/Token invalid or not set';
  329. $result['data'] = null;
  330. }
  331. break;
  332. case 'POST':
  333. if(qualifyRequest(1)){
  334. $result['status'] = 'success';
  335. $result['statusText'] = 'success';
  336. $result['data'] = editImages();
  337. }else{
  338. $result['status'] = 'error';
  339. $result['statusText'] = 'API/Token invalid or not set';
  340. $result['data'] = null;
  341. }
  342. break;
  343. default:
  344. $result['status'] = 'error';
  345. $result['statusText'] = 'The function requested is not defined for method: '.$method;
  346. break;
  347. }
  348. break;
  349. case 'v1_wizard_page':
  350. switch ($method) {
  351. case 'GET':
  352. if(!file_exists('config'.DIRECTORY_SEPARATOR.'config.php')){
  353. $result['status'] = 'success';
  354. $result['statusText'] = 'success';
  355. $result['data'] = $pageWizard;
  356. }else{
  357. $result['status'] = 'error';
  358. $result['statusText'] = 'Wizard has already been run';
  359. $result['data'] = null;
  360. }
  361. break;
  362. default:
  363. $result['status'] = 'error';
  364. $result['statusText'] = 'The function requested is not defined for method: '.$method;
  365. break;
  366. }
  367. break;
  368. case 'v1_dependencies_page':
  369. switch ($method) {
  370. case 'GET':
  371. $result['status'] = 'success';
  372. $result['statusText'] = 'success';
  373. $result['data'] = $pageDependencies;
  374. break;
  375. default:
  376. $result['status'] = 'error';
  377. $result['statusText'] = 'The function requested is not defined for method: '.$method;
  378. break;
  379. }
  380. break;
  381. case 'v1_wizard_config':
  382. switch ($method) {
  383. case 'POST':
  384. if(!file_exists('config'.DIRECTORY_SEPARATOR.'config.php')){
  385. $result['status'] = 'success';
  386. $result['statusText'] = 'success';
  387. $result['data'] = wizardConfig($_POST);
  388. }else{
  389. $result['status'] = 'error';
  390. $result['statusText'] = 'Wizard has already been run';
  391. $result['data'] = null;
  392. }
  393. break;
  394. default:
  395. $result['status'] = 'error';
  396. $result['statusText'] = 'The function requested is not defined for method: '.$method;
  397. break;
  398. }
  399. break;
  400. case 'v1_login':
  401. switch ($method) {
  402. case 'POST':
  403. $result['status'] = 'success';
  404. $result['statusText'] = 'success';
  405. $result['data'] = login($_POST);
  406. break;
  407. default:
  408. $result['status'] = 'error';
  409. $result['statusText'] = 'The function requested is not defined for method: '.$method;
  410. break;
  411. }
  412. break;
  413. case 'v1_register':
  414. switch ($method) {
  415. case 'POST':
  416. $result['status'] = 'success';
  417. $result['statusText'] = 'success';
  418. $result['data'] = register($_POST);
  419. break;
  420. default:
  421. $result['status'] = 'error';
  422. $result['statusText'] = 'The function requested is not defined for method: '.$method;
  423. break;
  424. }
  425. break;
  426. case 'v1_upgrade':
  427. case 'v1_update':
  428. case 'v1_force':
  429. switch ($method) {
  430. case 'POST':
  431. if(qualifyRequest(1)){
  432. $result['status'] = 'success';
  433. $result['statusText'] = 'success';
  434. $result['data'] = upgradeInstall($_POST['data']['branch'],$_POST['data']['stage']);
  435. }else{
  436. $result['status'] = 'error';
  437. $result['statusText'] = 'API/Token invalid or not set';
  438. $result['data'] = null;
  439. }
  440. break;
  441. default:
  442. $result['status'] = 'error';
  443. $result['statusText'] = 'The function requested is not defined for method: '.$method;
  444. break;
  445. }
  446. break;
  447. case 'v1_login_page':
  448. switch ($method) {
  449. case 'GET':
  450. $result['status'] = 'success';
  451. $result['statusText'] = 'success';
  452. $result['data'] = $pageLogin;
  453. break;
  454. default:
  455. $result['status'] = 'error';
  456. $result['statusText'] = 'The function requested is not defined for method: '.$method;
  457. break;
  458. }
  459. break;
  460. case 'v1_lockscreen':
  461. switch ($method) {
  462. case 'GET':
  463. $result['status'] = 'success';
  464. $result['statusText'] = 'success';
  465. $result['data'] = $pageLockScreen;
  466. break;
  467. default:
  468. $result['status'] = 'error';
  469. $result['statusText'] = 'The function requested is not defined for method: '.$method;
  470. break;
  471. }
  472. break;
  473. case 'v1_login_log':
  474. switch ($method) {
  475. case 'GET':
  476. if(qualifyRequest(1)){
  477. $result['status'] = 'success';
  478. $result['statusText'] = 'success';
  479. $result['data'] = getLog('loginLog');
  480. }else{
  481. $result['status'] = 'error';
  482. $result['statusText'] = 'API/Token invalid or not set';
  483. $result['data'] = null;
  484. }
  485. break;
  486. default:
  487. $result['status'] = 'error';
  488. $result['statusText'] = 'The function requested is not defined for method: '.$method;
  489. break;
  490. }
  491. break;
  492. case 'v1_organizr_log':
  493. switch ($method) {
  494. case 'GET':
  495. if(qualifyRequest(1)){
  496. $result['status'] = 'success';
  497. $result['statusText'] = 'success';
  498. $result['data'] = getLog('org');
  499. }else{
  500. $result['status'] = 'error';
  501. $result['statusText'] = 'API/Token invalid or not set';
  502. $result['data'] = null;
  503. }
  504. break;
  505. default:
  506. $result['status'] = 'error';
  507. $result['statusText'] = 'The function requested is not defined for method: '.$method;
  508. break;
  509. }
  510. break;
  511. case 'v1_user_list':
  512. switch ($method) {
  513. case 'GET':
  514. if(qualifyRequest(1)){
  515. $result['status'] = 'success';
  516. $result['statusText'] = 'success';
  517. $result['data'] = allUsers();
  518. }else{
  519. $result['status'] = 'error';
  520. $result['statusText'] = 'API/Token invalid or not set';
  521. $result['data'] = null;
  522. }
  523. break;
  524. default:
  525. $result['status'] = 'error';
  526. $result['statusText'] = 'The function requested is not defined for method: '.$method;
  527. break;
  528. }
  529. break;
  530. case 'v1_tab_list':
  531. switch ($method) {
  532. case 'GET':
  533. if(qualifyRequest(1)){
  534. $result['status'] = 'success';
  535. $result['statusText'] = 'success';
  536. $result['data'] = allTabs();
  537. }else{
  538. $result['status'] = 'error';
  539. $result['statusText'] = 'API/Token invalid or not set';
  540. $result['data'] = null;
  541. }
  542. break;
  543. default:
  544. $result['status'] = 'error';
  545. $result['statusText'] = 'The function requested is not defined for method: '.$method;
  546. break;
  547. }
  548. break;
  549. case 'v1_image_list':
  550. switch ($method) {
  551. case 'GET':
  552. if(qualifyRequest(1)){
  553. $result['status'] = 'success';
  554. $result['statusText'] = 'success';
  555. $result['data'] = getImages();
  556. }else{
  557. $result['status'] = 'error';
  558. $result['statusText'] = 'API/Token invalid or not set';
  559. $result['data'] = null;
  560. }
  561. break;
  562. default:
  563. $result['status'] = 'error';
  564. $result['statusText'] = 'The function requested is not defined for method: '.$method;
  565. break;
  566. }
  567. break;
  568. case 'v1_customize_appearance':
  569. switch ($method) {
  570. case 'GET':
  571. if(qualifyRequest(1)){
  572. $result['status'] = 'success';
  573. $result['statusText'] = 'success';
  574. $result['data'] = getCustomizeAppearance();
  575. }else{
  576. $result['status'] = 'error';
  577. $result['statusText'] = 'API/Token invalid or not set';
  578. $result['data'] = null;
  579. }
  580. break;
  581. default:
  582. $result['status'] = 'error';
  583. $result['statusText'] = 'The function requested is not defined for method: '.$method;
  584. break;
  585. }
  586. break;
  587. case 'v1_sso':
  588. switch ($method) {
  589. case 'GET':
  590. if(qualifyRequest(1)){
  591. $result['status'] = 'success';
  592. $result['statusText'] = 'success';
  593. $result['data'] = getSSO();
  594. }else{
  595. $result['status'] = 'error';
  596. $result['statusText'] = 'API/Token invalid or not set';
  597. $result['data'] = null;
  598. }
  599. break;
  600. default:
  601. $result['status'] = 'error';
  602. $result['statusText'] = 'The function requested is not defined for method: '.$method;
  603. break;
  604. }
  605. break;
  606. case 'v1_settings_main':
  607. switch ($method) {
  608. case 'GET':
  609. if(qualifyRequest(1)){
  610. $result['status'] = 'success';
  611. $result['statusText'] = 'success';
  612. $result['data'] = getSettingsMain();
  613. }else{
  614. $result['status'] = 'error';
  615. $result['statusText'] = 'API/Token invalid or not set';
  616. $result['data'] = null;
  617. }
  618. break;
  619. default:
  620. $result['status'] = 'error';
  621. $result['statusText'] = 'The function requested is not defined for method: '.$method;
  622. break;
  623. }
  624. break;
  625. case 'v1_user_edit':
  626. switch ($method) {
  627. case 'POST':
  628. if(qualifyRequest(1)){
  629. $result['status'] = 'success';
  630. $result['statusText'] = 'success';
  631. $result['data'] = adminEditUser($_POST);
  632. }elseif(qualifyRequest(998)){
  633. $result['status'] = 'success';
  634. $result['statusText'] = 'success';
  635. $result['data'] = editUser($_POST);
  636. }else{
  637. $result['status'] = 'error';
  638. $result['statusText'] = 'API/Token invalid or not set';
  639. $result['data'] = null;
  640. }
  641. break;
  642. default:
  643. $result['status'] = 'error';
  644. $result['statusText'] = 'The function requested is not defined for method: '.$method;
  645. break;
  646. }
  647. break;
  648. case 'v1_logout':
  649. switch ($method) {
  650. case 'GET':
  651. $result['status'] = 'success';
  652. $result['statusText'] = 'success';
  653. $result['data'] = logout();
  654. break;
  655. default:
  656. $result['status'] = 'error';
  657. $result['statusText'] = 'The function requested is not defined for method: '.$method;
  658. break;
  659. }
  660. break;
  661. case 'v1_launch_organizr':
  662. switch ($method) {
  663. case 'GET':
  664. $status = array();
  665. $result['status'] = 'success';
  666. $result['statusText'] = 'success';
  667. $status['status'] = organizrStatus();
  668. $result['appearance'] = loadAppearance();
  669. $status['user'] = $GLOBALS['organizrUser'];
  670. $status['categories'] = loadTabs()['categories'];
  671. $status['tabs'] = loadTabs()['tabs'];
  672. $result['data'] = $status;
  673. $result['branch'] = $GLOBALS['branch'];
  674. $result['theme'] = $GLOBALS['theme'];
  675. $result['style'] = $GLOBALS['style'];
  676. $result['version'] = $GLOBALS['installedVersion'];
  677. $result['sso'] = array(
  678. 'myPlexAccessToken' => isset($_COOKIE['mpt']) ? $_COOKIE['mpt'] : false,
  679. 'id_token' => isset($_COOKIE['Auth']) ? $_COOKIE['Auth'] : false
  680. );
  681. break;
  682. default:
  683. $result['status'] = 'error';
  684. $result['statusText'] = 'The function requested is not defined for method: '.$method;
  685. break;
  686. }
  687. break;
  688. case 'v1_auth':
  689. switch ($method) {
  690. case 'GET':
  691. auth();
  692. break;
  693. default:
  694. $result['status'] = 'error';
  695. $result['statusText'] = 'The function requested is not defined for method: '.$method;
  696. break;
  697. }
  698. break;
  699. case 'v1_plugin':
  700. switch ($method) {
  701. case 'POST':
  702. // Include all plugin api Calls
  703. foreach (glob(__DIR__.DIRECTORY_SEPARATOR.'plugins' . DIRECTORY_SEPARATOR . 'api' . DIRECTORY_SEPARATOR . "*.php") as $filename){
  704. require_once $filename;
  705. }
  706. break;
  707. default:
  708. $result['status'] = 'error';
  709. $result['statusText'] = 'The function requested is not defined for method: '.$method;
  710. break;
  711. }
  712. break;
  713. default:
  714. //No Function Available
  715. $result['status'] = 'error';
  716. $result['statusText'] = 'function requested is not defined';
  717. break;
  718. }
  719. //Set Default Result
  720. if(!$result){
  721. $result['status'] = "error";
  722. $result['error'] = "An error has occurred";
  723. }
  724. $result['generationDate'] = $GLOBALS['currentTime'];
  725. $generationTime += microtime(true);
  726. $result['generationTime'] = (sprintf('%f', $generationTime)*1000).'ms';
  727. //return JSON array
  728. exit(json_encode($result, JSON_HEX_QUOT | JSON_HEX_TAG));