35 lines
870 B
Ruby
35 lines
870 B
Ruby
|
# frozen_string_literal: true
|
||
|
|
||
|
require "discourse_dev/record"
|
||
|
require "faker"
|
||
|
|
||
|
module DiscourseDev
|
||
|
class Message < Record
|
||
|
def initialize(channel_id: nil, count: nil, ignore_current_count: false)
|
||
|
@channel_id = channel_id
|
||
|
@ignore_current_count = ignore_current_count
|
||
|
super(::Chat::Message, count&.to_i || 200)
|
||
|
end
|
||
|
|
||
|
def data
|
||
|
if @channel_id
|
||
|
channel = ::Chat::Channel.find(@channel_id)
|
||
|
else
|
||
|
channel = ::Chat::Channel.where(chatable_type: "Category").order("RANDOM()").first
|
||
|
end
|
||
|
|
||
|
return if !channel
|
||
|
|
||
|
membership =
|
||
|
::Chat::UserChatChannelMembership.where(chat_channel: channel).order("RANDOM()").first
|
||
|
user = membership.user
|
||
|
|
||
|
{ user: user, content: Faker::Lorem.paragraph, chat_channel: channel }
|
||
|
end
|
||
|
|
||
|
def create!
|
||
|
Chat::MessageCreator.create(data)
|
||
|
end
|
||
|
end
|
||
|
end
|