add /collections html view, dry up CollectionsController
[arvados.git] / app / models / collection.rb
index 84464e1d0248715e1c1c1a8d9456f8b8ce7ff7a5..6cbe330f3a80ed8de84eecac8bd2bb69abf05973 100644 (file)
@@ -1,2 +1,31 @@
 class Collection < ActiveRecord::Base
+  include AssignUuid
+  include KindAndEtag
+  include CommonApiTemplate
+
+  api_accessible :superuser, :extend => :common do |t|
+    t.add :locator
+    t.add :portable_data_hash
+    t.add :name
+    t.add :redundancy
+    t.add :redundancy_confirmed_by_client
+    t.add :redundancy_confirmed_at
+    t.add :redundancy_confirmed_as
+  end
+
+  def redundancy_status
+    if redundancy_confirmed_as.nil?
+      'unconfirmed'
+    elsif redundancy_confirmed_as < redundancy
+      'degraded'
+    else
+      if redundancy_confirmed_at.nil?
+        'unconfirmed'
+      elsif Time.now - redundancy_confirmed_at < 7.days
+        'OK'
+      else
+        'stale'
+      end
+    end
+  end
 end