QueryServerAllowedToSeeEvent implements api.RoomserverInternalAPI
( ctx context.Context, request *api.QueryServerAllowedToSeeEventRequest, response *api.QueryServerAllowedToSeeEventResponse, )
| 324 | |
| 325 | // QueryServerAllowedToSeeEvent implements api.RoomserverInternalAPI |
| 326 | func (r *Queryer) QueryServerAllowedToSeeEvent( |
| 327 | ctx context.Context, |
| 328 | request *api.QueryServerAllowedToSeeEventRequest, |
| 329 | response *api.QueryServerAllowedToSeeEventResponse, |
| 330 | ) (err error) { |
| 331 | events, err := r.DB.EventsFromIDs(ctx, []string{request.EventID}) |
| 332 | if err != nil { |
| 333 | return |
| 334 | } |
| 335 | if len(events) == 0 { |
| 336 | response.AllowedToSeeEvent = false // event doesn't exist so not allowed to see |
| 337 | return |
| 338 | } |
| 339 | roomID := events[0].RoomID() |
| 340 | |
| 341 | inRoomReq := &api.QueryServerJoinedToRoomRequest{ |
| 342 | RoomID: roomID, |
| 343 | ServerName: request.ServerName, |
| 344 | } |
| 345 | inRoomRes := &api.QueryServerJoinedToRoomResponse{} |
| 346 | if err = r.QueryServerJoinedToRoom(ctx, inRoomReq, inRoomRes); err != nil { |
| 347 | return fmt.Errorf("r.Queryer.QueryServerJoinedToRoom: %w", err) |
| 348 | } |
| 349 | |
| 350 | info, err := r.DB.RoomInfo(ctx, roomID) |
| 351 | if err != nil { |
| 352 | return err |
| 353 | } |
| 354 | if info == nil || info.IsStub() { |
| 355 | return nil |
| 356 | } |
| 357 | response.AllowedToSeeEvent, err = helpers.CheckServerAllowedToSeeEvent( |
| 358 | ctx, r.DB, info, request.EventID, request.ServerName, inRoomRes.IsInRoom, |
| 359 | ) |
| 360 | return |
| 361 | } |
| 362 | |
| 363 | // QueryMissingEvents implements api.RoomserverInternalAPI |
| 364 | func (r *Queryer) QueryMissingEvents( |
nothing calls this directly
no test coverage detected