Add timeline read markers API (#11762)

Fix #4093
This commit is contained in:
Eugen Rochko
2019-09-06 13:55:51 +02:00
committed by GitHub
parent cf643d0060
commit e445a8af64
12 changed files with 219 additions and 2 deletions

23
app/models/marker.rb Normal file
View File

@ -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

View File

@ -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? }