Guest User

Untitled

a guest
Jan 28th, 2015
187
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.85 KB | None | 0 0
  1. <?php
  2. require_once "nusoap.php";
  3. $namespace = "http://rtouch.fr/Soap/AppMarket.php";
  4. $db_type = 'mysql'; //set $db_type to pgsql to use postgresql
  5. //Function provided by service
  6. function AppMarket($user, $password, $method, $pattern_id = NULL, $rating = NULL, $uploaded_pattern = NULL) {
  7. //code to connect to database
  8. if ($db_type === 'mysql') {
  9. $ret = new PDO('mysql:host=mysql51-65.pro;dbname=rtouch', 'rtouch', 'eZn8hVfSuh4x');
  10. }
  11. else
  12. {
  13. $ret = new PDO("pgsql:host=postgresql84-1.pro;dbname=rtouchpgs", "rtouchpgs", "ufy2FnNsP9Rt");
  14. }
  15. //TODO: Add postgres support
  16. if ($ret == true) {
  17. //prepare query
  18. //check if auth is valid/
  19. $pass = $password;
  20. $query_salt = $ret->query("SELECT salt FROM Member WHERE email = '".$user."' OR username = '".$user."'");
  21. $salt = $query_salt->fetch();
  22. $salt = $salt['salt'];
  23. if (!$salt) {
  24. return ('NOK_USERNAME_MARKET');
  25. }
  26. $iterations = 5000; // Default
  27. $result = '';
  28. $salted = $pass.'{'.$salt.'}';
  29. $digest = hash('sha512', $salted, true);
  30. for ($i = 1; $i < $iterations; $i++) {
  31. $digest = hash('sha512', $digest.$salted, true);
  32. }
  33. $cryptedPass = base64_encode($digest);
  34. $query_auth = $ret->query('SELECT * FROM Member WHERE (email = "'.$user.'" OR username = "'.$user.'") AND password = "'.$cryptedPass.'"');
  35. $query_fetched = $query_auth->fetch();
  36. if ($query_fetched && $method == 'query_public_patterns') {
  37. $query_patterns_list = $ret->query('SELECT id, name, description, member_id Patterns');
  38. $query_list_fetched = $query_patterns_list->fetchAll(PDO::FETCH_ASSOC);
  39. //TODO: string contatenation of the array
  40. if ($query_list_fetched) {
  41. $count = count($query_list_fetched);
  42. $i = 0;
  43. while($i < $count)
  44. {
  45. $str = $str . '|' . implode(';', $query_list_fetched[$i]);
  46. $i = $i + 1;
  47. }
  48. return ($str);
  49. }
  50. else {
  51. return("NO_PUBLIC_PATTERNS_MARKET");
  52. }
  53. }
  54. if ($query_fetched && ($method == 'query_own_patterns')) {
  55. // send mail to admin
  56. $query_patterns_list = $ret->query('SELECT id, name, description, member_id FROM Patterns WHERE member_id = '.$query_fetched['id'].'');
  57. $query_list_fetched = $query_patterns_list->fetchAll(PDO::FETCH_ASSOC);
  58. //TODO: string contatenation of the array
  59. if ($query_list_fetched) {
  60. $count = count($query_list_fetched);
  61. $i = 0;
  62. while($i < $count)
  63. {
  64. $str = $str . '|' . implode(';', $query_list_fetched[$i]);
  65. $i = $i + 1;
  66. }
  67. return ($str);
  68. }
  69. else {
  70. return("NO_PRIVATE_PATTERNS_MARKET");
  71. }
  72. }
  73. if ($query_fetched && ($method == 'download_selected_pattern') && ($pattern_id !== NULL)) {
  74. // send mail to admin
  75. $query_patterns_list = $ret->query('SELECT * FROM Patterns WHERE id = '.$pattern_id.'');
  76. $query_list_fetched = $query_patterns_list->fetchAll(PDO::FETCH_ASSOC);
  77. //TODO: string contatenation of the array
  78. if ($query_list_fetched) {
  79. $count = count($query_list_fetched);
  80. $i = 0;
  81. while($i < $count)
  82. {
  83. $str = $str . '|' . implode(';', $query_list_fetched[$i]);
  84. $i = $i + 1;
  85. }
  86. return ($str);
  87. }
  88. //update amount of downloads into database
  89. }
  90. else {
  91. return("PATTERN_DOWNLOAD_FAILED_MARKET");
  92. }
  93. if ($query_fetched && ($method == 'rate_selected_pattern') && ($pattern_id !== NULL) && ($rating !== NULL)) {
  94. // send mail to admin
  95. $query_patterns_list = $ret->query('SELECT * FROM Patterns WHERE id = '.$pattern_id.'');
  96. $query_list_fetched = $query_patterns_list->fetch();
  97. if ($query_list_fetched) {
  98. return('PATTERN_RATING_DONE_MARKET');
  99. }
  100. else {
  101. return("PATTERN_RATING_FAILED_MARKET");
  102. }
  103. }
  104. if ($query_fetched && ($method == 'upload_selected_pattern') && ($uploaded_pattern !== NULL)) {
  105. //$query_list_feteched = //cut string into the different needed elements
  106. //$query_list_fetched = //insert into database
  107. if ($query_list_fetched) {
  108. return('PATTERN_UPLOAD_DONE_MARKET');
  109. }
  110. else {
  111. return("PATTERN_UPLOAD_FAILED_MARKET");
  112. }
  113. }
  114. }
  115. else {
  116. return("ERROR DATABASE CONNECTION FAILED");
  117. }
  118. }
  119.  
  120. $server = new soap_server();
  121. //WSDL configuration to provide method and ser AND password = "'.$password.'"ver informations to VisualStudio
  122. $server->configureWSDL("SimpleService");
  123. $server->register(
  124. // method name:
  125. 'getPatternList',
  126. // parameter list:
  127. array('user' => 'xsd:string','password'=>'xsd:string', 'method'=>'xsd:string', 'pattern_id'=>'xsd:string', 'rating'=>'xsd:string', 'uploaded_pattern' => 'xsd:string'),
  128. // return value(s):
  129. array('return'=>'xsd:string'),
  130. // namespace:
  131. $namespace,
  132. // soapaction: (use default)
  133. false,
  134. // style: rpc or document
  135. 'rpc',
  136. // use: encoded or literal
  137. 'encoded',
  138. // description: documentation for the method
  139. 'Market Webservice, is used as a function pointer.');
  140. //Provide service as HTTP
  141. $server->service($HTTP_RAW_POST_DATA);
  142. ?>
Add Comment
Please, Sign In to add comment