lib/fuelsdk.rb in fuelsdk-0.0.2 vs lib/fuelsdk.rb in fuelsdk-0.0.3

- old
+ new

@@ -12,331 +12,10 @@ require 'fuelsdk/client' require 'fuelsdk/objects' end =begin - class ET_Constructor - attr_accessor :status, :code, :message, :results, :request_id, :moreResults - - def initialize(response = nil, rest = false) - @results = [] - #if !response.nil? && !rest then - # @@body = response.body - - # if ((!response.soap_fault?) or (!response.http_error?)) then - # @code = response.http.code - # @status = true - # elsif (response.soap_fault?) then - # @code = response.http.code - # @message = @@body[:fault][:faultstring] - # @status = false - # elsif (response.http_error?) then - # @code = response.http.code - # @status = false - # end - #elsif - @code = response.code - @status = true - if @code != "200" then - @status = false - end - - begin - @results = JSON.parse(response.body) - rescue - @message = response.body - end - - end - end - end - - class ET_BaseObject - attr_accessor :authStub, :props - attr_reader :obj, :lastRequestID, :endpoint - - def initialize - @authStub = nil - @props = nil - @filter = nil - @lastRequestID = nil - @endpoint = nil - end - end - - class ET_GetSupportRest < ET_BaseObject - attr_reader :urlProps, :urlPropsRequired, :lastPageNumber - - def get(props = nil) - if props and props.is_a? Hash then - @props = props - end - - completeURL = @endpoint - additionalQS = {} - - if @props and @props.is_a? Hash then - @props.each do |k,v| - if @urlProps.include?(k) then - completeURL.sub!("{#{k}}", v) - else - additionalQS[k] = v - end - end - end - - @urlPropsRequired.each do |value| - if !@props || !@props.has_key?(value) then - raise "Unable to process request due to missing required prop: #{value}" - end - end - - @urlProps.each do |value| - completeURL.sub!("/{#{value}}", "") - end - - obj = ET_GetRest.new(@authStub, completeURL,additionalQS) - - if obj.results.has_key?('page') then - @lastPageNumber = obj.results['page'] - pageSize = obj.results['pageSize'] - if obj.results.has_key?('count') then - count = obj.results['count'] - elsif obj.results.has_key?('totalCount') then - count = obj.results['totalCount'] - end - - if !count.nil? && count > (@lastPageNumber * pageSize) then - obj.moreResults = true - end - end - return obj - end - - def getMoreResults() - if props and props.is_a? Hash then - @props = props - end - - originalPageValue = "1" - removePageFromProps = false - - if !@props.nil? && @props.has_key?('$page') then - originalPageValue = @props['page'] - else - removePageFromProps = true - end - - if @props.nil? - @props = {} - end - - @props['$page'] = @lastPageNumber + 1 - - obj = self.get - - if removePageFromProps then - @props.delete('$page') - else - @props['$page'] = originalPageValue - end - - return obj - end - end - - class ET_CUDSupportRest < ET_GetSupportRest - - def post() - completeURL = @endpoint - - if @props and @props.is_a? Hash then - @props.each do |k,v| - if @urlProps.include?(k) then - completeURL.sub!("{#{k}}", v) - end - end - end - - @urlPropsRequired.each do |value| - if !@props || !@props.has_key?(value) then - raise "Unable to process request due to missing required prop: #{value}" - end - end - - # Clean Optional Parameters from Endpoint URL first - @urlProps.each do |value| - completeURL.sub!("/{#{value}}", "") - end - - ET_PostRest.new(@authStub, completeURL, @props) - end - - def patch() - completeURL = @endpoint - # All URL Props are required when doing Patch - @urlProps.each do |value| - if !@props || !@props.has_key?(value) then - raise "Unable to process request due to missing required prop: #{value}" - end - end - - if @props and @props.is_a? Hash then - @props.each do |k,v| - if @urlProps.include?(k) then - completeURL.sub!("{#{k}}", v) - end - end - end - - obj = ET_PatchRest.new(@authStub, completeURL, @props) - end - - def delete() - completeURL = @endpoint - # All URL Props are required when doing Patch - @urlProps.each do |value| - if !@props || !@props.has_key?(value) then - raise "Unable to process request due to missing required prop: #{value}" - end - end - - if @props and @props.is_a? Hash then - @props.each do |k,v| - if @urlProps.include?(k) then - completeURL.sub!("{#{k}}", v) - end - end - end - - ET_DeleteRest.new(@authStub, completeURL) - end - - end - - - class ET_GetRest < ET_Constructor - def initialize(authStub, endpoint, qs = nil) - authStub.refreshToken - - if qs then - qs['access_token'] = authStub.authToken - else - qs = {"access_token" => authStub.authToken} - end - - uri = URI.parse(endpoint) - uri.query = URI.encode_www_form(qs) - http = Net::HTTP.new(uri.host, uri.port) - http.use_ssl = true - request = Net::HTTP::Get.new(uri.request_uri) - requestResponse = http.request(request) - - @moreResults = false - - obj = super(requestResponse, true) - return obj - end - end - - - class ET_ContinueRest < ET_Constructor - def initialize(authStub, endpoint, qs = nil) - authStub.refreshToken - - if qs then - qs['access_token'] = authStub.authToken - else - qs = {"access_token" => authStub.authToken} - end - - uri = URI.parse(endpoint) - uri.query = URI.encode_www_form(qs) - http = Net::HTTP.new(uri.host, uri.port) - http.use_ssl = true - request = Net::HTTP::Get.new(uri.request_uri) - requestResponse = http.request(request) - - @moreResults = false - - super(requestResponse, true) - end - end - - - class ET_PostRest < ET_Constructor - def initialize(authStub, endpoint, payload) - authStub.refreshToken - - qs = {"access_token" => authStub.authToken} - uri = URI.parse(endpoint) - uri.query = URI.encode_www_form(qs) - http = Net::HTTP.new(uri.host, uri.port) - http.use_ssl = true - request = Net::HTTP::Post.new(uri.request_uri) - request.body = payload.to_json - request.add_field "Content-Type", "application/json" - requestResponse = http.request(request) - - super(requestResponse, true) - - end - end - - class ET_PatchRest < ET_Constructor - def initialize(authStub, endpoint, payload) - authStub.refreshToken - - qs = {"access_token" => authStub.authToken} - uri = URI.parse(endpoint) - uri.query = URI.encode_www_form(qs) - http = Net::HTTP.new(uri.host, uri.port) - http.use_ssl = true - request = Net::HTTP::Patch.new(uri.request_uri) - request.body = payload.to_json - request.add_field "Content-Type", "application/json" - requestResponse = http.request(request) - super(requestResponse, true) - - end - end - - class ET_DeleteRest < ET_Constructor - def initialize(authStub, endpoint) - authStub.refreshToken - - qs = {"access_token" => authStub.authToken} - - uri = URI.parse(endpoint) - uri.query = URI.encode_www_form(qs) - http = Net::HTTP.new(uri.host, uri.port) - http.use_ssl = true - request = Net::HTTP::Delete.new(uri.request_uri) - requestResponse = http.request(request) - super(requestResponse, true) - - end - end - - class ET_Campaign < ET_CUDSupportRest - def initialize - super - @endpoint = 'https://www.exacttargetapis.com/hub/v1/campaigns/{id}' - @urlProps = ["id"] - @urlPropsRequired = [] - end - - class Asset < ET_CUDSupportRest - def initialize - super - @endpoint = 'https://www.exacttargetapis.com/hub/v1/campaigns/{id}/assets/{assetId}' - @urlProps = ["id", "assetId"] - @urlPropsRequired = ["id"] - end - end - end - class ET_DataExtension < ET_CUDSupport attr_accessor :columns def initialize super @@ -552,21 +231,8 @@ raise 'Unable to process DataExtension::Row request due to unable to find DataExtension based on CustomerKey' end end end end - end - end - - class ET_TriggeredSend < ET_CUDSupport - attr_accessor :subscribers - def initialize - super - @obj = 'TriggeredSendDefinition' - end - - def send - @tscall = {"TriggeredSendDefinition" => @props, "Subscribers" => @subscribers} - ET_Post.new(@authStub, "TriggeredSend", @tscall) end end =end