api.php 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127
  1. <?php
  2. require_once('php/include.php');
  3. // TODO - Add API handling.
  4. $method = $_SERVER['REQUEST_METHOD'];
  5. $ret = Array();
  6. if(isset($_GET['type'])){
  7. if(isset($_GET['id'])){
  8. $id = $_GET['id'];
  9. switch($_GET['type']){
  10. case 'user':
  11. $ret['template'] = file_get_contents(PATH_DATA.'pages/user.template');
  12. $user = userObj($id);
  13. $context = Array(
  14. 'name'=>$user['name'],
  15. 'email'=>$user['email']
  16. );
  17. if($LOGGEDIN){
  18. $context['key'] = true;
  19. $context['user'] = userObj($_SESSION['username']);
  20. };
  21. $ret['context'] = $context;
  22. retj($ret,$id);
  23. break;
  24. case 'group':
  25. // TODO - handle group requests
  26. break;
  27. case 'issue':
  28. // TODO - handle issue requests
  29. break;
  30. case 'scrum':
  31. // TODO - handle scrum requests
  32. break;
  33. case 'admin':
  34. // TODO - handle admin requests
  35. break;
  36. case 'page':
  37. if(file_exists(PATH_DATA.'pages/'.$id.'.template')){
  38. $ret['template'] = file_get_contents(PATH_DATA.'pages/'.$id.'.template');
  39. $context = Array();
  40. if($LOGGEDIN){
  41. $context['key'] = true;
  42. $context['user'] = userObj($_SESSION['username']);
  43. };
  44. if(file_exists(PATH_DATA.'pages/'.$id.'.options')){
  45. $options = objectToArray(json_decode(file_get_contents(PATH_DATA.'pages/'.$id.'.options'),true));
  46. foreach($options as $key){
  47. switch($key){
  48. case 'users':
  49. $res = query("SELECT name FROM `users`;",Array());
  50. $users = Array();
  51. while($user = $res->fetch_array()){
  52. array_push($users,$user);
  53. }
  54. $context['users'] = $users;
  55. break;
  56. }
  57. }
  58. }
  59. $ret['context'] = $context;
  60. }else{
  61. $ret['error'] = 'That page does not exist';
  62. }
  63. retj($ret,$id);
  64. break;
  65. case 'action':
  66. switch($id){
  67. case 'login':
  68. $ret['state'] = Array(
  69. 'data'=>Array(
  70. 'type'=>'page',
  71. 'id'=>'login',
  72. )
  73. );
  74. if(isset($_GET['username'])&&isset($_GET['password'])){
  75. $key = login($_GET['username'],$_GET['password']);
  76. if($key){
  77. $_SESSION['username'] = $_GET['username'];
  78. }else{
  79. $ret['error'] = "Login failed. Username or Password didn't match.";
  80. }
  81. }else{
  82. $ret['error'] = "Please provide a valid username and password.";
  83. }
  84. retj($ret,$id);
  85. break;
  86. case 'register':
  87. $ret['state'] = Array(
  88. 'data'=>Array(
  89. 'type'=>'page',
  90. 'id'=>'register'
  91. )
  92. );
  93. if(isvalid('username')&&isvalid('password')&&isvalid('password1')&&isvalid('email')&&isvalid('captcha')){
  94. if($_GET['password']==$_GET['password1']){
  95. if(compare_captcha($_GET['captcha'])){
  96. if(addUser($_GET['username'],$_GET['password'],$_GET['email'])){
  97. $key = login($_GET['username'],$_GET['password']);
  98. $_SESSION['username'] = $_GET['username'];
  99. sendMail('welcome','Welcome!',$_GET['email'],get('email'),Array($_GET['username'],$_GET['password'],get('email')));
  100. }else{
  101. $ret['error'] = "Could not add user. ".$mysqli->error;
  102. }
  103. }else{
  104. $ret['error'] = "Captcha did not match.";
  105. }
  106. }else{
  107. $ret['error'] = "Passwords didn't match.";
  108. }
  109. }else{
  110. $ret['error'] = "Please fill in all the fields.";
  111. }
  112. retj($ret,$id);
  113. break;
  114. default:
  115. die('invalid action');
  116. }
  117. break;
  118. default:
  119. die("invalid type");
  120. }
  121. }else{
  122. die("id missing");
  123. }
  124. }else{
  125. die("type missing");
  126. }
  127. ?>