forgeplus/app/models/mirror.rb

38 lines
1.0 KiB
Ruby
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# == Schema Information
#
# Table name: mirrors
#
# id :integer not null, primary key
# repo_id :integer
# status :integer default("0"), not null
# interval :integer
# next_update_time :datetime
# created_at :datetime not null
# updated_at :datetime not null
# sync_num :integer default("1")
#
class Mirror < ApplicationRecord
# 0 - succeeded, 1 - waiting, 2 - failed
# 0: 同步镜像成功1: 正在同步镜像2: 同步失败; 默认值为0
enum status: { succeeded: 0, waiting: 1, failed: 2 }
# after_update :websocket_boardcast, if: :saved_change_to_status?
belongs_to :repository, foreign_key: :repo_id
def set_status!(status=Mirror.statuses[:succeeded])
update_column(:status, status)
end
def numerical_for_status
self.class.name.constantize.statuses["#{self.status}"]
end
private
def websocket_boardcast
BroadcastMirrorRepoMsgJob.perform_later(self.repository.id)
end
end