# Knackhq::Client [![Gem Version](https://badge.fury.io/rb/knackhq-client.svg)](http://badge.fury.io/rb/knackhq-client) [![Build Status](https://travis-ci.org/westernmilling/knackhq-client.svg?branch=master)](https://travis-ci.org/westernmilling/knackhq-client) [![Dependency Status](https://gemnasium.com/westernmilling/knackhq-client.svg)](https://gemnasium.com/westernmilling/knackhq-client) [![Code Climate](https://codeclimate.com/github/westernmilling/knackhq-client/badges/gpa.svg)](https://codeclimate.com/github/westernmilling/knackhq-client) ## Installation Add this line to your application's Gemfile: ```ruby gem 'knackhq-client' ``` And then execute: $ bundle Or install it yourself as: $ gem install knackhq-client ## Usage ```Ruby api = Knackhq::Client.new('knack-api-url', x_knack_application_id, x_knack_rest_api_key) #GET all objects in api. api.objects #Output: [{:name=>"Foo", :key=>"object_1"} {:name=>"Bar", :key=>"object_2"}] #GET object_1 fields api.fields('object_1') #Output: [{:label=>"Number", :key=>"field_1", :type=>"float", :required=>false, :field_type=>"number"}, {:label=>"Last Date", :key=>"field_12", :type=>"datetime", :required=>false, :field_type=>"date_time"}] #GET object_1 records api.records('object_1') #Output: {:total_pages=>2, :current_page=>1, :total_records=>28, :records=>[{:id=>"23456", :account_status=>"active", :approval_status=>"approved", :profile_keys=>"Bar", :profile_keys_raw=>[{:id=>"12345", :identifier=>"Bar"}], :field_32=>"First Name", :field_32_raw=>{:last=>"Last", :first=>"First"}, :field_33=>"flast@example.com", :field_33_raw=>{:email=>"flast@example.com"}, :field_34=>"*********", :field_34_raw=>"**********", :field_188=>"Bar", :field_188_raw=>[{:id=>"23456", :identifier=>"Bar"}]}]} #GET object_1 api.object('object_1') #Output {:id=>"34567", :default=>"", :key=>"field_1", :name=>"Foo", :rules=>[], :conditional=>false, :user=>false, :unique=>true, :required=>true, :immutable=>false, :type=>"short_text"} #PUT object_1 record #Knackhq ID is 12345 api.update_record('object_1', '12345', { field_name: value }.to_json) #Output: true/false ``` ## Contributing 1. Fork it ( https://github.com/[my-github-username]/knackhq-client/fork ) 2. Create your feature branch (`git checkout -b my-new-feature`) 3. Commit your changes (`git commit -am 'Add some feature'`) 4. Push to the branch (`git push origin my-new-feature`) 5. Create a new Pull Request