Skip to content

Commit

Permalink
feat: added api to get subscriptions for thread
Browse files Browse the repository at this point in the history
  • Loading branch information
AhtishamShahid committed Aug 15, 2023
1 parent acc9b2f commit 1ac14a1
Showing 1 changed file with 24 additions and 1 deletion.
25 changes: 24 additions & 1 deletion api/notifications_and_subscriptions.rb
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@

get "#{APIPREFIX}/users/:user_id/subscribed_threads" do |user_id|
handle_threads_query(
user.subscribed_threads.where({"course_id" => params[:course_id]}),
user.subscribed_threads.where({ "course_id" => params[:course_id] }),
params["user_id"],
params["course_id"],
get_group_ids_from_params(params),
Expand All @@ -28,3 +28,26 @@
delete "#{APIPREFIX}/users/:user_id/subscriptions" do |user_id|
user.unsubscribe(source).to_hash.to_json
end

get "#{APIPREFIX}/subscriptions/:thread_id" do |thread_id|
page = (params['page'] || DEFAULT_PAGE).to_i
per_page = (params['per_page'] || DEFAULT_PER_PAGE).to_i

# Build a query hash based on the query parameters
query = {}
query[:subscriber_id] = params[:subscriber_id] if params[:subscriber_id]
query[:source_id] = thread_id
query[:source_type] = params[:source_type] if params[:source_type]

subscriptions = Subscription.where(query).paginate(:page => page, :per_page => per_page)
subscriptions_count = subscriptions.total_entries

content_type :json

{
collection: subscriptions.map(&:to_hash),
num_pages: [1, (subscriptions_count / per_page.to_f).ceil].max,
page: page,
subscriptions_count: subscriptions_count
}.to_json
end

0 comments on commit 1ac14a1

Please sign in to comment.