{"action":"created","issue":{"url":"https://api.github.com/repos/exercism/exercism.io/issues/3188","repository_url":"https://api.github.com/repos/exercism/exercism.io","labels_url":"https://api.github.com/repos/exercism/exercism.io/issues/3188/labels{/name}","comments_url":"https://api.github.com/repos/exercism/exercism.io/issues/3188/comments","events_url":"https://api.github.com/repos/exercism/exercism.io/issues/3188/events","html_url":"https://github.com/exercism/exercism.io/pull/3188","id":184406076,"number":3188,"title":"Remove Xapi calls from Iterations Route","user":{"login":"nickborromeo","id":1518902,"avatar_url":"https://avatars.githubusercontent.com/u/1518902?v=3","gravatar_id":"","url":"https://api.github.com/users/nickborromeo","html_url":"https://github.com/nickborromeo","followers_url":"https://api.github.com/users/nickborromeo/followers","following_url":"https://api.github.com/users/nickborromeo/following{/other_user}","gists_url":"https://api.github.com/users/nickborromeo/gists{/gist_id}","starred_url":"https://api.github.com/users/nickborromeo/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/nickborromeo/subscriptions","organizations_url":"https://api.github.com/users/nickborromeo/orgs","repos_url":"https://api.github.com/users/nickborromeo/repos","events_url":"https://api.github.com/users/nickborromeo/events{/privacy}","received_events_url":"https://api.github.com/users/nickborromeo/received_events","type":"User","site_admin":false},"labels":[{"id":475900886,"url":"https://api.github.com/repos/exercism/exercism.io/labels/changes%20requested","name":"changes requested","color":"cccccc","default":false}],"state":"closed","locked":false,"assignee":{"login":"kytrinyx","id":276834,"avatar_url":"https://avatars.githubusercontent.com/u/276834?v=3","gravatar_id":"","url":"https://api.github.com/users/kytrinyx","html_url":"https://github.com/kytrinyx","followers_url":"https://api.github.com/users/kytrinyx/followers","following_url":"https://api.github.com/users/kytrinyx/following{/other_user}","gists_url":"https://api.github.com/users/kytrinyx/gists{/gist_id}","starred_url":"https://api.github.com/users/kytrinyx/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/kytrinyx/subscriptions","organizations_url":"https://api.github.com/users/kytrinyx/orgs","repos_url":"https://api.github.com/users/kytrinyx/repos","events_url":"https://api.github.com/users/kytrinyx/events{/privacy}","received_events_url":"https://api.github.com/users/kytrinyx/received_events","type":"User","site_admin":true},"assignees":[{"login":"kytrinyx","id":276834,"avatar_url":"https://avatars.githubusercontent.com/u/276834?v=3","gravatar_id":"","url":"https://api.github.com/users/kytrinyx","html_url":"https://github.com/kytrinyx","followers_url":"https://api.github.com/users/kytrinyx/followers","following_url":"https://api.github.com/users/kytrinyx/following{/other_user}","gists_url":"https://api.github.com/users/kytrinyx/gists{/gist_id}","starred_url":"https://api.github.com/users/kytrinyx/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/kytrinyx/subscriptions","organizations_url":"https://api.github.com/users/kytrinyx/orgs","repos_url":"https://api.github.com/users/kytrinyx/repos","events_url":"https://api.github.com/users/kytrinyx/events{/privacy}","received_events_url":"https://api.github.com/users/kytrinyx/received_events","type":"User","site_admin":true}],"milestone":null,"comments":5,"created_at":"2016-10-21T06:03:50Z","updated_at":"2016-11-24T18:44:44Z","closed_at":"2016-11-24T18:44:44Z","pull_request":{"url":"https://api.github.com/repos/exercism/exercism.io/pulls/3188","html_url":"https://github.com/exercism/exercism.io/pull/3188","diff_url":"https://github.com/exercism/exercism.io/pull/3188.diff","patch_url":"https://github.com/exercism/exercism.io/pull/3188.patch"},"body":"Helps with https://github.com/exercism/exercism.io/pull/3164\n\nThis removes the `Xapi` call in the iterations route to check if a language and a slug exists. This now uses the Trackler gem to first check the language track and then derive the problems of the track.\n\nInstead of passing the language and slug to the `Xapi.exists?` method it now checks if the slug is in the track's problems. An issue that I think that can arise here is that it will throw an exception when the language passed does not exist and it will throw a `nil:NilClass` error when trying to access problems of a non existent track.\n\nOne way to maybe fix this is to implement an `exists?` method in the `Trackler` module similar to `Xapi` but uses Track and Problem modules.\n"},"comment":{"url":"https://api.github.com/repos/exercism/exercism.io/issues/comments/262831056","html_url":"https://github.com/exercism/exercism.io/pull/3188#issuecomment-262831056","issue_url":"https://api.github.com/repos/exercism/exercism.io/issues/3188","id":262831056,"user":{"login":"kytrinyx","id":276834,"avatar_url":"https://avatars.githubusercontent.com/u/276834?v=3","gravatar_id":"","url":"https://api.github.com/users/kytrinyx","html_url":"https://github.com/kytrinyx","followers_url":"https://api.github.com/users/kytrinyx/followers","following_url":"https://api.github.com/users/kytrinyx/following{/other_user}","gists_url":"https://api.github.com/users/kytrinyx/gists{/gist_id}","starred_url":"https://api.github.com/users/kytrinyx/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/kytrinyx/subscriptions","organizations_url":"https://api.github.com/users/kytrinyx/orgs","repos_url":"https://api.github.com/users/kytrinyx/repos","events_url":"https://api.github.com/users/kytrinyx/events{/privacy}","received_events_url":"https://api.github.com/users/kytrinyx/received_events","type":"User","site_admin":true},"created_at":"2016-11-24T18:44:44Z","updated_at":"2016-11-24T18:44:44Z","body":"Edited locally and merged in 575e469f04869581087f9f8b3f74f21bcb13a6a1"}}
{"actor":{"display_login":"kytrinyx"}}