discourse/app/models/draftable_list.rb
Guo Xiang Tan b979579c1b
DEV: Refactor draft attributes for CategoryList and TopicList.
Avoid repeating the same logic in a bunch of places which will allow us
to make changes to the draft attributes easier in the future.
2020-07-24 10:11:30 +08:00

34 lines
572 B
Ruby

# frozen_string_literal: true
class DraftableList
include ActiveModel::Serialization
def initialize(user)
@current_user = user
end
def draft_key
@draft_key || Draft::NEW_TOPIC
end
def draft_sequence
@draft_sequence || DraftSequence.current(@current_user, draft_key)
end
def draft
@draft || Draft.get(@current_user, draft_key, draft_sequence) if @current_user
end
def draft_key=(key)
@draft_key = key
end
def draft_sequence=(sequence)
@draft_sequence = sequence
end
def draft=(draft)
@draft = draft
end
end