diff options
author | Eugen Rochko <eugen@zeonfederated.com> | 2019-09-06 13:55:51 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-09-06 13:55:51 +0200 |
commit | e445a8af64908b2bdb721bec74c113e8258a129b (patch) | |
tree | 028c911a65731dba93ebf048a9750811a2a95091 /app/models | |
parent | cf643d0060590948f8fb97ab9bd2045f3649b056 (diff) |
Add timeline read markers API (#11762)
Fix #4093
Diffstat (limited to 'app/models')
-rw-r--r-- | app/models/marker.rb | 23 | ||||
-rw-r--r-- | app/models/user.rb | 1 |
2 files changed, 24 insertions, 0 deletions
diff --git a/app/models/marker.rb b/app/models/marker.rb new file mode 100644 index 000000000..a5bd2176a --- /dev/null +++ b/app/models/marker.rb @@ -0,0 +1,23 @@ +# frozen_string_literal: true + +# == Schema Information +# +# Table name: markers +# +# id :bigint(8) not null, primary key +# user_id :bigint(8) +# timeline :string default(""), not null +# last_read_id :bigint(8) default(0), not null +# lock_version :integer default(0), not null +# created_at :datetime not null +# updated_at :datetime not null +# + +class Marker < ApplicationRecord + TIMELINES = %w(home notifications).freeze + + belongs_to :user + + validates :timeline, :last_read_id, presence: true + validates :timeline, inclusion: { in: TIMELINES } +end diff --git a/app/models/user.rb b/app/models/user.rb index a4a20d975..95f1d8fc5 100644 --- a/app/models/user.rb +++ b/app/models/user.rb @@ -74,6 +74,7 @@ class User < ApplicationRecord has_many :applications, class_name: 'Doorkeeper::Application', as: :owner has_many :backups, inverse_of: :user has_many :invites, inverse_of: :user + has_many :markers, inverse_of: :user, dependent: :destroy has_one :invite_request, class_name: 'UserInviteRequest', inverse_of: :user, dependent: :destroy accepts_nested_attributes_for :invite_request, reject_if: ->(attributes) { attributes['text'].blank? } |