2020-08-20 06:10:17 +00:00
|
|
|
# frozen_string_literal: true
|
|
|
|
|
|
|
|
module ResourceEvents
|
|
|
|
class BaseChangeTimeboxService
|
2021-02-04 21:09:06 +00:00
|
|
|
attr_reader :resource, :user
|
2020-08-20 06:10:17 +00:00
|
|
|
|
2021-02-04 21:09:06 +00:00
|
|
|
def initialize(resource, user)
|
2020-08-20 06:10:17 +00:00
|
|
|
@resource = resource
|
|
|
|
@user = user
|
|
|
|
end
|
|
|
|
|
|
|
|
def execute
|
|
|
|
create_event
|
|
|
|
|
|
|
|
resource.expire_note_etag_cache
|
|
|
|
end
|
|
|
|
|
|
|
|
private
|
|
|
|
|
|
|
|
def create_event
|
|
|
|
raise NotImplementedError
|
|
|
|
end
|
|
|
|
|
|
|
|
def build_resource_args
|
2022-06-08 12:08:46 +00:00
|
|
|
key = resource.class.base_class.name.foreign_key
|
2020-08-20 06:10:17 +00:00
|
|
|
|
|
|
|
{
|
|
|
|
user_id: user.id,
|
2021-02-04 21:09:06 +00:00
|
|
|
created_at: resource.system_note_timestamp,
|
2020-08-20 06:10:17 +00:00
|
|
|
key => resource.id
|
|
|
|
}
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|