| | |
| | | <?php |
| | | namespace JVBase\rest; |
| | | namespace JVBase\rest\routes; |
| | | |
| | | use JVBase\rest\RestRouteManager; |
| | | use WP_REST_Request; |
| | | use WP_REST_Response; |
| | | use WP_Error; |
| | | use JVBase\managers\ReferralManager; |
| | | |
| | | if (!defined('ABSPATH')) { |
| | | exit; |
| | |
| | | */ |
| | | class ReferralRoutes extends RestRouteManager |
| | | { |
| | | protected ReferralManager $manager; |
| | | |
| | | public function __construct() |
| | | { |
| | | $this->route = 'referrals'; |
| | | $this->manager = new ReferralManager(); |
| | | parent::__construct(); |
| | | } |
| | | |
| | |
| | | 'offset' => $request->get_param('offset') ?? 0 |
| | | ]; |
| | | |
| | | $referrals = $this->manager->getUserReferrals($user_id, $args); |
| | | $referrals = JVB()->referrals()->getUserReferrals($user_id, $args); |
| | | |
| | | return new WP_REST_Response([ |
| | | 'success' => true, |
| | |
| | | public function getReferralCode(WP_REST_Request $request): WP_REST_Response |
| | | { |
| | | $user_id = get_current_user_id(); |
| | | $code = $this->manager->getUserReferralCode($user_id); |
| | | $code = JVB()->referrals()->getUserReferralCode($user_id); |
| | | |
| | | if (is_wp_error($code)) { |
| | | return new WP_REST_Response([ |
| | |
| | | $user_id = get_current_user_id(); |
| | | $new_code = strtoupper(sanitize_text_field($request->get_param('code'))); |
| | | |
| | | $result = $this->manager->getUserReferralCode($user_id, $new_code); |
| | | $result = JVB()->referrals()->getUserReferralCode($user_id, $new_code); |
| | | |
| | | if (is_wp_error($result)) { |
| | | return new WP_REST_Response([ |
| | |
| | | { |
| | | $referral_id = intval($request->get_param('id')); |
| | | |
| | | $result = $this->manager->markAsTreated($referral_id, true); |
| | | $result = JVB()->referrals()->markAsTreated($referral_id, true); |
| | | |
| | | if (!$result) { |
| | | return new WP_REST_Response([ |
| | |
| | | public function getUserStats(WP_REST_Request $request): WP_REST_Response |
| | | { |
| | | $user_id = get_current_user_id(); |
| | | $stats = $this->manager->getUserStats($user_id); |
| | | $stats = JVB()->referrals()->getUserStats($user_id); |
| | | |
| | | return new WP_REST_Response([ |
| | | 'success' => true, |
| | |
| | | $period = $request->get_param('period') ?? 'week'; |
| | | $limit = $request->get_param('limit') ?? 10; |
| | | |
| | | $top_referrers = $this->manager->getTopReferrers($limit, $period); |
| | | $top_referrers = JVB()->referrals()->getTopReferrers($limit, $period); |
| | | |
| | | return new WP_REST_Response([ |
| | | 'success' => true, |