GroupsDiscoverController.php 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. <?php
  2. namespace App\Http\Controllers\Groups;
  3. use Illuminate\Support\Facades\Cache;
  4. use Illuminate\Support\Facades\RateLimiter;
  5. use App\Http\Controllers\Controller;
  6. use Illuminate\Http\Request;
  7. use App\Services\AccountService;
  8. use App\Services\GroupService;
  9. use App\Follower;
  10. use App\Profile;
  11. use App\Models\Group;
  12. use App\Models\GroupMember;
  13. use App\Models\GroupInvitation;
  14. class GroupsDiscoverController extends Controller
  15. {
  16. public function __construct()
  17. {
  18. $this->middleware('auth');
  19. }
  20. public function getDiscoverPopular(Request $request)
  21. {
  22. abort_if(!$request->user(), 404);
  23. $groups = Group::orderByDesc('member_count')
  24. ->take(12)
  25. ->pluck('id')
  26. ->map(function($id) {
  27. return GroupService::get($id);
  28. })
  29. ->filter(function($id) {
  30. return $id;
  31. })
  32. ->take(6)
  33. ->values();
  34. return $groups;
  35. }
  36. public function getDiscoverNew(Request $request)
  37. {
  38. abort_if(!$request->user(), 404);
  39. $groups = Group::latest()
  40. ->take(12)
  41. ->pluck('id')
  42. ->map(function($id) {
  43. return GroupService::get($id);
  44. })
  45. ->filter(function($id) {
  46. return $id;
  47. })
  48. ->take(6)
  49. ->values();
  50. return $groups;
  51. }
  52. }