class Siigo::Tools

Public Instance Methods

get_page(resource_tag, token, page, page_size) click to toggle source
# File lib/siigo/tools.rb, line 9
def get_page(resource_tag, token, page, page_size)
    page_size = String(page_size)
    page = String(page)
    url = 'https://api.siigo.com/v1/' + resource_tag + '?page_size=' + page_size + '&page=' + page
    response = RestClient.get url, {:Authorization => token}
    return  JSON.parse(response.body)["results"]
end
get_size(resource_tag, token) click to toggle source
# File lib/siigo/tools.rb, line 3
def get_size(resource_tag, token)
    url = 'https://api.siigo.com/v1/' + resource_tag + '?page_size=100'
    response = RestClient.get url, {:Authorization => token}
    return JSON.parse(response.body)["pagination"]["total_results"]
end
write_resource_to_db(resources, i, resource_tag) click to toggle source
# File lib/siigo/tools.rb, line 17
def write_resource_to_db(resources, i, resource_tag)                      
    case resource_tag
    when 'invoices'
        if Invoice.all.find_by_id(resources[i]["id"]).nil?
            begin
                resource_i = Invoice.new(id: resources[i]["id"],
                                number: resources[i]["number"],
                                date: resources[i]["date"],
                                contact_id: resources[i]["customer"]["id"],
                                seller: resources[i]["seller"],
                                cost_center_id: resources[i]["cost_center"],
                                total: resources[i]["total"],
                                created_at: resources[i]["metadata"]["created"])
                resource_i.save!
                puts "Writing " + resource_tag.singularize + " " + String(i+1) + " of " + String(resources.count)
            rescue => e2
                puts "Enter in rescue Invoice"
                puts e2.response
            end
        else
            puts resource_tag.singularize + " " + String(resources[i]["id"]) + " was already in db"
        end
    when 'products'
        if Item.all.find_by_id(resources[i]["id"]).nil?
            begin 
                # TODO: review a better way to import this
                if resources[i]["taxes"].count == 1  
                    tax = resources[i]["taxes"][0]["id"]
                else
                    tax = nil # Nothing to reference
                end
                resource_i = Item.new(id: resources[i]["id"],
                                sku: resources[i]["code"],
                                name: resources[i]["name"],
                                account_group_id: resources[i]["account_group"]["id"],
                                product_type: resources[i]["type"],
                                tax_id: tax,
                                created_at: resources[i]["metadata"]["created"])
                resource_i.save!
                puts "Writing " + resource_tag.singularize + " " + String(i+1) + " of " + String(resources.count)
            rescue => e2
                puts "Enter in rescue Item"
                puts resources[i]
                puts e2.response
            end
        else
            puts resource_tag.singularize + " " + String(resources[i]["id"]) + " was already in db"
        end
    when 'customers'
 
        # id: resources[i]["id"],
        # identification: resources[i]["identification"],
        # name: resources[i]["name"],
        # created_at: resources[i]["metadata"]["created"])

    else
        puts "Error: Unknown resource!!"
    end
    
end