dawarich/app/controllers/api/v1/subscriptions_controller.rb

20 lines
770 B
Ruby
Raw Normal View History

2025-04-19 07:18:39 -04:00
# frozen_string_literal: true
2025-04-23 16:46:39 -04:00
class Api::V1::SubscriptionsController < ApiController
skip_before_action :authenticate_api_key, only: %i[callback]
2025-04-19 07:18:39 -04:00
def callback
2025-04-23 16:46:39 -04:00
decoded_token = Subscription::DecodeJwtToken.new(params[:token]).call
2025-04-19 07:18:39 -04:00
2025-04-23 16:46:39 -04:00
user = User.find(decoded_token[:user_id])
user.update!(status: decoded_token[:status], active_until: decoded_token[:active_until])
2025-04-19 07:18:39 -04:00
2025-04-23 16:46:39 -04:00
render json: { message: 'Subscription updated successfully' }
rescue JWT::DecodeError => e
Sentry.capture_exception(e)
render json: { message: 'Failed to verify subscription update.' }, status: :unauthorized
rescue ArgumentError => e
Sentry.capture_exception(e)
render json: { message: 'Invalid subscription data received.' }, status: :unprocessable_entity
2025-04-19 07:18:39 -04:00
end
end