{"action":"created","issue":{"url":"https://api.github.com/repos/ets-berkeley-edu/calcentral/issues/4115","labels_url":"https://api.github.com/repos/ets-berkeley-edu/calcentral/issues/4115/labels{/name}","comments_url":"https://api.github.com/repos/ets-berkeley-edu/calcentral/issues/4115/comments","events_url":"https://api.github.com/repos/ets-berkeley-edu/calcentral/issues/4115/events","html_url":"https://github.com/ets-berkeley-edu/calcentral/pull/4115","id":102471729,"number":4115,"title":"CLC-5645 OEC scripts: Courses import task","user":{"login":"paulkerschen","id":2413467,"avatar_url":"https://avatars.githubusercontent.com/u/2413467?v=3","gravatar_id":"","url":"https://api.github.com/users/paulkerschen","html_url":"https://github.com/paulkerschen","followers_url":"https://api.github.com/users/paulkerschen/followers","following_url":"https://api.github.com/users/paulkerschen/following{/other_user}","gists_url":"https://api.github.com/users/paulkerschen/gists{/gist_id}","starred_url":"https://api.github.com/users/paulkerschen/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/paulkerschen/subscriptions","organizations_url":"https://api.github.com/users/paulkerschen/orgs","repos_url":"https://api.github.com/users/paulkerschen/repos","events_url":"https://api.github.com/users/paulkerschen/events{/privacy}","received_events_url":"https://api.github.com/users/paulkerschen/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":1,"created_at":"2015-08-21T22:10:43Z","updated_at":"2015-08-21T22:52:12Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/ets-berkeley-edu/calcentral/pulls/4115","html_url":"https://github.com/ets-berkeley-edu/calcentral/pull/4115","diff_url":"https://github.com/ets-berkeley-edu/calcentral/pull/4115.diff","patch_url":"https://github.com/ets-berkeley-edu/calcentral/pull/4115.patch"},"body":"https://jira.ets.berkeley.edu/jira/browse/CLC-5603\r\nBamboo https://bamboo.ets.berkeley.edu/bamboo/browse/MYB-CPT140-7\r\n\r\nA lot of this code will look eerily familiar to those versed in the existing OEC scripts.\r\n\r\nAside from the new Drive-upload functionality, the biggest changes to the logic are:\r\n- Oec::CsvExport now wraps a Hash of rows; having lookup keys makes it easy to avoid duplicate insertions.\r\n- Fixture data for tests has been broken out of CSV into JSON files matching individual queries, which should make it easier to write follow-up specs more fully describing the expected output structure.\r\n- Queries and generated CSVs are no longer grouped by the \"dept_name\" portion of the course code, but by actual campus departments. The Oec::Queries class now takes as input the course-code-to-real-department mappings defined in Oec::CourseCode, and transforms them to SQL in its `depts_clause` method.\r\n- Term and department information no longer comes from YAML settings. Terms are specified in arguments and the departments list comes out of Postgres (with department-filtering arguments to be enabled in a follow-up)."},"comment":{"url":"https://api.github.com/repos/ets-berkeley-edu/calcentral/issues/comments/133582631","html_url":"https://github.com/ets-berkeley-edu/calcentral/pull/4115#issuecomment-133582631","issue_url":"https://api.github.com/repos/ets-berkeley-edu/calcentral/issues/4115","id":133582631,"user":{"login":"johncrossman","id":7606442,"avatar_url":"https://avatars.githubusercontent.com/u/7606442?v=3","gravatar_id":"","url":"https://api.github.com/users/johncrossman","html_url":"https://github.com/johncrossman","followers_url":"https://api.github.com/users/johncrossman/followers","following_url":"https://api.github.com/users/johncrossman/following{/other_user}","gists_url":"https://api.github.com/users/johncrossman/gists{/gist_id}","starred_url":"https://api.github.com/users/johncrossman/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/johncrossman/subscriptions","organizations_url":"https://api.github.com/users/johncrossman/orgs","repos_url":"https://api.github.com/users/johncrossman/repos","events_url":"https://api.github.com/users/johncrossman/events{/privacy}","received_events_url":"https://api.github.com/users/johncrossman/received_events","type":"User","site_admin":false},"created_at":"2015-08-21T22:52:12Z","updated_at":"2015-08-21T22:52:12Z","body":"This looks nice 'n clean to me. I posted a couple minor questions."}}