# encoding: ascii-8bit # Copyright 2024 OpenC3, Inc. # All Rights Reserved. # # This program is free software; you can modify and/or redistribute it # under the terms of the GNU Affero General Public License # as published by the Free Software Foundation; version 3 with # attribution addendums as found in the LICENSE.txt # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU Affero General Public License for more details. # # This file may also be used under the terms of a commercial license # if purchased from OpenC3, Inc. module OpenC3 module Script private def critical_cmd_status(uuid, scope: $openc3_scope) begin endpoint = "/openc3-api/criticalcmd/status/#{uuid}" response = $api_server.request('get', endpoint, scope: scope) if response.nil? || response.status != 200 raise "Unexpected response to critical_cmd_status: #{response.inspect}" end result = JSON.parse(response.body) return result['status'] rescue => error raise "critical_cmd_status failed due to #{error.formatted}" end end def critical_cmd_approve(uuid, scope: $openc3_scope) begin endpoint = "/openc3-api/criticalcmd/approve/#{uuid}" response = $api_server.request('post', endpoint, :json => true, scope: scope) if response.nil? || response.status != 200 if response parsed = JSON.parse(response.body) raise "critical_cmd_approve error: #{parsed['error']}" else raise "critical_cmd_approve failed" end end return rescue => error raise "critical_cmd_approve failed due to #{error.formatted}" end end def critical_cmd_reject(uuid, scope: $openc3_scope) begin endpoint = "/openc3-api/criticalcmd/reject/#{uuid}" response = $api_server.request('post', endpoint, :json => true, scope: scope) if response.nil? || response.status != 200 if response parsed = JSON.parse(response.body) raise "critical_cmd_reject error: #{parsed['error']}" else raise "critical_cmd_reject failed" end end return rescue => error raise "critical_cmd_reject failed due to #{error.formatted}" end end def critical_cmd_can_approve(uuid, scope: $openc3_scope) begin endpoint = "/openc3-api/criticalcmd/canapprove/#{uuid}" response = $api_server.request('get', endpoint, scope: scope) if response.nil? || response.status != 200 raise "Unexpected response to critical_cmd_can_approve: #{response.inspect}" end result = JSON.parse(response.body) if result['status'] == 'ok' return true else return false end rescue => error raise "critical_cmd_can_approve failed due to #{error.formatted}" end end end end