# frozen_string_literal: true require "value_semantics/monkey_patched" class Catapult value_semantics do user String token String secret String application_id String end def import(body) post( "phoneNumbers", body: { applicationId: application_id }.merge(body) ) end def post(path, body:, head: {}) EM::HttpRequest.new( mkurl(path), tls: { verify_peer: true } ).apost( head: catapult_headers.merge(head), body: body.to_json ) end def mkurl(path) base = "https://api.catapult.inetwork.com/v1/users/#{@user}/" return path if path.start_with?(base) "#{base}#{path}" end protected def catapult_headers { "Authorization" => [@token, @secret], "Content-Type" => "application/json" } end end CATAPULT = Catapult.new(**CONFIG[:catapult])