Sha256: fd5e9b5d84e011bfc258c04eedd49bdfd3f8d2bfb9dda398a53a8ef90a798438
Contents?: true
Size: 1.81 KB
Versions: 2
Compression:
Stored size: 1.81 KB
Contents
class Eco::API::UseCases::OozeSamples::OozeUpdateCase < Eco::API::Common::Loaders::UseCase name "single-ooze-case" type :other attr_reader :session, :options, :usecase SAVE_PATCH = "ooze_patch_update.json" def main(session, options, usecase) @session = session; @options = options; @usecase = usecase yield end_script! end private def end_script! exit_if_no_changes! backup_patch! launch_request unless options[:simulate] exit(0) end def ooze_id options.dig(:source, :ooze_id) end def ooze @ooze ||= apiv2.pages.get(ooze_id).tap do |ooze| if ooze logger.info("Got ooze '#{ooze_id}': '#{ooze.name}'") else logger.error("Could not get ooze '#{ooze_id}'") exit(1) end end end def launch_request prompt_to_confirm! apiv2.pages.update(ooze).tap do |response| if response.success? logger.info("All went OK") else logger.error(response.body) end end end def exit_if_no_changes! unless changes = !!patch_doc["page"] logger.warn "No Changes!!" exit(0) end end def apiv2 @apiv2 ||= session.api(version: :oozes) end def patch_doc(renew: false) return @patch_doc if @patch_doc && !renew @patch_doc = apiv2.pages.get_body(ooze) end def backup_patch! # store the request File.open(SAVE_PATCH, "w") do |file| #file << (patch_doc || {}).to_json file << JSON.pretty_generate(patch_doc || {}) end puts "Saved patch at: #{File.expand_path(SAVE_PATCH)}" end def logger session.logger end def prompt_to_confirm! print "\nDo you want to proceed (y/N)? " exit(1) unless $stdin.gets.chomp.to_s.downcase == "y" end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
eco-helpers-2.0.2 | lib/eco/api/usecases/ooze_samples/ooze_update_case.rb |
eco-helpers-1.5.15 | lib/eco/api/usecases/ooze_samples/ooze_update_case.rb |