Module: ChimeSdk::Controller::Common

Extended by:
ActiveSupport::Concern
Defined in:
lib/chime_sdk/controller/common.rb

Overview

Common implementation for controllers.

Instance Method Summary collapse

Instance Method Details

#attendee_idString (protected)

Return attendee id from @attendee object or attendee id param.

Returns:

  • (String)

    Attendee id



38
39
40
# File 'lib/chime_sdk/controller/common.rb', line 38

def attendee_id
  @attendee ? @attendee[:Attendee][:AttendeeId] : attendee_id_param
end

#create_attendeeHash (protected)

Create attendee by MeetingCoordinator.

Returns:

  • (Hash)

    Created attendee



76
77
78
79
# File 'lib/chime_sdk/controller/common.rb', line 76

def create_attendee
  @attendee = ChimeSdk::MeetingCoordinator.create_attendee(meeting_id, attendee_request_id)
  @attendee = (@attendee)
end

#create_attendee_from_meetingHash (protected)

Create attendee from meeting by MeetingCoordinator.

Returns:

  • (Hash)

    Created attendee



108
109
110
111
112
113
114
# File 'lib/chime_sdk/controller/common.rb', line 108

def create_attendee_from_meeting
  create_attendee
  @meeting = @meeting.merge(@attendee)
  @meeting = (@meeting)
  @meeting = (@meeting)
  @attendee = (@attendee)
end

#create_meetingHash (protected)

Create meeting by MeetingCoordinator.

Returns:

  • (Hash)

    Created meeting



45
46
47
48
# File 'lib/chime_sdk/controller/common.rb', line 45

def create_meeting
  @meeting = ChimeSdk::MeetingCoordinator.create_meeting(meeting_request_id, tags: meeting_tags)
  @meeting = (@meeting)
end

#create_meeting_with_attendeeHash (protected)

Create meeting with attendee by MeetingCoordinator.

Returns:

  • (Hash)

    Created meeting



99
100
101
102
103
# File 'lib/chime_sdk/controller/common.rb', line 99

def create_meeting_with_attendee
  create_meeting
  create_attendee_from_meeting
  @meeting
end

#delete_attendeevoid (protected)

This method returns an undefined value.

Delete attendee by MeetingCoordinator.



92
93
94
# File 'lib/chime_sdk/controller/common.rb', line 92

def delete_attendee
  ChimeSdk::MeetingCoordinator.delete_attendee(meeting_id, attendee_id)
end

#delete_meetingvoid (protected)

This method returns an undefined value.

Delete meeting by MeetingCoordinator.



61
62
63
# File 'lib/chime_sdk/controller/common.rb', line 61

def delete_meeting
  ChimeSdk::MeetingCoordinator.delete_meeting(meeting_id)
end

#error_response(error_info = {}) ⇒ Hash (protected)

Returns error response as Hash

Returns:

  • (Hash)

    Error message



160
161
162
# File 'lib/chime_sdk/controller/common.rb', line 160

def error_response(error_info = {})
  { gem: "chime-sdk-rails", error: error_info }
end

#get_attendeeHash (protected)

Get attendee by MeetingCoordinator.

Returns:

  • (Hash)

    Attendee



84
85
86
87
# File 'lib/chime_sdk/controller/common.rb', line 84

def get_attendee
  @attendee = ChimeSdk::MeetingCoordinator.get_attendee(meeting_id, attendee_id)
  @attendee = (@attendee)
end

#get_meetingHash (protected)

Get meeting by MeetingCoordinator.

Returns:

  • (Hash)

    Meeting



53
54
55
56
# File 'lib/chime_sdk/controller/common.rb', line 53

def get_meeting
  @meeting = ChimeSdk::MeetingCoordinator.get_meeting(meeting_id)
  @meeting = (@meeting)
end

#list_attendeesArray<Hash> (protected)

List attendees by MeetingCoordinator.

Returns:

  • (Array<Hash>)

    Attendee list



68
69
70
71
# File 'lib/chime_sdk/controller/common.rb', line 68

def list_attendees
  @attendees = ChimeSdk::MeetingCoordinator.list_attendees(meeting_id)
  @attendees = @attendees.map { |attendee| (attendee) }
end

#meeting_idString (protected)

Return meeting id from @meeting object or meeting id param.

Returns:

  • (String)

    Meeting id



31
32
33
# File 'lib/chime_sdk/controller/common.rb', line 31

def meeting_id
  @meeting ? @meeting[:Meeting][:MeetingId] : meeting_id_param
end

#meeting_tagsArray<Hash> (protected)

Return tags for meetings from defined optional_meeting_tags.

Returns:

  • (Array<Hash>)

    Tags for meetings



135
136
137
# File 'lib/chime_sdk/controller/common.rb', line 135

def meeting_tags
  tags + optional_meeting_tags
end

#merge_application_attendee_metadata(attendee) ⇒ Hash (protected)

Merge application metadata into attendee instance and return.

Parameters:

  • attendee (Hash)

    Attendee JSON object as hash

Returns:

  • (Hash)

    Merged attendee



152
153
154
155
# File 'lib/chime_sdk/controller/common.rb', line 152

def (attendee)
  attendee[:Attendee][:ApplicationMetadata] = (attendee)
  attendee
end

#merge_application_meeting_metadata(meeting) ⇒ Hash (protected)

Merge application metadata into meeting instance and return.

Parameters:

  • meeting (Hash)

    Meeting JSON object as hash

Returns:

  • (Hash)

    Merged meeting



143
144
145
146
# File 'lib/chime_sdk/controller/common.rb', line 143

def (meeting)
  meeting[:Meeting][:ApplicationMetadata] = (meeting)
  meeting
end

#render_forbidden(error = nil) ⇒ void (protected)

This method returns an undefined value.

Render Forbidden error with 403 status



167
168
169
170
171
172
173
# File 'lib/chime_sdk/controller/common.rb', line 167

def render_forbidden(error = nil)
  message_type = error.respond_to?(:message) ? error.message : error
  respond_to do |format|
    format.html { redirect_to meeting_resources_path, notice: "Forbidden: #{message_type}" }
    format.json { render status: 403, json: error_response(code: 403, message: "Forbidden", type: message_type) }
  end
end

#render_resource_not_found(error = nil) ⇒ void (protected)

This method returns an undefined value.

Render Resource Not Found error with 404 status



178
179
180
181
182
183
184
# File 'lib/chime_sdk/controller/common.rb', line 178

def render_resource_not_found(error = nil)
  message_type = error.respond_to?(:message) ? error.message : error
  respond_to do |format|
    format.html { redirect_to meeting_resources_path, notice: "Resource not found: #{message_type}" }
    format.json { render status: 404, json: error_response(code: 404, message: "Resource not found", type: message_type) }
  end
end

#tagsArray<Hash> (protected)

Return common tags for meetings and attendees.

Returns:

  • (Array<Hash>)

    Common tags



119
120
121
122
123
124
125
126
127
128
129
130
# File 'lib/chime_sdk/controller/common.rb', line 119

def tags
  [
    {
      key: "Application",
      value: ChimeSdk.config.application_name
    },
    {
      key: "Environment",
      value: Rails.env
    }
  ]
end