123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869 |
- class Api::GroupsController < ApiController
- has_no_group = [:index]
-
- before_action :set_group, except: has_no_group
- before_action :require_membership!, except: has_no_group
- before_action :api_require_admin!, only: has_no_group
- skip_before_action :set_group, :require_membership!, :api_require_authentication!, if: 'request.authorization'
-
- before_action :api_auth_group_token, if: 'request.authorization'
-
- def index
- @groups = Group.all
- end
-
- def show; end
-
- def current_activities
- reference = try_parse_datetime params[:reference]
- @activities = @group.current_activities reference
- render 'api/activities/index'
- end
-
- def upcoming_activities
- reference = try_parse_datetime params[:reference]
- @activities = @group.upcoming_activities reference
- render 'api/activities/index'
- end
-
- def previous_activities
- reference = try_parse_datetime params[:reference]
- @activities = @group.previous_activities reference
- render 'api/activities/index'
- end
- private
-
- def set_group
- @group = Group.find(params[:id])
- end
-
- def try_parse_datetime(input = nil)
- return unless input
- begin
- DateTime.parse input
- rescue ArgumentError
- nil
- end
- end
- end
|