Kurki
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
- Fork it ( https://github.com/coolnesss/kurki/fork )
- Create your feature branch (
git checkout -b my-new-feature
) - Commit your changes (
git commit -am 'Add some feature'
) - Push to the branch (
git push origin my-new-feature
) - Create a new Pull Request