Documentation
¶
Index ¶
- Constants
- type AnalyticsModel
- func (m *AnalyticsModel) AddAnalyticsFileToDB(roomTableId uint64, roomCreationTime int64, roomId, fileId string, ...) (int64, error)
- func (m *AnalyticsModel) DeleteAnalytics(r *plugnmeet.DeleteAnalyticsReq) error
- func (m *AnalyticsModel) FetchAnalytics(r *plugnmeet.FetchAnalyticsReq) (*plugnmeet.FetchAnalyticsResult, error)
- func (m *AnalyticsModel) GetAnalyticsDownloadToken(r *plugnmeet.GetAnalyticsDownloadTokenReq) (string, error)
- func (m *AnalyticsModel) HandleEvent(d *plugnmeet.AnalyticsDataMsg)
- func (m *AnalyticsModel) PrepareToExportAnalytics(roomId, sid, meta string)
- func (m *AnalyticsModel) VerifyAnalyticsToken(token string) (string, int, error)
- type AuthModel
- func (m *AuthModel) GeneratePNMJoinToken(c *plugnmeet.PlugNmeetTokenClaims) (string, error)
- func (m *AuthModel) RenewPNMToken(token string, gracefulPeriod time.Duration) (string, error)
- func (m *AuthModel) UnsafeClaimsWithoutVerification(token string) (*plugnmeet.PlugNmeetTokenClaims, error)
- func (m *AuthModel) ValidateLivekitWebhookToken(body []byte, token string) (bool, error)
- func (m *AuthModel) VerifyPlugNmeetAccessToken(token string, gracefulPeriod time.Duration) (*plugnmeet.PlugNmeetTokenClaims, error)
- type BBBApiWrapperModel
- type BreakoutRoomModel
- func (m *BreakoutRoomModel) CreateBreakoutRooms(r *plugnmeet.CreateBreakoutRoomsReq) error
- func (m *BreakoutRoomModel) EndAllBreakoutRoomsByParentRoomId(ctx context.Context, parentRoomId string) error
- func (m *BreakoutRoomModel) EndBreakoutRoom(ctx context.Context, r *plugnmeet.EndBreakoutRoomReq) error
- func (m *BreakoutRoomModel) GetBreakoutRooms(roomId string) ([]*plugnmeet.BreakoutRoom, error)
- func (m *BreakoutRoomModel) GetMyBreakoutRooms(roomId, userId string) (*plugnmeet.BreakoutRoom, error)
- func (m *BreakoutRoomModel) IncreaseBreakoutRoomDuration(r *plugnmeet.IncreaseBreakoutRoomDurationReq) error
- func (m *BreakoutRoomModel) JoinBreakoutRoom(ctx context.Context, r *plugnmeet.JoinBreakoutRoomReq) (string, error)
- func (m *BreakoutRoomModel) PostTaskAfterRoomEndWebhook(ctx context.Context, roomId, metadata string) error
- func (m *BreakoutRoomModel) PostTaskAfterRoomStartWebhook(roomId string, metadata *plugnmeet.RoomMetadata) error
- func (m *BreakoutRoomModel) SendBreakoutRoomMsg(r *plugnmeet.BroadcastBreakoutRoomMsgReq) error
- type ConvertWhiteboardFileReq
- type ConvertWhiteboardFileRes
- type EtherpadDataTypes
- type EtherpadHttpRes
- type EtherpadModel
- func (m *EtherpadModel) ChangeEtherpadStatus(r *plugnmeet.ChangeEtherpadStatusReq) error
- func (m *EtherpadModel) CleanAfterRoomEnd(roomId, metadata string) error
- func (m *EtherpadModel) CleanPad(roomId, nodeId, padId string) error
- func (m *EtherpadModel) CreateSession(roomId, requestedUserId string) (*plugnmeet.CreateEtherpadSessionRes, error)
- type ExDisplayModel
- type ExMediaModel
- type FileModel
- func (m *FileModel) ConvertAndBroadcastWhiteboardFile(roomId, roomSid, filePath string) (*ConvertWhiteboardFileRes, error)
- func (m *FileModel) DeleteRoomUploadedDir(roomSid string) error
- func (m *FileModel) DownloadAndProcessPreUploadWBfile(roomId, roomSid, fileUrl string, log *logrus.Entry) (*ConvertWhiteboardFileRes, error)
- func (m *FileModel) GetRoomFilesByType(roomId string, fileType plugnmeet.RoomUploadedFileType) (*plugnmeet.GetRoomUploadedFilesRes, error)
- func (m *FileModel) ResumableFileUpload(c *fiber.Ctx) (*plugnmeet.UploadedFileRes, *fiber.Error)
- func (m *FileModel) UploadBase64EncodedData(req *plugnmeet.UploadBase64EncodedDataReq) (*plugnmeet.UploadBase64EncodedDataRes, error)
- func (m *FileModel) UploadedFileMerge(req *plugnmeet.UploadedFileMergeReq) (*plugnmeet.UploadedFileRes, error)
- func (m *FileModel) ValidateMimeType(mtype *mimetype.MIME) error
- type IngressModel
- type JanitorModel
- type LTIV1FetchRecordingsReq
- type LtiClaims
- type LtiCustomDesign
- type LtiCustomParameters
- type LtiV1Model
- func (m *LtiV1Model) LTIV1JoinRoom(ctx context.Context, c *plugnmeet.LtiClaims) (string, error)
- func (m *LtiV1Model) LTIV1Landing(c *fiber.Ctx, requests, signingURL string) error
- func (m *LtiV1Model) LTIV1VerifyHeaderToken(token string) (*LtiClaims, error)
- func (m *LtiV1Model) ToJWT(c *plugnmeet.LtiClaims) (string, error)
- func (m *LtiV1Model) VerifyAuth(requests, signingURL string) (*url.Values, error)
- type NatsModel
- func (m *NatsModel) GenerateLivekitToken(roomId string, userInfo *plugnmeet.NatsKvUserInfo) (string, error)
- func (m *NatsModel) HandleClientPing(roomId, userId string)
- func (m *NatsModel) HandleFromClientToServerReq(roomId, userId string, req *plugnmeet.NatsMsgClientToServer)
- func (m *NatsModel) HandleInitialData(roomId, userId string)
- func (m *NatsModel) HandleSendUsersList(roomId, userId string)
- func (m *NatsModel) OnAfterUserDisconnected(roomId, userId string)
- func (m *NatsModel) OnAfterUserJoined(roomId, userId string)
- func (m *NatsModel) RenewPNMToken(roomId, userId, token string)
- type PollModel
- func (m *PollModel) CleanUpPolls(roomId string) error
- func (m *PollModel) ClosePoll(r *plugnmeet.ClosePollReq) error
- func (m *PollModel) CreatePoll(r *plugnmeet.CreatePollReq) (string, error)
- func (m *PollModel) GetPollResponsesDetails(roomId, pollId string) (map[string]string, error)
- func (m *PollModel) GetPollsStats(roomId string) (*plugnmeet.PollsStats, error)
- func (m *PollModel) GetResponsesResult(roomId, pollId string) (*plugnmeet.PollResponsesResult, error)
- func (m *PollModel) ListPolls(roomId string) ([]*plugnmeet.PollInfo, error)
- func (m *PollModel) ManageActivation(req *plugnmeet.ActivatePollsReq) error
- func (m *PollModel) UserSelectedOption(roomId, pollId, userId string) (uint64, error)
- func (m *PollModel) UserSubmitResponse(r *plugnmeet.SubmitPollResponseReq) error
- type RecorderModel
- type RecorderReq
- type RecordingModel
- func (m *RecordingModel) CreateTokenForDownload(path string) (string, error)
- func (m *RecordingModel) DeleteRecording(r *plugnmeet.DeleteRecordingReq) error
- func (m *RecordingModel) FetchRecording(recordId string) (*plugnmeet.RecordingInfo, error)
- func (m *RecordingModel) FetchRecordings(r *plugnmeet.FetchRecordingsReq) (*plugnmeet.FetchRecordingsResult, error)
- func (m *RecordingModel) GetDownloadToken(r *plugnmeet.GetDownloadTokenReq) (string, error)
- func (m *RecordingModel) HandleRecorderResp(r *plugnmeet.RecorderToPlugNmeet, roomInfo *dbmodels.RoomInfo)
- func (m *RecordingModel) RecordingInfo(req *plugnmeet.RecordingInfoReq) (*plugnmeet.RecordingInfoRes, error)
- func (m *RecordingModel) VerifyRecordingToken(token string) (string, int, error)
- type ResumableUploadReq
- type RoomDurationInfo
- type RoomDurationModel
- func (m *RoomDurationModel) AddRoomWithDurationInfo(roomId string, r *RoomDurationInfo) error
- func (m *RoomDurationModel) CompareDurationWithParentRoom(mainRoomId string, duration uint64) error
- func (m *RoomDurationModel) DeleteRoomWithDuration(roomId string) error
- func (m *RoomDurationModel) GetRoomDurationInfo(roomId string) (*RoomDurationInfo, error)
- func (m *RoomDurationModel) GetRoomsWithDurationMap() map[string]RoomDurationInfo
- func (m *RoomDurationModel) IncreaseRoomDuration(roomId string, duration uint64) (uint64, error)
- type RoomModel
- func (m *RoomModel) ChangeVisibility(r *plugnmeet.ChangeVisibilityRes) (bool, string)
- func (m *RoomModel) CreateRoom(r *plugnmeet.CreateRoomReq) (*plugnmeet.ActiveRoomInfo, error)
- func (m *RoomModel) EndRoom(ctx context.Context, r *plugnmeet.RoomEndReq) (bool, string)
- func (m *RoomModel) FetchPastRooms(r *plugnmeet.FetchPastRoomsReq) (*plugnmeet.FetchPastRoomsResult, error)
- func (m *RoomModel) GetActiveRoomInfo(ctx context.Context, r *plugnmeet.GetActiveRoomInfoReq) (bool, string, *plugnmeet.ActiveRoomWithParticipant)
- func (m *RoomModel) GetActiveRoomsInfo() (bool, string, []*plugnmeet.ActiveRoomWithParticipant)
- func (m *RoomModel) IsRoomActive(ctx context.Context, r *plugnmeet.IsRoomActiveReq) (*plugnmeet.IsRoomActiveRes, *dbmodels.RoomInfo, *plugnmeet.NatsKvRoomInfo, ...)
- func (m *RoomModel) OnAfterRoomEnded(roomID, roomSID, metadata, roomStatus string)
- func (m *RoomModel) SetBreakoutRoomModel(bm *BreakoutRoomModel)
- type SendBreakoutRoomMsgReq
- type SpeechToTextModel
- func (m *SpeechToTextModel) GenerateAzureToken(r *plugnmeet.GenerateAzureTokenReq, requestedUserId string) error
- func (m *SpeechToTextModel) OnAfterRoomEnded(roomId, sId string) error
- func (m *SpeechToTextModel) RenewAzureToken(r *plugnmeet.AzureTokenRenewReq, requestedUserId string) error
- func (m *SpeechToTextModel) SpeechServiceUserStatus(r *plugnmeet.SpeechServiceUserStatusReq) error
- func (m *SpeechToTextModel) SpeechServiceUsersUsage(roomId, rSid, userId string, task plugnmeet.SpeechServiceUserStatusTasks) error
- func (m *SpeechToTextModel) SpeechToTextTranslationServiceStart(r *plugnmeet.SpeechToTextTranslationReq) error
- type UserModel
- func (m *UserModel) AssignLockSettingsToUser(meta *plugnmeet.RoomMetadata, g *plugnmeet.GenerateTokenReq)
- func (m *UserModel) CommonValidation(c *fiber.Ctx) error
- func (m *UserModel) CreateNewPresenter(r *plugnmeet.GenerateTokenReq) error
- func (m *UserModel) GetPNMJoinToken(ctx context.Context, g *plugnmeet.GenerateTokenReq) (string, error)
- func (m *UserModel) LowerHand(roomId, userId string)
- func (m *UserModel) MuteUnMuteTrack(r *plugnmeet.MuteUnMuteTrackReq) error
- func (m *UserModel) RaisedHand(roomId, userId, msg string)
- func (m *UserModel) RemoveParticipant(r *plugnmeet.RemoveParticipantReq) error
- func (m *UserModel) SwitchPresenter(r *plugnmeet.SwitchPresenterReq) error
- func (m *UserModel) UpdateUserLockSettings(r *plugnmeet.UpdateUserLockSettingsReq) error
- type WaitingRoomModel
- type WebhookModel
Constants ¶
const (
APIVersion = "1.3.0"
)
const BreakoutRoomFormat = "%s-%s"
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type AnalyticsModel ¶ added in v1.5.0
type AnalyticsModel struct {
// contains filtered or unexported fields
}
func NewAnalyticsModel ¶ added in v1.5.0
func NewAnalyticsModel(ctx context.Context, app *config.AppConfig, ds *dbservice.DatabaseService, rs *redisservice.RedisService, natsService *natsservice.NatsService, webhookNotifier *helpers.WebhookNotifier, logger *logrus.Logger) *AnalyticsModel
func (*AnalyticsModel) AddAnalyticsFileToDB ¶ added in v1.7.1
func (*AnalyticsModel) DeleteAnalytics ¶ added in v1.7.1
func (m *AnalyticsModel) DeleteAnalytics(r *plugnmeet.DeleteAnalyticsReq) error
func (*AnalyticsModel) FetchAnalytics ¶ added in v1.7.1
func (m *AnalyticsModel) FetchAnalytics(r *plugnmeet.FetchAnalyticsReq) (*plugnmeet.FetchAnalyticsResult, error)
func (*AnalyticsModel) GetAnalyticsDownloadToken ¶ added in v1.7.1
func (m *AnalyticsModel) GetAnalyticsDownloadToken(r *plugnmeet.GetAnalyticsDownloadTokenReq) (string, error)
GetAnalyticsDownloadToken will use the same JWT token generator as plugNmeet is using
func (*AnalyticsModel) HandleEvent ¶ added in v1.5.0
func (m *AnalyticsModel) HandleEvent(d *plugnmeet.AnalyticsDataMsg)
func (*AnalyticsModel) PrepareToExportAnalytics ¶ added in v1.5.0
func (m *AnalyticsModel) PrepareToExportAnalytics(roomId, sid, meta string)
PrepareToExportAnalytics will export analytics data and create file this method is the final call after proper delay
func (*AnalyticsModel) VerifyAnalyticsToken ¶ added in v1.7.1
func (m *AnalyticsModel) VerifyAnalyticsToken(token string) (string, int, error)
VerifyAnalyticsToken verify token & provide file path
type AuthModel ¶ added in v1.7.1
type AuthModel struct {
// contains filtered or unexported fields
}
func NewAuthModel ¶ added in v1.7.1
func NewAuthModel(app *config.AppConfig, natsService *natsservice.NatsService, logger *logrus.Logger) *AuthModel
func (*AuthModel) GeneratePNMJoinToken ¶ added in v1.7.1
func (m *AuthModel) GeneratePNMJoinToken(c *plugnmeet.PlugNmeetTokenClaims) (string, error)
func (*AuthModel) RenewPNMToken ¶ added in v1.7.1
RenewPNMToken we'll renew token
func (*AuthModel) UnsafeClaimsWithoutVerification ¶ added in v1.8.1
func (m *AuthModel) UnsafeClaimsWithoutVerification(token string) (*plugnmeet.PlugNmeetTokenClaims, error)
func (*AuthModel) ValidateLivekitWebhookToken ¶ added in v1.7.1
func (*AuthModel) VerifyPlugNmeetAccessToken ¶ added in v1.7.1
type BBBApiWrapperModel ¶ added in v1.5.13
type BBBApiWrapperModel struct {
// contains filtered or unexported fields
}
func NewBBBApiWrapperModel ¶ added in v1.5.13
func NewBBBApiWrapperModel(app *config.AppConfig, ds *dbservice.DatabaseService, rs *redisservice.RedisService, rrm *RecordingModel, logger *logrus.Logger) *BBBApiWrapperModel
func (*BBBApiWrapperModel) GetRecordings ¶ added in v1.5.13
func (m *BBBApiWrapperModel) GetRecordings(host string, r *bbbapiwrapper.GetRecordingsReq) ([]*bbbapiwrapper.RecordingInfo, *bbbapiwrapper.Pagination, error)
type BreakoutRoomModel ¶ added in v1.7.1
type BreakoutRoomModel struct {
// contains filtered or unexported fields
}
func NewBreakoutRoomModel ¶
func NewBreakoutRoomModel(rm *RoomModel, natsService *natsservice.NatsService) *BreakoutRoomModel
func (*BreakoutRoomModel) CreateBreakoutRooms ¶ added in v1.7.1
func (m *BreakoutRoomModel) CreateBreakoutRooms(r *plugnmeet.CreateBreakoutRoomsReq) error
func (*BreakoutRoomModel) EndAllBreakoutRoomsByParentRoomId ¶ added in v1.7.1
func (m *BreakoutRoomModel) EndAllBreakoutRoomsByParentRoomId(ctx context.Context, parentRoomId string) error
func (*BreakoutRoomModel) EndBreakoutRoom ¶ added in v1.7.1
func (m *BreakoutRoomModel) EndBreakoutRoom(ctx context.Context, r *plugnmeet.EndBreakoutRoomReq) error
func (*BreakoutRoomModel) GetBreakoutRooms ¶ added in v1.7.1
func (m *BreakoutRoomModel) GetBreakoutRooms(roomId string) ([]*plugnmeet.BreakoutRoom, error)
func (*BreakoutRoomModel) GetMyBreakoutRooms ¶ added in v1.7.1
func (m *BreakoutRoomModel) GetMyBreakoutRooms(roomId, userId string) (*plugnmeet.BreakoutRoom, error)
func (*BreakoutRoomModel) IncreaseBreakoutRoomDuration ¶ added in v1.7.1
func (m *BreakoutRoomModel) IncreaseBreakoutRoomDuration(r *plugnmeet.IncreaseBreakoutRoomDurationReq) error
func (*BreakoutRoomModel) JoinBreakoutRoom ¶ added in v1.7.1
func (m *BreakoutRoomModel) JoinBreakoutRoom(ctx context.Context, r *plugnmeet.JoinBreakoutRoomReq) (string, error)
func (*BreakoutRoomModel) PostTaskAfterRoomEndWebhook ¶ added in v1.7.1
func (m *BreakoutRoomModel) PostTaskAfterRoomEndWebhook(ctx context.Context, roomId, metadata string) error
func (*BreakoutRoomModel) PostTaskAfterRoomStartWebhook ¶ added in v1.7.1
func (m *BreakoutRoomModel) PostTaskAfterRoomStartWebhook(roomId string, metadata *plugnmeet.RoomMetadata) error
func (*BreakoutRoomModel) SendBreakoutRoomMsg ¶ added in v1.7.1
func (m *BreakoutRoomModel) SendBreakoutRoomMsg(r *plugnmeet.BroadcastBreakoutRoomMsgReq) error
type ConvertWhiteboardFileReq ¶ added in v1.7.1
type ConvertWhiteboardFileReq struct {
RoomSid string `json:"roomSid" query:"roomSid"`
RoomId string `json:"roomId" query:"roomId"`
UserId string `json:"userId" query:"userId"`
FilePath string `json:"filePath" query:"filePath"`
}
ConvertWhiteboardFileReq represents the request structure for converting a whiteboard file.
type ConvertWhiteboardFileRes ¶
type ConvertWhiteboardFileRes struct {
Status bool `json:"status"`
Msg string `json:"msg"`
FileName string `json:"fileName"`
FileId string `json:"fileId"`
FilePath string `json:"filePath"`
TotalPages int `json:"totalPages"`
}
ConvertWhiteboardFileRes represents the response structure after converting a whiteboard file.
type EtherpadDataTypes ¶
type EtherpadDataTypes struct {
AuthorID string `json:"authorID"`
GroupID string `json:"groupID"`
SessionID string `json:"sessionID"`
PadID string `json:"padID"`
ReadOnlyID string `json:"readOnlyID"`
TotalPads int64 `json:"totalPads"`
TotalSessions int64 `json:"totalSessions"`
TotalActivePads int64 `json:"totalActivePads"`
}
type EtherpadHttpRes ¶
type EtherpadHttpRes struct {
Code int64 `json:"code"`
Message string `json:"message"`
Data EtherpadDataTypes `json:"data"`
}
type EtherpadModel ¶
type EtherpadModel struct {
// contains filtered or unexported fields
}
func NewEtherpadModel ¶
func NewEtherpadModel(ctx context.Context, app *config.AppConfig, ds *dbservice.DatabaseService, rs *redisservice.RedisService, natsService *natsservice.NatsService, analyticsModel *AnalyticsModel, logger *logrus.Logger) *EtherpadModel
func (*EtherpadModel) ChangeEtherpadStatus ¶
func (m *EtherpadModel) ChangeEtherpadStatus(r *plugnmeet.ChangeEtherpadStatusReq) error
func (*EtherpadModel) CleanAfterRoomEnd ¶
func (m *EtherpadModel) CleanAfterRoomEnd(roomId, metadata string) error
func (*EtherpadModel) CleanPad ¶
func (m *EtherpadModel) CleanPad(roomId, nodeId, padId string) error
CleanPad will delete the group, session & pad
func (*EtherpadModel) CreateSession ¶
func (m *EtherpadModel) CreateSession(roomId, requestedUserId string) (*plugnmeet.CreateEtherpadSessionRes, error)
CreateSession will create group, pad, session return padId, readonlyPadId
type ExDisplayModel ¶ added in v1.7.1
type ExDisplayModel struct {
// contains filtered or unexported fields
}
func NewExDisplayModel ¶ added in v1.7.1
func NewExDisplayModel(app *config.AppConfig, ds *dbservice.DatabaseService, rs *redisservice.RedisService, natsService *natsservice.NatsService, analyticsModel *AnalyticsModel, logger *logrus.Logger) *ExDisplayModel
func (*ExDisplayModel) HandleTask ¶ added in v1.7.1
func (m *ExDisplayModel) HandleTask(req *plugnmeet.ExternalDisplayLinkReq) error
type ExMediaModel ¶ added in v1.7.1
type ExMediaModel struct {
// contains filtered or unexported fields
}
func NewExMediaModel ¶ added in v1.7.1
func NewExMediaModel(app *config.AppConfig, ds *dbservice.DatabaseService, rs *redisservice.RedisService, natsService *natsservice.NatsService, analyticsModel *AnalyticsModel, logger *logrus.Logger) *ExMediaModel
func (*ExMediaModel) HandleTask ¶ added in v1.7.1
func (m *ExMediaModel) HandleTask(req *plugnmeet.ExternalMediaPlayerReq) error
type FileModel ¶ added in v1.7.1
type FileModel struct {
// contains filtered or unexported fields
}
func NewFileModel ¶ added in v1.7.1
func NewFileModel(ctx context.Context, app *config.AppConfig, ds *dbservice.DatabaseService, natsService *natsservice.NatsService, logger *logrus.Logger) *FileModel
func (*FileModel) ConvertAndBroadcastWhiteboardFile ¶ added in v1.7.1
func (m *FileModel) ConvertAndBroadcastWhiteboardFile(roomId, roomSid, filePath string) (*ConvertWhiteboardFileRes, error)
ConvertAndBroadcastWhiteboardFile will convert & broadcast files for whiteboard.
func (*FileModel) DeleteRoomUploadedDir ¶ added in v1.7.1
func (*FileModel) DownloadAndProcessPreUploadWBfile ¶ added in v1.7.1
func (m *FileModel) DownloadAndProcessPreUploadWBfile(roomId, roomSid, fileUrl string, log *logrus.Entry) (*ConvertWhiteboardFileRes, error)
DownloadAndProcessPreUploadWBfile downloads and processes a pre-uploaded whiteboard file. It validates the file, saves it, and triggers conversion and broadcasting. This should be run in a separate goroutine due to its potentially long execution time.
func (*FileModel) GetRoomFilesByType ¶ added in v1.9.4
func (m *FileModel) GetRoomFilesByType(roomId string, fileType plugnmeet.RoomUploadedFileType) (*plugnmeet.GetRoomUploadedFilesRes, error)
GetRoomFilesByType retrieves all file metadata for a given room, filtered by file type.
func (*FileModel) ResumableFileUpload ¶ added in v1.7.1
ResumableFileUpload method can only be use if you are using resumable.js as your frontend. Library link: https://github.com/23/resumable.js
func (*FileModel) UploadBase64EncodedData ¶ added in v1.8.2
func (m *FileModel) UploadBase64EncodedData(req *plugnmeet.UploadBase64EncodedDataReq) (*plugnmeet.UploadBase64EncodedDataRes, error)
func (*FileModel) UploadedFileMerge ¶ added in v1.7.1
func (m *FileModel) UploadedFileMerge(req *plugnmeet.UploadedFileMergeReq) (*plugnmeet.UploadedFileRes, error)
UploadedFileMerge will combine all the parts and create a final file
type IngressModel ¶ added in v1.3.4
type IngressModel struct {
// contains filtered or unexported fields
}
func NewIngressModel ¶ added in v1.3.4
func NewIngressModel(app *config.AppConfig, ds *dbservice.DatabaseService, rs *redisservice.RedisService, lk *livekitservice.LivekitService, natsService *natsservice.NatsService, analyticsModel *AnalyticsModel, logger *logrus.Logger) *IngressModel
func (*IngressModel) CreateIngress ¶ added in v1.3.4
func (m *IngressModel) CreateIngress(r *plugnmeet.CreateIngressReq) (*livekit.IngressInfo, error)
type JanitorModel ¶ added in v1.9.3
type JanitorModel struct {
// contains filtered or unexported fields
}
JanitorModel performs various background cleanup and maintenance tasks for the application.
func NewJanitorModel ¶ added in v1.9.3
func NewJanitorModel(mainCtx context.Context, app *config.AppConfig, ds *dbservice.DatabaseService, rs *redisservice.RedisService, natsService *natsservice.NatsService, lk *livekitservice.LivekitService, rm *RoomModel, rmDuration *RoomDurationModel, logger *logrus.Logger) *JanitorModel
NewJanitorModel creates a new JanitorModel.
func (*JanitorModel) Shutdown ¶ added in v1.9.4
func (m *JanitorModel) Shutdown()
func (*JanitorModel) StartJanitor ¶ added in v1.9.3
func (m *JanitorModel) StartJanitor()
StartJanitor starts the background janitor process. It uses a leader election mechanism to ensure only one instance runs the tasks.
type LTIV1FetchRecordingsReq ¶
type LtiCustomDesign ¶
type LtiCustomParameters ¶
type LtiCustomParameters struct {
RoomDuration uint64 `json:"room_duration,omitempty"`
AllowPolls *bool `json:"allow_polls,omitempty"`
AllowBreakoutRoom *bool `json:"allow_breakout_room,omitempty"`
AllowRecording *bool `json:"allow_recording,omitempty"`
AllowRTMP *bool `json:"allow_rtmp,omitempty"`
AllowViewOtherWebcams *bool `json:"allow_view_other_webcams,omitempty"`
AllowViewOtherParticipants *bool `json:"allow_view_other_users_list,omitempty"`
MuteOnStart *bool `json:"mute_on_start,omitempty"`
LtiCustomDesign *LtiCustomDesign `json:"lti_custom_design,omitempty"`
}
type LtiV1Model ¶ added in v1.7.1
type LtiV1Model struct {
// contains filtered or unexported fields
}
func NewLtiV1Model ¶ added in v1.7.1
func NewLtiV1Model(app *config.AppConfig, rm *RoomModel, um *UserModel) *LtiV1Model
func (*LtiV1Model) LTIV1JoinRoom ¶ added in v1.7.1
func (*LtiV1Model) LTIV1Landing ¶ added in v1.7.1
func (m *LtiV1Model) LTIV1Landing(c *fiber.Ctx, requests, signingURL string) error
func (*LtiV1Model) LTIV1VerifyHeaderToken ¶ added in v1.7.1
func (m *LtiV1Model) LTIV1VerifyHeaderToken(token string) (*LtiClaims, error)
func (*LtiV1Model) ToJWT ¶ added in v1.7.1
func (m *LtiV1Model) ToJWT(c *plugnmeet.LtiClaims) (string, error)
func (*LtiV1Model) VerifyAuth ¶ added in v1.7.1
func (m *LtiV1Model) VerifyAuth(requests, signingURL string) (*url.Values, error)
type NatsModel ¶ added in v1.7.1
type NatsModel struct {
// contains filtered or unexported fields
}
func NewNatsModel ¶ added in v1.7.1
func NewNatsModel(app *config.AppConfig, ds *dbservice.DatabaseService, rs *redisservice.RedisService, natsService *natsservice.NatsService, lk *livekitservice.LivekitService, analyticsModel *AnalyticsModel, authModel *AuthModel, userModel *UserModel, logger *logrus.Logger) *NatsModel
func (*NatsModel) GenerateLivekitToken ¶ added in v1.7.1
func (*NatsModel) HandleClientPing ¶ added in v1.7.1
func (*NatsModel) HandleFromClientToServerReq ¶ added in v1.7.1
func (m *NatsModel) HandleFromClientToServerReq(roomId, userId string, req *plugnmeet.NatsMsgClientToServer)
func (*NatsModel) HandleInitialData ¶ added in v1.7.1
func (*NatsModel) HandleSendUsersList ¶ added in v1.7.1
func (*NatsModel) OnAfterUserDisconnected ¶ added in v1.7.1
OnAfterUserDisconnected should be run in separate goroutine we'll wait for 5 seconds before declare user as offline but will broadcast as disconnected
func (*NatsModel) OnAfterUserJoined ¶ added in v1.7.1
func (*NatsModel) RenewPNMToken ¶ added in v1.7.1
type PollModel ¶ added in v1.7.1
type PollModel struct {
// contains filtered or unexported fields
}
func NewPollModel ¶ added in v1.7.1
func NewPollModel(app *config.AppConfig, ds *dbservice.DatabaseService, rs *redisservice.RedisService, natsService *natsservice.NatsService, analyticsModel *AnalyticsModel, logger *logrus.Logger) *PollModel
func (*PollModel) CleanUpPolls ¶ added in v1.7.1
func (*PollModel) ClosePoll ¶ added in v1.7.1
func (m *PollModel) ClosePoll(r *plugnmeet.ClosePollReq) error
func (*PollModel) CreatePoll ¶ added in v1.7.1
func (m *PollModel) CreatePoll(r *plugnmeet.CreatePollReq) (string, error)
func (*PollModel) GetPollResponsesDetails ¶ added in v1.7.1
func (*PollModel) GetPollsStats ¶ added in v1.7.1
func (m *PollModel) GetPollsStats(roomId string) (*plugnmeet.PollsStats, error)
func (*PollModel) GetResponsesResult ¶ added in v1.7.1
func (m *PollModel) GetResponsesResult(roomId, pollId string) (*plugnmeet.PollResponsesResult, error)
func (*PollModel) ManageActivation ¶ added in v1.8.2
func (m *PollModel) ManageActivation(req *plugnmeet.ActivatePollsReq) error
func (*PollModel) UserSelectedOption ¶ added in v1.7.1
func (*PollModel) UserSubmitResponse ¶ added in v1.7.1
func (m *PollModel) UserSubmitResponse(r *plugnmeet.SubmitPollResponseReq) error
type RecorderModel ¶ added in v1.4.0
type RecorderModel struct {
// contains filtered or unexported fields
}
func NewRecorderModel ¶ added in v1.4.0
func NewRecorderModel(app *config.AppConfig, ds *dbservice.DatabaseService, rs *redisservice.RedisService, natsService *natsservice.NatsService, um *UserModel, logger *logrus.Logger) *RecorderModel
func (*RecorderModel) SendMsgToRecorder ¶ added in v1.4.0
func (m *RecorderModel) SendMsgToRecorder(req *plugnmeet.RecordingReq) error
type RecorderReq ¶
type RecordingModel ¶ added in v1.3.1
type RecordingModel struct {
// contains filtered or unexported fields
}
func NewRecordingModel ¶
func NewRecordingModel(app *config.AppConfig, ds *dbservice.DatabaseService, rs *redisservice.RedisService, natsService *natsservice.NatsService, analyticsModel *AnalyticsModel, webhookNotifier *helpers.WebhookNotifier, logger *logrus.Logger) *RecordingModel
func (*RecordingModel) CreateTokenForDownload ¶ added in v1.7.1
func (m *RecordingModel) CreateTokenForDownload(path string) (string, error)
CreateTokenForDownload will generate token path format: sub_path/roomSid/filename
func (*RecordingModel) DeleteRecording ¶ added in v1.7.1
func (m *RecordingModel) DeleteRecording(r *plugnmeet.DeleteRecordingReq) error
func (*RecordingModel) FetchRecording ¶ added in v1.7.1
func (m *RecordingModel) FetchRecording(recordId string) (*plugnmeet.RecordingInfo, error)
FetchRecording to get single recording information from DB
func (*RecordingModel) FetchRecordings ¶ added in v1.7.1
func (m *RecordingModel) FetchRecordings(r *plugnmeet.FetchRecordingsReq) (*plugnmeet.FetchRecordingsResult, error)
func (*RecordingModel) GetDownloadToken ¶ added in v1.7.1
func (m *RecordingModel) GetDownloadToken(r *plugnmeet.GetDownloadTokenReq) (string, error)
GetDownloadToken will use the same JWT token generator as plugNmeet is using
func (*RecordingModel) HandleRecorderResp ¶ added in v1.3.1
func (m *RecordingModel) HandleRecorderResp(r *plugnmeet.RecorderToPlugNmeet, roomInfo *dbmodels.RoomInfo)
func (*RecordingModel) RecordingInfo ¶ added in v1.7.1
func (m *RecordingModel) RecordingInfo(req *plugnmeet.RecordingInfoReq) (*plugnmeet.RecordingInfoRes, error)
func (*RecordingModel) VerifyRecordingToken ¶ added in v1.7.1
func (m *RecordingModel) VerifyRecordingToken(token string) (string, int, error)
VerifyRecordingToken verify token & provide file path
type ResumableUploadReq ¶ added in v1.7.1
type ResumableUploadReq struct {
RoomSid string `json:"roomSid" query:"roomSid"`
RoomId string `json:"roomId" query:"roomId"`
UserId string `json:"userId" query:"userId"`
ResumableChunkNumber int `query:"resumableChunkNumber"`
ResumableTotalChunks int `query:"resumableTotalChunks"`
ResumableTotalSize int64 `query:"resumableTotalSize"`
ResumableIdentifier string `query:"resumableIdentifier"`
ResumableFilename string `query:"resumableFilename"`
ResumableCurrentChunkSize int64 `query:"resumableCurrentChunkSize"`
}
type RoomDurationInfo ¶ added in v1.5.4
type RoomDurationModel ¶ added in v1.5.4
type RoomDurationModel struct {
// contains filtered or unexported fields
}
func NewRoomDurationModel ¶ added in v1.5.4
func NewRoomDurationModel(app *config.AppConfig, rs *redisservice.RedisService, natsService *natsservice.NatsService, logger *logrus.Logger) *RoomDurationModel
func (*RoomDurationModel) AddRoomWithDurationInfo ¶ added in v1.5.4
func (m *RoomDurationModel) AddRoomWithDurationInfo(roomId string, r *RoomDurationInfo) error
func (*RoomDurationModel) CompareDurationWithParentRoom ¶ added in v1.5.4
func (m *RoomDurationModel) CompareDurationWithParentRoom(mainRoomId string, duration uint64) error
func (*RoomDurationModel) DeleteRoomWithDuration ¶ added in v1.5.4
func (m *RoomDurationModel) DeleteRoomWithDuration(roomId string) error
func (*RoomDurationModel) GetRoomDurationInfo ¶ added in v1.5.4
func (m *RoomDurationModel) GetRoomDurationInfo(roomId string) (*RoomDurationInfo, error)
func (*RoomDurationModel) GetRoomsWithDurationMap ¶ added in v1.5.4
func (m *RoomDurationModel) GetRoomsWithDurationMap() map[string]RoomDurationInfo
func (*RoomDurationModel) IncreaseRoomDuration ¶ added in v1.5.4
func (m *RoomDurationModel) IncreaseRoomDuration(roomId string, duration uint64) (uint64, error)
type RoomModel ¶ added in v1.3.1
type RoomModel struct {
// contains filtered or unexported fields
}
func NewRoomModel ¶
func NewRoomModel(ctx context.Context, app *config.AppConfig, ds *dbservice.DatabaseService, rs *redisservice.RedisService, lk *livekitservice.LivekitService, natsService *natsservice.NatsService, webhookNotifier *helpers.WebhookNotifier, userModel *UserModel, recorderModel *RecorderModel, fileModel *FileModel, roomDuration *RoomDurationModel, etherpadModel *EtherpadModel, pollModel *PollModel, speechToText *SpeechToTextModel, analyticsModel *AnalyticsModel, logger *logrus.Logger) *RoomModel
func (*RoomModel) ChangeVisibility ¶ added in v1.7.1
func (m *RoomModel) ChangeVisibility(r *plugnmeet.ChangeVisibilityRes) (bool, string)
func (*RoomModel) CreateRoom ¶ added in v1.7.1
func (m *RoomModel) CreateRoom(r *plugnmeet.CreateRoomReq) (*plugnmeet.ActiveRoomInfo, error)
func (*RoomModel) FetchPastRooms ¶ added in v1.7.1
func (m *RoomModel) FetchPastRooms(r *plugnmeet.FetchPastRoomsReq) (*plugnmeet.FetchPastRoomsResult, error)
func (*RoomModel) GetActiveRoomInfo ¶ added in v1.7.1
func (m *RoomModel) GetActiveRoomInfo(ctx context.Context, r *plugnmeet.GetActiveRoomInfoReq) (bool, string, *plugnmeet.ActiveRoomWithParticipant)
func (*RoomModel) GetActiveRoomsInfo ¶ added in v1.3.1
func (m *RoomModel) GetActiveRoomsInfo() (bool, string, []*plugnmeet.ActiveRoomWithParticipant)
func (*RoomModel) IsRoomActive ¶ added in v1.7.1
func (m *RoomModel) IsRoomActive(ctx context.Context, r *plugnmeet.IsRoomActiveReq) (*plugnmeet.IsRoomActiveRes, *dbmodels.RoomInfo, *plugnmeet.NatsKvRoomInfo, *plugnmeet.RoomMetadata)
func (*RoomModel) OnAfterRoomEnded ¶ added in v1.7.1
func (*RoomModel) SetBreakoutRoomModel ¶ added in v1.9.3
func (m *RoomModel) SetBreakoutRoomModel(bm *BreakoutRoomModel)
SetBreakoutRoomModel is an initializer to prevent circular dependency.
type SendBreakoutRoomMsgReq ¶
type SpeechToTextModel ¶ added in v1.7.1
type SpeechToTextModel struct {
// contains filtered or unexported fields
}
func NewSpeechToTextModel ¶ added in v1.7.1
func NewSpeechToTextModel(app *config.AppConfig, ds *dbservice.DatabaseService, rs *redisservice.RedisService, natsService *natsservice.NatsService, analyticsModel *AnalyticsModel, webhookNotifier *helpers.WebhookNotifier, logger *logrus.Logger) *SpeechToTextModel
func (*SpeechToTextModel) GenerateAzureToken ¶ added in v1.7.1
func (m *SpeechToTextModel) GenerateAzureToken(r *plugnmeet.GenerateAzureTokenReq, requestedUserId string) error
func (*SpeechToTextModel) OnAfterRoomEnded ¶ added in v1.7.1
func (m *SpeechToTextModel) OnAfterRoomEnded(roomId, sId string) error
func (*SpeechToTextModel) RenewAzureToken ¶ added in v1.7.1
func (m *SpeechToTextModel) RenewAzureToken(r *plugnmeet.AzureTokenRenewReq, requestedUserId string) error
func (*SpeechToTextModel) SpeechServiceUserStatus ¶ added in v1.7.1
func (m *SpeechToTextModel) SpeechServiceUserStatus(r *plugnmeet.SpeechServiceUserStatusReq) error
func (*SpeechToTextModel) SpeechServiceUsersUsage ¶ added in v1.7.1
func (m *SpeechToTextModel) SpeechServiceUsersUsage(roomId, rSid, userId string, task plugnmeet.SpeechServiceUserStatusTasks) error
func (*SpeechToTextModel) SpeechToTextTranslationServiceStart ¶ added in v1.7.1
func (m *SpeechToTextModel) SpeechToTextTranslationServiceStart(r *plugnmeet.SpeechToTextTranslationReq) error
type UserModel ¶ added in v1.3.1
type UserModel struct {
// contains filtered or unexported fields
}
func NewUserModel ¶
func NewUserModel(app *config.AppConfig, ds *dbservice.DatabaseService, rs *redisservice.RedisService, lk *livekitservice.LivekitService, natsService *natsservice.NatsService, analyticsModel *AnalyticsModel, logger *logrus.Logger) *UserModel
func (*UserModel) AssignLockSettingsToUser ¶ added in v1.7.1
func (m *UserModel) AssignLockSettingsToUser(meta *plugnmeet.RoomMetadata, g *plugnmeet.GenerateTokenReq)
AssignLockSettingsToUser will assign lock to a non-admin user.
func (*UserModel) CommonValidation ¶ added in v1.3.1
func (*UserModel) CreateNewPresenter ¶ added in v1.7.1
func (m *UserModel) CreateNewPresenter(r *plugnmeet.GenerateTokenReq) error
CreateNewPresenter verify if any presenter already online or not if not then it promote requested admin to be presenter
func (*UserModel) GetPNMJoinToken ¶ added in v1.7.1
func (*UserModel) MuteUnMuteTrack ¶ added in v1.3.1
func (m *UserModel) MuteUnMuteTrack(r *plugnmeet.MuteUnMuteTrackReq) error
MuteUnMuteTrack can be used to mute or unmute track if track_sid wasn't send then it will find the microphone track & mute it for unmute you'll require enabling "enable_remote_unmute: true" in livekit under room settings. For privacy reason we aren't using it.
func (*UserModel) RaisedHand ¶ added in v1.7.1
func (*UserModel) RemoveParticipant ¶ added in v1.3.1
func (m *UserModel) RemoveParticipant(r *plugnmeet.RemoveParticipantReq) error
func (*UserModel) SwitchPresenter ¶ added in v1.3.1
func (m *UserModel) SwitchPresenter(r *plugnmeet.SwitchPresenterReq) error
SwitchPresenter promotes the new presenter *before* demoting the old one and ensures the requesting admin becomes the presenter on demotion, guaranteeing the room is never left without a presenter.
func (*UserModel) UpdateUserLockSettings ¶ added in v1.3.1
func (m *UserModel) UpdateUserLockSettings(r *plugnmeet.UpdateUserLockSettingsReq) error
UpdateUserLockSettings is the main entry point for updating lock settings. It now acts as a router for single-user or all-user updates.
type WaitingRoomModel ¶ added in v1.7.1
type WaitingRoomModel struct {
// contains filtered or unexported fields
}
func NewWaitingRoomModel ¶
func NewWaitingRoomModel(app *config.AppConfig, rs *redisservice.RedisService, natsService *natsservice.NatsService, logger *logrus.Logger) *WaitingRoomModel
func (*WaitingRoomModel) ApproveWaitingUsers ¶ added in v1.7.1
func (m *WaitingRoomModel) ApproveWaitingUsers(r *plugnmeet.ApproveWaitingUsersReq) error
func (*WaitingRoomModel) UpdateWaitingRoomMessage ¶ added in v1.7.1
func (m *WaitingRoomModel) UpdateWaitingRoomMessage(r *plugnmeet.UpdateWaitingRoomMessageReq) error
type WebhookModel ¶ added in v1.7.1
type WebhookModel struct {
// contains filtered or unexported fields
}
func NewWebhookModel ¶
func NewWebhookModel(ctx context.Context, app *config.AppConfig, ds *dbservice.DatabaseService, rs *redisservice.RedisService, natsService *natsservice.NatsService, lk *livekitservice.LivekitService, rm *RoomModel, analyticsModel *AnalyticsModel, rmDuration *RoomDurationModel, bm *BreakoutRoomModel, nm *NatsModel, sm *SpeechToTextModel, webhookNotifier *helpers.WebhookNotifier, logger *logrus.Logger) *WebhookModel
func (*WebhookModel) HandleWebhookEvents ¶ added in v1.7.1
func (m *WebhookModel) HandleWebhookEvents(e *livekit.WebhookEvent)
Source Files
¶
- analytics.go
- analytics_create.go
- analytics_delete.go
- analytics_export.go
- analytics_handle.go
- analytics_info.go
- analytics_insert.go
- analytics_token.go
- auth.go
- auth_lk.go
- auth_pnm.go
- bbb.go
- bbb_recording.go
- bkroom.go
- bkroom_create.go
- bkroom_end.go
- bkroom_info.go
- bkroom_join.go
- bkroom_msg.go
- bkroom_update.go
- duration.go
- duration_info.go
- duration_modify.go
- etherpad.go
- etherpad_create.go
- etherpad_end.go
- etherpad_modify.go
- exdisplay.go
- exdisplay_modify.go
- exmedia.go
- exmedia_modify.go
- file.go
- file_convert.go
- file_delete.go
- file_download.go
- file_info.go
- file_update.go
- file_upload.go
- file_upload_base64.go
- file_validation.go
- ingress.go
- ingress_create.go
- janitor.go
- janitor_duration.go
- janitor_recording.go
- janitor_room.go
- janitor_user.go
- lti.go
- lti_auth.go
- lti_join.go
- lti_landing.go
- nats.go
- nats_system.go
- nats_user.go
- nats_user_event.go
- poll.go
- poll_create.go
- poll_end.go
- poll_info.go
- recorder.go
- recorder_info.go
- recording.go
- recording_create.go
- recording_delete.go
- recording_end.go
- recording_info.go
- recording_rtmp.go
- recording_token.go
- room.go
- room_create.go
- room_end.go
- room_info.go
- room_lock_helper.go
- room_modify.go
- speechtotext.go
- speechtotext_start.go
- speechtotext_token.go
- speechtotext_update.go
- user.go
- user_join.go
- user_lock.go
- user_modify.go
- user_presenter.go
- user_track.go
- waitingroom.go
- waitingroom_update.go
- webhook.go
- webhook_room.go
- webhook_track.go
- webhook_user.go