func (p urlParams) room(paramPosition int) (ct.RoomId, types.Error) { room, parseErr := ct.ParseRoomId(p.params[paramPosition].Value) if parseErr != nil { return ct.RoomId{}, types.BadParamError(parseErr.Error()) } return room, nil }
func (e roomsEndpoint) doWildcardJoin(req *http.Request, params httprouter.Params) interface{} { user, err := readAccessToken(e.userService, e.tokenService, req) if err != nil { return err } roomIdOrAlias := params[0].Value room, parseErr := ct.ParseRoomId(roomIdOrAlias) if parseErr != nil { alias, parseErr := ct.ParseAlias(roomIdOrAlias) if parseErr != nil { return types.BadParamError("invalid room id or alias: " + roomIdOrAlias) } room, err = e.roomService.LookupAlias(alias) if err != nil { return err } } content := types.MembershipEventContent{} content.Membership = types.MembershipMember _, err = e.roomService.SetState(room, user, &content, user.String()) if err != nil { return err } return struct{}{} }
func (p urlParams) user(paramPosition int, users interfaces.UserService) (ct.UserId, types.Error) { user, err := ct.ParseUserId(p.params[paramPosition].Value) if err != nil { return ct.UserId{}, types.BadParamError(err.Error()) } if users != nil { exists, err := users.UserExists(user, user) if err != nil { return ct.UserId{}, err } if !exists { return ct.UserId{}, types.NotFoundError("user '" + user.String() + "' doesn't exist") } } return user, nil }
func (e roomsEndpoint) sendMessage(req *http.Request, params httprouter.Params, content *map[string]interface{}) interface{} { user, err := readAccessToken(e.userService, e.tokenService, req) if err != nil { return err } room, parseErr := ct.ParseRoomId(params[0].Value) if parseErr != nil { return types.BadParamError(parseErr.Error()) } eventType := params[1].Value typedContent := types.NewGenericContent(*content, eventType) message, err := e.roomService.AddMessage(room, user, typedContent) if err != nil { return err } return eventIdResponse{message.EventId} }