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

#attendee_tagsArray<Hash> (protected)

Return tags for attendees from defined optional_attendee_tags.

Returns:

  • (Array<Hash>)

    Tags for attendees



150
151
152
# File 'lib/chime_sdk/controller/common.rb', line 150

def attendee_tags
  tags + optional_attendee_tags
end

#create_attendeeHash (protected)

Create attendee by MeetingCoordinator.

Returns:

  • (Hash)

    Created attendee



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

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

#create_attendee_from_meetingHash (protected)

Create attendee from meeting by MeetingCoordinator.

Returns:

  • (Hash)

    Created attendee



116
117
118
119
120
121
122
# File 'lib/chime_sdk/controller/common.rb', line 116

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



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

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



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

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.



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

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.



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

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



175
176
177
# File 'lib/chime_sdk/controller/common.rb', line 175

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

#get_attendeeHash (protected)

Get attendee by MeetingCoordinator.

Returns:

  • (Hash)

    Attendee



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

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



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

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



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

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

#list_meetingsArray<Hash> (protected)

List meetings by MeetingCoordinator.

Returns:

  • (Array<Hash>)

    Meeting list



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

def list_meetings
  @meetings = ChimeSdk::MeetingCoordinator.list_meetings(prefix_filter: meeting_request_id)
  @meetings = @meetings.map { |meeting| (meeting) }
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



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

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



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

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



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

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



182
183
184
185
186
187
188
# File 'lib/chime_sdk/controller/common.rb', line 182

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



193
194
195
196
197
198
199
# File 'lib/chime_sdk/controller/common.rb', line 193

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



127
128
129
130
131
132
133
134
135
136
137
138
# File 'lib/chime_sdk/controller/common.rb', line 127

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