apitoggleqvitter.php 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104
  1. <?php
  2. /* · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · ·
  3. · ·
  4. · ·
  5. · Q V I T T E R ·
  6. · ·
  7. · https://git.gnu.io/h2p/Qvitter ·
  8. · ·
  9. · ·
  10. · <o) ·
  11. · /_//// ·
  12. · (____/ ·
  13. · (o< ·
  14. · o> \\\\_\ ·
  15. · \\) \____) ·
  16. · ·
  17. · ·
  18. · ·
  19. · Qvitter is free software: you can redistribute it and / or modify it ·
  20. · under the terms of the GNU Affero General Public License as published by ·
  21. · the Free Software Foundation, either version three of the License or (at ·
  22. · your option) any later version. ·
  23. · ·
  24. · Qvitter is distributed in hope that it will be useful but WITHOUT ANY ·
  25. · WARRANTY; without even the implied warranty of MERCHANTABILTY or FITNESS ·
  26. · FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for ·
  27. · more details. ·
  28. · ·
  29. · You should have received a copy of the GNU Affero General Public License ·
  30. · along with Qvitter. If not, see <http://www.gnu.org/licenses/>. ·
  31. · ·
  32. · Contact h@nnesmannerhe.im if you have any questions. ·
  33. · ·
  34. · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · */
  35. if (!defined('GNUSOCIAL')) { exit(1); }
  36. class ApiToggleQvitterAction extends ApiAuthAction
  37. {
  38. /**
  39. * Take arguments for running
  40. *
  41. * @param array $args $_REQUEST args
  42. *
  43. * @return boolean success flag
  44. */
  45. protected function prepare(array $args=array())
  46. {
  47. parent::prepare($args);
  48. return true;
  49. }
  50. /**
  51. * Handle the request
  52. *
  53. * @param array $args $_REQUEST data (unused)
  54. *
  55. * @return void
  56. */
  57. protected function handle()
  58. {
  59. parent::handle();
  60. $user = common_current_user();
  61. $profile = $user->getProfile();
  62. // what to toggle
  63. if(QvitterPlugin::settings('enabledbydefault')) {
  64. $toggle = 'disable_qvitter';
  65. } else {
  66. $toggle = 'enable_qvitter';
  67. }
  68. // new value
  69. $state = Profile_prefs::getConfigData($profile, 'qvitter', $toggle);
  70. if($state == 1) {
  71. $new_state = 0;
  72. } else {
  73. $new_state = 1;
  74. }
  75. try {
  76. $pref_saved = Profile_prefs::setData($profile, 'qvitter', $toggle, $new_state);
  77. $result['success'] = true;
  78. } catch (ServerException $e) {
  79. $result['success'] = false;
  80. $result['error'] = $e;
  81. }
  82. if(!$pref_saved) {
  83. $result['success'] = false;
  84. $result['error'] = 'Probably couldn\'t get topic from pref table';
  85. }
  86. $this->initDocument('json');
  87. $this->showJsonObjects($result);
  88. $this->endDocument('json');
  89. }
  90. }