⚡ Cache channel identity query
This commit is contained in:
@@ -40,11 +40,13 @@ func getChannelIdentity(c *fiber.Ctx) error {
|
||||
|
||||
var err error
|
||||
var member models.ChannelMember
|
||||
|
||||
if val, ok := c.Locals("realm").(models.Realm); ok {
|
||||
_, member, err = services.GetAvailableChannelWithAlias(alias, user, val.ID)
|
||||
_, member, err = services.GetChannelIdentity(alias, user.ID, val)
|
||||
} else {
|
||||
_, member, err = services.GetAvailableChannelWithAlias(alias, user)
|
||||
_, member, err = services.GetChannelIdentity(alias, user.ID)
|
||||
}
|
||||
|
||||
if err != nil {
|
||||
return c.SendStatus(fiber.StatusForbidden)
|
||||
}
|
||||
|
@@ -95,20 +95,17 @@ func newRawEvent(c *fiber.Ctx) error {
|
||||
var err error
|
||||
var channel models.Channel
|
||||
var member models.ChannelMember
|
||||
|
||||
if val, ok := c.Locals("realm").(models.Realm); ok {
|
||||
channel, member, err = services.GetAvailableChannelWithAlias(alias, user, val.ID)
|
||||
if err != nil {
|
||||
return fiber.NewError(fiber.StatusNotFound, err.Error())
|
||||
} else if member.PowerLevel < 0 {
|
||||
return fiber.NewError(fiber.StatusForbidden, "you have not enough permission to send message")
|
||||
}
|
||||
channel, member, err = services.GetChannelIdentity(alias, user.ID, val)
|
||||
} else {
|
||||
channel, member, err = services.GetAvailableChannelWithAlias(alias, user)
|
||||
if err != nil {
|
||||
return fiber.NewError(fiber.StatusNotFound, err.Error())
|
||||
} else if member.PowerLevel < 0 {
|
||||
return fiber.NewError(fiber.StatusForbidden, "you have not enough permission to send message")
|
||||
}
|
||||
channel, member, err = services.GetChannelIdentity(alias, user.ID)
|
||||
}
|
||||
|
||||
if err != nil {
|
||||
return fiber.NewError(fiber.StatusNotFound, err.Error())
|
||||
} else if member.PowerLevel < 0 {
|
||||
return fiber.NewError(fiber.StatusForbidden, "you have not enough permission to send message")
|
||||
}
|
||||
|
||||
event := models.Event{
|
||||
|
@@ -38,11 +38,13 @@ func newMessageEvent(c *fiber.Ctx) error {
|
||||
var err error
|
||||
var channel models.Channel
|
||||
var member models.ChannelMember
|
||||
|
||||
if val, ok := c.Locals("realm").(models.Realm); ok {
|
||||
channel, member, err = services.GetAvailableChannelWithAlias(alias, user, val.ID)
|
||||
channel, member, err = services.GetChannelIdentity(alias, user.ID, val)
|
||||
} else {
|
||||
channel, member, err = services.GetAvailableChannelWithAlias(alias, user)
|
||||
channel, member, err = services.GetChannelIdentity(alias, user.ID)
|
||||
}
|
||||
|
||||
if err != nil {
|
||||
return fiber.NewError(fiber.StatusNotFound, err.Error())
|
||||
} else if member.PowerLevel < 0 {
|
||||
@@ -95,11 +97,13 @@ func editMessageEvent(c *fiber.Ctx) error {
|
||||
var err error
|
||||
var channel models.Channel
|
||||
var member models.ChannelMember
|
||||
|
||||
if val, ok := c.Locals("realm").(models.Realm); ok {
|
||||
channel, member, err = services.GetAvailableChannelWithAlias(alias, user, val.ID)
|
||||
channel, member, err = services.GetChannelIdentity(alias, user.ID, val)
|
||||
} else {
|
||||
channel, member, err = services.GetAvailableChannelWithAlias(alias, user)
|
||||
channel, member, err = services.GetChannelIdentity(alias, user.ID)
|
||||
}
|
||||
|
||||
if err != nil {
|
||||
return fiber.NewError(fiber.StatusNotFound, err.Error())
|
||||
}
|
||||
@@ -128,16 +132,15 @@ func deleteMessageEvent(c *fiber.Ctx) error {
|
||||
var err error
|
||||
var channel models.Channel
|
||||
var member models.ChannelMember
|
||||
|
||||
if val, ok := c.Locals("realm").(models.Realm); ok {
|
||||
channel, member, err = services.GetAvailableChannelWithAlias(alias, user, val.ID)
|
||||
if err != nil {
|
||||
return fiber.NewError(fiber.StatusNotFound, err.Error())
|
||||
}
|
||||
channel, member, err = services.GetChannelIdentity(alias, user.ID, val)
|
||||
} else {
|
||||
channel, member, err = services.GetAvailableChannelWithAlias(alias, user)
|
||||
if err != nil {
|
||||
return fiber.NewError(fiber.StatusNotFound, err.Error())
|
||||
}
|
||||
channel, member, err = services.GetChannelIdentity(alias, user.ID)
|
||||
}
|
||||
|
||||
if err != nil {
|
||||
return fiber.NewError(fiber.StatusNotFound, err.Error())
|
||||
}
|
||||
|
||||
var event models.Event
|
||||
|
Reference in New Issue
Block a user