Kurki Build Status Code Climate Test Coverage Gem Version

Helsinki University Kurki system API Rubygem.

Currently supports GET requests to:

  • Fetch all courses
  • Fetch a single course based on ID
  • Fetch all students of a single course

And POST requests to:

  • Add students to a course
  • Add grades to students of a course

Requires API token set in environment variable named KURKI_TOKEN and the API URL set in KURKI_URL.

Installation

Add this line to your application's Gemfile:

gem 'kurki'

And then execute:

$ bundle

Or install it yourself as:

$ gem install kurki

Usage

Command Line

$ kurki help

Ruby methods

GET methods

irb(main):002:0> Kurki.url = "http://localhost:1234"
=> "http://localhost:1234"
irb(main):003:0> Kurki.url
=> "http://localhost:1234/"
irb(main):002:0> Kurki.get_courses
=> [{"kurssikoodi"=>"581259", "lukuvuosi"=>2012, "lukukausi"=>"K", "tyyppi"=>"K", "tila"=>"J", "kurssi_nro"=>1, "nimi"=>"Ohjelmistotuotanto", "alkamis_pvm"=>"2012-03-12 00:00:00 +0300", "paattymis_pvm"=>"2016-04-30 00:00:00 +0300", "url"=>"localhost:1234/courses/581259.2012.K.K.1"}, {"kurssikoodi"=>"58131", "lukuvuosi"=>2010, "lukukausi"=>"K", "tyyppi"=>"K", "tila"=>"J", "kurssi_nro"=>1, "nimi"=>"Tietorakenteet", "alkamis_pvm"=>"2010-01-19 00:00:00 +0300", "paattymis_pvm"=>"2016-04-30 00:00:00 +0300", "url"=>"localhost:1234/courses/58131.2010.K.K.1"}, {"kurssikoodi"=>"58131", "lukuvuosi"=>2011, "lukukausi"=>"K", "tyyppi"=>"K", "tila"=>"J", "kurssi_nro"=>1, "nimi"=>"Tietorakenteet", "alkamis_pvm"=>"2011-01-17 00:00:00 +0300", "paattymis_pvm"=>"2016-04-30 00:00:00 +0300", "url"=>"localhost:1234/courses/58131.2011.K.K.1"}]
irb(main):003:0> Kurki.get_course("581259.2012.K.K.1")
=> {"kurssikoodi"=>"581259", "lukuvuosi"=>2012, "lukukausi"=>"K", "tyyppi"=>"K", "kurssi_nro"=>1, "alkamis_pvm"=>"2012-03-12 00:00:00 +0300", "paattymis_pvm"=>"2016-04-30 00:00:00 +0300", "omistaja"=>"LUUKKAINEN_M"}
irb(main):004:0> Kurki.get_students("581259.2012.K.K.1")
=> [{"arvosana"=>"3", "etunimi"=>"LASSE", "sukunimi"=>"TOIVONEN", "id"=>"012345678"}, {"arvosana"=>"5", "etunimi"=>"TERO V E", "sukunimi"=>"SANKARI", "id"=>"012435443"}]

POST methods

irb(main):008:0> Kurki.set_students("58131.2010.K.K.1", ["012345678"])
=>  {"success"=>[{"id"=>"012345678"}], "error"=>[]}
irb(main):006:0> Kurki.set_grades("58131.2011.K.K.1", {"013595141" => "5"})
=> {"success"=>[{"id"=>"013595141", "arvosana"=>"5"}], "error"=>[]}
pry(main)> Kurki.set_grade_from_csv("582368.2016.K.K.1", "./spec/fixtures/grades.csv")
=> {"success"=>
  [{"id"=>"014475359", "arvosana"=>"5"}, {"id"=>"014291915", "arvosana"=>"5"}],
 "error"=>
  [{"id"=>"123123123", "arvosana"=>"3"}, {"id"=>"123456789", "arvosana"=>"0"}]}

Contributing

  1. Fork it ( https://github.com/coolnesss/kurki/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