MCPcopy Create free account
hub / github.com/daodst/chat / QueryServerAllowedToSeeEvent

Method QueryServerAllowedToSeeEvent

roomserver/internal/query/query.go:326–361  ·  view source on GitHub ↗

QueryServerAllowedToSeeEvent implements api.RoomserverInternalAPI

(
	ctx context.Context,
	request *api.QueryServerAllowedToSeeEventRequest,
	response *api.QueryServerAllowedToSeeEventResponse,
)

Source from the content-addressed store, hash-verified

324
325// QueryServerAllowedToSeeEvent implements api.RoomserverInternalAPI
326func (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
364func (r *Queryer) QueryMissingEvents(

Callers

nothing calls this directly

Calls 4

IsStubMethod · 0.80
EventsFromIDsMethod · 0.65
RoomInfoMethod · 0.65

Tested by

no test coverage detected