Class: Flapjack::Data::UnscheduledMaintenance

Inherits:
Object
  • Object
show all
Includes:
ActiveModel::Serializers::JSON, Extensions::Associations, Extensions::ShortName, Swagger::Blocks, Zermelo::Records::RedisSortedSet
Defined in:
lib/flapjack/data/unscheduled_maintenance.rb

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.jsonapi_associationsObject



135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
# File 'lib/flapjack/data/unscheduled_maintenance.rb', line 135

def self.jsonapi_associations
  unless instance_variable_defined?('@jsonapi_associations')
    @jsonapi_associations ||= {
      :check => Flapjack::Gateways::JSONAPI::Data::JoinDescriptor.new(
        :get => true,
        :number => :singular, :link => true, :includable => true,
        :descriptions => {
          :get => "Returns the check an unscheduled maintenance period applies to."
        }
      )
    }
    populate_association_data(@jsonapi_associations)
  end
  @jsonapi_associations
end

.jsonapi_methodsObject



110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
# File 'lib/flapjack/data/unscheduled_maintenance.rb', line 110

def self.jsonapi_methods
  @jsonapi_methods ||= {
    :get => Flapjack::Gateways::JSONAPI::Data::MethodDescriptor.new(
      :attributes => [:start_time, :end_time, :summary],
      :descriptions => {
        :singular => "Get data for an un scheduled maintenance period.",
        :multiple => "Get data for multiple unscheduled maintenance periods."
      }
    ),
    :patch => Flapjack::Gateways::JSONAPI::Data::MethodDescriptor.new(
      :attributes => [:start_time, :end_time, :summary],
      :descriptions => {
        :singular => "Update data for an unscheduled maintenance period.",
        :multiple => "Update data for unscheduled maintenance periods.",
      }
    ),
    :delete => Flapjack::Gateways::JSONAPI::Data::MethodDescriptor.new(
      :descriptions => {
        :singular => "Delete an scheduled maintenance period.",
        :multiple => "Delete unscheduled maintenance periods."
      }
    )
  }
end

.swagger_included_classesObject



96
97
98
99
100
101
102
103
104
105
106
107
108
# File 'lib/flapjack/data/unscheduled_maintenance.rb', line 96

def self.swagger_included_classes
  # hack -- hardcoding for now
  [
    Flapjack::Data::Check,
    Flapjack::Data::Contact,
    Flapjack::Data::Medium,
    Flapjack::Data::Rule,
    Flapjack::Data::ScheduledMaintenance,
    Flapjack::Data::State,
    Flapjack::Data::Tag,
    Flapjack::Data::UnscheduledMaintenance
  ]
end

Instance Method Details

#durationObject



46
47
48
# File 'lib/flapjack/data/unscheduled_maintenance.rb', line 46

def duration
  self.end_time - self.start_time
end