Documentation
¶
Index ¶
- Variables
- func CreateVideoSeekData(streamId uint, chunkCount int) ([]model.VideoSeekChunk, gin.H)
- func Equal(t *testing.T, a, b interface{})
- func GetAuditMock(t *testing.T) dao.AuditDao
- func GetCoursesMock(t *testing.T) dao.CoursesDao
- func GetFileMock(t *testing.T) dao.FileDao
- func GetLectureHallMock(t *testing.T) dao.LectureHallsDao
- func GetMiddlewares(mw ...func(ctx *gin.Context)) []func(c *gin.Context)
- func GetStreamMock(t *testing.T) dao.StreamsDao
- func GetTokenMock(t *testing.T) dao.TokenDao
- func GetUploadKeyMock(t *testing.T) dao.UploadKeyDao
- func GetUsersMock(t *testing.T) dao.UsersDao
- func TUMLiveContext(ctx tools.TUMLiveContext) func(c *gin.Context)
Constants ¶
This section is empty.
Variables ¶
View Source
var ( StartTime = time.Now() TUMLiveContextStudent = tools.TUMLiveContext{User: &Student} TUMLiveContextLecturer = tools.TUMLiveContext{User: &Lecturer} TUMLiveContextAdmin = tools.TUMLiveContext{User: &Admin} TUMLiveContextUserNil = tools.TUMLiveContext{User: nil} TUMLiveContextEmpty = tools.TUMLiveContext{} )
Misc
View Source
var ( Student = model.User{Model: gorm.Model{ID: 42}, Role: model.StudentType, PinnedCourses: []model.Course{CourseFPV}} Lecturer = model.User{Model: gorm.Model{ID: 31}, Role: model.LecturerType} Admin = model.User{Model: gorm.Model{ID: 0}, Role: model.AdminType} EmptyLectureHall = model.LectureHall{} LectureHall = model.LectureHall{ Model: gorm.Model{ID: uint(1)}, Name: "FMI_HS1", FullName: "MI HS1", CombIP: "127.0.0.1/extron3", PresIP: "127.0.0.1/extron1", CamIP: "127.0.0.1/extron2", CameraIP: "127.0.0.1", RoomID: 0, PwrCtrlIp: "http://pwrctrlip.in.test.de", } CameraPreset = model.CameraPreset{ Name: "Home", PresetID: 1, Image: "ccc47fae-847c-4a91-8a65-b26cbae6fbe2.jpg", LectureHallID: LectureHall.ID, IsDefault: false, } CourseFPV = model.Course{ Model: gorm.Model{ID: uint(40)}, UserID: 1, Name: "Funktionale Programmierung und Verifikation (IN0003)", Slug: "fpv", Year: 2022, TeachingTerm: "W", TUMOnlineIdentifier: "2020", VODEnabled: false, DownloadsEnabled: false, ChatEnabled: true, AnonymousChatEnabled: false, ModeratedChatEnabled: false, VodChatEnabled: false, Visibility: "public", Admins: []model.User{Admin}, Streams: []model.Stream{StreamFPVLive, StreamFPVNotLive, SelfStream}, } CourseGBS = model.Course{ Model: gorm.Model{ID: uint(42)}, UserID: 1, Name: "Grundlagen: Betriebssysteme und Systemsoftware (IN0009)", Slug: "gbs", Year: 0, TeachingTerm: "W", TUMOnlineIdentifier: "2021", VODEnabled: false, DownloadsEnabled: false, ChatEnabled: true, AnonymousChatEnabled: false, ModeratedChatEnabled: false, VodChatEnabled: false, Visibility: "public", } CourseTensNet = model.Course{ Model: gorm.Model{ID: uint(55)}, UserID: 1, Name: "Tensor Networks (IN2388)", Slug: "TensNet", Year: 2023, TeachingTerm: "S", TUMOnlineIdentifier: "2023", VODEnabled: false, DownloadsEnabled: false, ChatEnabled: true, AnonymousChatEnabled: false, ModeratedChatEnabled: false, VodChatEnabled: false, Visibility: "enrolled", Streams: []model.Stream{StreamTensNetLive}, } StreamFPVLive = model.Stream{ Model: gorm.Model{ID: 1969}, Name: "Lecture 1", Description: "First official stream", CourseID: 40, Start: StartTime, End: StartTime.Add(time.Hour), ChatEnabled: true, RoomName: "00.08.038, Seminarraum", RoomCode: "5608.EG.038", EventTypeName: "Abhaltung", TUMOnlineEventID: 888261337, SeriesIdentifier: "e00a5d01-c530-41c5-8698-e40ec6d828ef", StreamKey: "0dc3d-1337-1194-38f8-1337-7f16-bbe1-1337", PlaylistUrl: "https://url", PlaylistUrlPRES: "https://url", PlaylistUrlCAM: "https://url", LiveNow: true, LectureHallID: LectureHall.ID, Files: []model.File{Attachment, AttachmentInvalidPath}, Units: []model.StreamUnit{ { Model: gorm.Model{ID: 1}, UnitName: "Unit 1", UnitDescription: "First unit", UnitStart: 0, UnitEnd: 1111, StreamID: 1969, }, }, VideoSections: []model.VideoSection{ { Description: "Introduction", StartHours: 0, StartMinutes: 0, StartSeconds: 0, }, { Description: "Proofs", StartHours: 1, StartMinutes: 33, StartSeconds: 7, }, }, } StreamFPVNotLive = model.Stream{ Model: gorm.Model{ID: 1969}, Name: "Lecture 1", Description: "First official stream", CourseID: 40, Start: StartTime, End: StartTime.Add(time.Hour), ChatEnabled: true, RoomName: "00.08.038, Seminarraum", RoomCode: "5608.EG.038", EventTypeName: "Abhaltung", TUMOnlineEventID: 888261337, SeriesIdentifier: "e00a5d01-c530-41c5-8698-e40ec6d828ef", StreamKey: "0dc3d-1337-1194-38f8-1337-7f16-bbe1-1337", PlaylistUrl: "https://url", PlaylistUrlPRES: "https://url", PlaylistUrlCAM: "https://url", LiveNow: false, LectureHallID: LectureHall.ID, } StreamTensNetLive = model.Stream{ Model: gorm.Model{ID: 3333}, Name: "Tensor Contraction", Description: "C = A . B", CourseID: 55, Start: time.Time{}, End: time.Time{}, LiveNow: true, } StreamGBSLive = model.Stream{ Model: gorm.Model{ID: 96}, Name: "Linker & Loader", Description: "Tweedback: ...", CourseID: CourseGBS.ID, Start: StartTime, End: StartTime.Add(time.Hour), ChatEnabled: true, TUMOnlineEventID: 888333337, SeriesIdentifier: "", StreamKey: "0dc3d-1337-7331-4201-1337-7f16-bbe1-2222", PlaylistUrl: "https://url", PlaylistUrlPRES: "https://url", PlaylistUrlCAM: "https://url", LiveNow: true, } SelfStream = model.Stream{ Model: gorm.Model{ID: 420}, Name: "Selfstream1", Description: "First selfstream", CourseID: 40, Start: StartTime, End: StartTime.Add(time.Hour), ChatEnabled: true, TUMOnlineEventID: 888261337, SeriesIdentifier: "", StreamKey: "0dc3d-1337-1194-38f8-1337-7f16-bbe1-1111", PlaylistUrl: "https://url", PlaylistUrlPRES: "https://url", PlaylistUrlCAM: "https://url", LiveNow: false, } Worker1 = model.Worker{ WorkerID: "ed067fa3-2364-4dcd-bfd2-e0ffb8d751d4", Host: "localhost", Status: "", Workload: 0, LastSeen: time.Now(), } Worker2 = model.Worker{ WorkerID: "ed067fa3-2364-4dcd-bfd2-e0ffb8d751d4", Host: "localhost", Status: "", Workload: 0, LastSeen: time.Now(), } AdminToken = model.Token{ UserID: Admin.ID, User: Admin, Token: "ed067f11-1337-4dcd-bfd2-4201b8d751d4", Scope: model.TokenScopeAdmin, } Attachment = model.File{ StreamID: 1969, Path: "/tmp/test.txt", Filename: "test.txt", Type: model.FILETYPE_ATTACHMENT, } AttachmentInvalidPath = model.File{ StreamID: 1969, Path: "/tmp/i_do_not_exist.txt", Filename: "i_do_not_exist.txt", Type: model.FILETYPE_ATTACHMENT, } InfoPage = model.InfoPage{ Model: gorm.Model{ID: 1}, Name: "Data Privacy", RawContent: "#data privacy", Type: model.INFOPAGE_MARKDOWN, } FPVNotLiveVideoSeekChunk1 = model.VideoSeekChunk{ ChunkIndex: 1, StreamID: StreamFPVNotLive.ID, Hits: 247, } FPVNotLiveVideoSeekChunk2 = model.VideoSeekChunk{ ChunkIndex: 2, StreamID: StreamFPVNotLive.ID, Hits: 112, } FPVNotLiveVideoSeekChunk3 = model.VideoSeekChunk{ ChunkIndex: 3, StreamID: StreamFPVNotLive.ID, Hits: 788, } Bookmark = model.Bookmark{ Model: gorm.Model{ID: 1}, Description: "Klausurrelevant", Hours: 1, Minutes: 33, Seconds: 7, UserID: Student.ID, StreamID: StreamFPVLive.ID, } PollStreamFPVLive = model.Poll{ Model: gorm.Model{ID: uint(3)}, StreamID: StreamFPVLive.ID, Stream: StreamFPVLive, Question: "1+1=?", Active: true, PollOptions: []model.PollOption{ {Model: gorm.Model{ID: 0}, Answer: "2", Votes: []model.User{Student}}, {Model: gorm.Model{ID: 1}, Answer: "3", Votes: []model.User{}}, }, } SubtitlesFPVLive = model.Subtitles{ StreamID: StreamFPVLive.ID, Content: "wonderful", Language: "en", } )
Models
View Source
var ( HiddenCourseID = uint(400) EnrolledCourseID = uint(401) LoggedinCourseID = uint(402) PublicCourseID = uint(403) StreamIDHiddenCourse = uint(500) StreamIDEnrolledCourse = uint(510) StreamIDLoggedinCourse = uint(520) StreamIDPublicCourse = uint(530) PrivateStreamIDHiddenCourse = uint(501) PrivateStreamIDEnrolledCourse = uint(511) PrivateStreamIDLoggedinCourse = uint(521) PrivateStreamIDPublicCourse = uint(531) SubtitlesIDPublicCourseStream = "1000" SubtitlesIDPublicCoursePrivateStream = "1001" SubtitlesIDLoggedinCourseStream = "1002" SubtitlesIDLoggedinCoursePrivateStream = "1003" SubtitlesIDEnrolledCourseStream = "1004" SubtitlesIDEnrolledCoursePrivateStream = "1005" SubtitlesIDHiddenCourseStream = "1006" SubtitlesIDHiddenCoursePrivateStream = "1007" )
testdata for testing the search functionality ids
View Source
var ( TUMLiveContextLecturerNoCourseSearch = tools.TUMLiveContext{User: &LecturerNoCourse} TUMLiveContextLecturerAllCoursesSearch = tools.TUMLiveContext{User: &LecturerAllCourses} TUMLiveContextStudentNoCourseSearch = tools.TUMLiveContext{User: &StudentNoCourse} TUMLiveContextStudentAllCoursesSearch = tools.TUMLiveContext{User: &StudentAllCourses} )
TUMLiveContext for search tests
View Source
var ( // users LecturerNoCourse = model.User{ Model: gorm.Model{ID: 610}, Role: model.LecturerType, Courses: []model.Course{}, AdministeredCourses: []model.Course{}, } LecturerAllCourses = model.User{ Model: gorm.Model{ID: 611}, Role: model.LecturerType, Courses: []model.Course{}, AdministeredCourses: []model.Course{HiddenCourse, EnrolledCourse, LoggedinCourse, PublicCourse}, } StudentNoCourse = model.User{ Model: gorm.Model{ID: 620}, Role: model.StudentType, Courses: []model.Course{}, } StudentAllCourses = model.User{ Model: gorm.Model{ID: 621}, Role: model.StudentType, Courses: []model.Course{HiddenCourse, EnrolledCourse, LoggedinCourse, PublicCourse}, } // courses AllCoursesForSearchTests = []model.Course{HiddenCourse, EnrolledCourse, LoggedinCourse, PublicCourse} HiddenCourse = model.Course{ Model: gorm.Model{ID: HiddenCourseID}, UserID: 1, Name: "testen", Slug: "coursehidden", Year: 2024, TeachingTerm: "W", Visibility: "hidden", Streams: []model.Stream{StreamHiddenCourse, PrivateStreamHiddenCourse}, Admins: []model.User{}, } EnrolledCourse = model.Course{ Model: gorm.Model{ID: EnrolledCourseID}, UserID: 1, Name: "testen", Slug: "courseenrolled", Year: 2024, TeachingTerm: "W", Visibility: "enrolled", Streams: []model.Stream{StreamEnrolledCourse, PrivateStreamEnrolledCourse}, Admins: []model.User{}, } LoggedinCourse = model.Course{ Model: gorm.Model{ID: LoggedinCourseID}, UserID: 1, Name: "testen", Slug: "courseloggedin", Year: 2024, TeachingTerm: "W", Visibility: "loggedin", Streams: []model.Stream{StreamLoggedinCourse, PrivateStreamLoggedinCourse}, Admins: []model.User{}, } PublicCourse = model.Course{ Model: gorm.Model{ID: PublicCourseID}, UserID: 1, Name: "testen", Slug: "coursepublic", Year: 2024, TeachingTerm: "W", Visibility: "public", Streams: []model.Stream{StreamPublicCourse, PrivateStreamPublicCourse}, Admins: []model.User{}, } // streans AllStreamsForSearchTests = []model.Stream{StreamHiddenCourse, PrivateStreamHiddenCourse, StreamEnrolledCourse, PrivateStreamEnrolledCourse, StreamLoggedinCourse, PrivateStreamLoggedinCourse, StreamPublicCourse, PrivateStreamPublicCourse} StreamHiddenCourse = model.Stream{ Model: gorm.Model{ID: StreamIDHiddenCourse}, Name: "testen", Description: "testen", CourseID: 400, Recording: true, Private: false, } PrivateStreamHiddenCourse = model.Stream{ Model: gorm.Model{ID: PrivateStreamIDHiddenCourse}, Name: "testen", Description: "testen", CourseID: 400, Recording: true, Private: true, } StreamEnrolledCourse = model.Stream{ Model: gorm.Model{ID: StreamIDEnrolledCourse}, Name: "testen", Description: "testen", CourseID: 401, Recording: true, Private: false, } PrivateStreamEnrolledCourse = model.Stream{ Model: gorm.Model{ID: PrivateStreamIDEnrolledCourse}, Name: "testen", Description: "testen", CourseID: 401, Recording: true, Private: true, } StreamLoggedinCourse = model.Stream{ Model: gorm.Model{ID: StreamIDLoggedinCourse}, Name: "testen", Description: "testen", CourseID: 402, Recording: true, Private: false, } PrivateStreamLoggedinCourse = model.Stream{ Model: gorm.Model{ID: PrivateStreamIDLoggedinCourse}, Name: "testen", Description: "testen", CourseID: 402, Recording: true, Private: true, } StreamPublicCourse = model.Stream{ Model: gorm.Model{ID: StreamIDPublicCourse}, Name: "testen", Description: "testen", CourseID: 403, Recording: true, Private: false, } PrivateStreamPublicCourse = model.Stream{ Model: gorm.Model{ID: PrivateStreamIDPublicCourse}, Name: "testen", Description: "testen", CourseID: 403, Recording: true, Private: true, } // subtitles AllSubtitlesForSearchTests = []tools.MeiliSubtitles{SubtitlesStreamHiddenCourse, SubtitlesPrivateStreamHiddenCourse, SubtitlesStreamEnrolledCourse, SubtitlesPrivateStreamEnrolledCourse, SubtitlesStreamLoggedinCourse, SubtitlesPrivateStreamLoggedinCourse, SubtitlesStreamPublicCourse, SubtitlesPrivateStreamPublicCourse} SubtitlesStreamPublicCourse = tools.MeiliSubtitles{ ID: SubtitlesIDPublicCourseStream, StreamID: StreamIDPublicCourse, Text: "hallihallo1", } SubtitlesPrivateStreamPublicCourse = tools.MeiliSubtitles{ ID: SubtitlesIDPublicCoursePrivateStream, StreamID: PrivateStreamIDPublicCourse, Text: "hallihallo2", } SubtitlesStreamLoggedinCourse = tools.MeiliSubtitles{ ID: SubtitlesIDLoggedinCourseStream, StreamID: StreamIDLoggedinCourse, Text: "hallihallo1", } SubtitlesPrivateStreamLoggedinCourse = tools.MeiliSubtitles{ ID: SubtitlesIDLoggedinCoursePrivateStream, StreamID: PrivateStreamIDLoggedinCourse, Text: "hallihallo2", } SubtitlesStreamEnrolledCourse = tools.MeiliSubtitles{ ID: SubtitlesIDEnrolledCourseStream, StreamID: StreamIDEnrolledCourse, Text: "hallihallo1", } SubtitlesPrivateStreamEnrolledCourse = tools.MeiliSubtitles{ ID: SubtitlesIDEnrolledCoursePrivateStream, StreamID: PrivateStreamIDEnrolledCourse, Text: "hallihallo2", } SubtitlesStreamHiddenCourse = tools.MeiliSubtitles{ ID: SubtitlesIDHiddenCourseStream, StreamID: StreamIDHiddenCourse, Text: "hallihallo1", } SubtitlesPrivateStreamHiddenCourse = tools.MeiliSubtitles{ ID: SubtitlesIDHiddenCoursePrivateStream, StreamID: PrivateStreamIDHiddenCourse, Text: "hallihallo2", } )
Functions ¶
func CreateVideoSeekData ¶
CreateVideoSeekData returns list of generated VideoSeekChunk and expected response object
func GetCoursesMock ¶
func GetCoursesMock(t *testing.T) dao.CoursesDao
func GetLectureHallMock ¶
func GetLectureHallMock(t *testing.T) dao.LectureHallsDao
func GetStreamMock ¶
func GetStreamMock(t *testing.T) dao.StreamsDao
func GetUploadKeyMock ¶
func GetUploadKeyMock(t *testing.T) dao.UploadKeyDao
func TUMLiveContext ¶
func TUMLiveContext(ctx tools.TUMLiveContext) func(c *gin.Context)
Types ¶
This section is empty.
Click to show internal directories.
Click to hide internal directories.