1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071 |
- module Api
- class 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.zone.parse input
- rescue ArgumentError
- nil
- end
- end
- end
- end
|