{"action":"created","comment":{"url":"https://api.github.com/repos/ets-berkeley-edu/calcentral/pulls/comments/103539463","pull_request_review_id":24329275,"id":103539463,"diff_hunk":"@@ -0,0 +1,18 @@\n+module Notifications\n+  class SisExpirySingleStudentProvider\n+    include ClassLogger\n+\n+    # This class is deprecated.  Eventually all event message payloads will be restructured to return a list of IDs, and\n+    # SisExpiryStudentProvider will be phased out in favor of SisExpiryStudentsProvider.\n+\n+    def get_uids(event)\n+      if (campus_solutions_id = event.try(:[], 'payload').try(:[], 'student').try(:[], 'StudentId'))\n+        uid = CalnetCrosswalk::ByCsId.new(user_id: campus_solutions_id).lookup_ldap_uid\n+        logger.error \"No UID found for Campus Solutions ID #{campus_solutions_id}\" unless uid\n+      else\n+        logger.error \"Could not parse Campus Solutions ID from event #{event}\"\n+      end\n+      uid\n+    end","path":"app/models/notifications/sis_expiry_single_student_provider.rb","position":16,"original_position":16,"commit_id":"193faac21e18f000b417249ec23d78f07506fb32","original_commit_id":"193faac21e18f000b417249ec23d78f07506fb32","user":{"login":"lyttam","id":12432859,"avatar_url":"https://avatars2.githubusercontent.com/u/12432859?v=3","gravatar_id":"","url":"https://api.github.com/users/lyttam","html_url":"https://github.com/lyttam","followers_url":"https://api.github.com/users/lyttam/followers","following_url":"https://api.github.com/users/lyttam/following{/other_user}","gists_url":"https://api.github.com/users/lyttam/gists{/gist_id}","starred_url":"https://api.github.com/users/lyttam/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/lyttam/subscriptions","organizations_url":"https://api.github.com/users/lyttam/orgs","repos_url":"https://api.github.com/users/lyttam/repos","events_url":"https://api.github.com/users/lyttam/events{/privacy}","received_events_url":"https://api.github.com/users/lyttam/received_events","type":"User","site_admin":false},"body":"@redconfetti Yes, it would be nice if the return type matched.  But then I'd have to update every `CampusSolutions::*Expiry` to accept an array... and I wanted to avoid touching those.  Presumably, `SisExpirySingleStudentProvider` will be going away after we coordinate with Tamer to get each of the event notifications refactored to always send an array.","created_at":"2017-02-28T19:59:18Z","updated_at":"2017-02-28T19:59:18Z","html_url":"https://github.com/ets-berkeley-edu/calcentral/pull/6456#discussion_r103539463","pull_request_url":"https://api.github.com/repos/ets-berkeley-edu/calcentral/pulls/6456","_links":{"self":{"href":"https://api.github.com/repos/ets-berkeley-edu/calcentral/pulls/comments/103539463"},"html":{"href":"https://github.com/ets-berkeley-edu/calcentral/pull/6456#discussion_r103539463"},"pull_request":{"href":"https://api.github.com/repos/ets-berkeley-edu/calcentral/pulls/6456"}}},"pull_request":{"url":"https://api.github.com/repos/ets-berkeley-edu/calcentral/pulls/6456","id":107677807,"html_url":"https://github.com/ets-berkeley-edu/calcentral/pull/6456","diff_url":"https://github.com/ets-berkeley-edu/calcentral/pull/6456.diff","patch_url":"https://github.com/ets-berkeley-edu/calcentral/pull/6456.patch","issue_url":"https://api.github.com/repos/ets-berkeley-edu/calcentral/issues/6456","number":6456,"state":"open","locked":false,"title":"SISRP-28700 - Adds expiry handler for undergrad Degree Progress","user":{"login":"lyttam","id":12432859,"avatar_url":"https://avatars2.githubusercontent.com/u/12432859?v=3","gravatar_id":"","url":"https://api.github.com/users/lyttam","html_url":"https://github.com/lyttam","followers_url":"https://api.github.com/users/lyttam/followers","following_url":"https://api.github.com/users/lyttam/following{/other_user}","gists_url":"https://api.github.com/users/lyttam/gists{/gist_id}","starred_url":"https://api.github.com/users/lyttam/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/lyttam/subscriptions","organizations_url":"https://api.github.com/users/lyttam/orgs","repos_url":"https://api.github.com/users/lyttam/repos","events_url":"https://api.github.com/users/lyttam/events{/privacy}","received_events_url":"https://api.github.com/users/lyttam/received_events","type":"User","site_admin":false},"body":"https://jira.berkeley.edu/browse/SISRP-28700\r\n\r\nThe Degree Progress card for undergrads gets its data from the Academic Progress Report.  Advisors want to be able to run the APR, which generates a new set of data, and see that data reflected in CalCentral right away rather than wait for the cache to expire.\r\n\r\nAn event will fire when the APR is run for a single student.  The event notification allows for an array of student IDs in case we want to have the event fire when the APR is run in batch (for many students).\r\n\r\nPayload for the event notification is detailed here:  https://docs.google.com/document/d/10uOE80vkeDXpf-7jv_I0vfnIlSpZUsUTvKIa1zLkZ1k/edit#heading=h.qa4txi13e9gh","created_at":"2017-02-23T17:54:24Z","updated_at":"2017-02-28T19:59:18Z","closed_at":null,"merged_at":null,"merge_commit_sha":"486c39097b6c878d63f79124d6557c349719a024","assignee":null,"assignees":[],"milestone":null,"commits_url":"https://api.github.com/repos/ets-berkeley-edu/calcentral/pulls/6456/commits","review_comments_url":"https://api.github.com/repos/ets-berkeley-edu/calcentral/pulls/6456/comments","review_comment_url":"https://api.github.com/repos/ets-berkeley-edu/calcentral/pulls/comments{/number}","comments_url":"https://api.github.com/repos/ets-berkeley-edu/calcentral/issues/6456/comments","statuses_url":"https://api.github.com/repos/ets-berkeley-edu/calcentral/statuses/193faac21e18f000b417249ec23d78f07506fb32","head":{"label":"lyttam:SISRP-28700","ref":"SISRP-28700","sha":"193faac21e18f000b417249ec23d78f07506fb32","user":{"login":"lyttam","id":12432859,"avatar_url":"https://avatars2.githubusercontent.com/u/12432859?v=3","gravatar_id":"","url":"https://api.github.com/users/lyttam","html_url":"https://github.com/lyttam","followers_url":"https://api.github.com/users/lyttam/followers","following_url":"https://api.github.com/users/lyttam/following{/other_user}","gists_url":"https://api.github.com/users/lyttam/gists{/gist_id}","starred_url":"https://api.github.com/users/lyttam/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/lyttam/subscriptions","organizations_url":"https://api.github.com/users/lyttam/orgs","repos_url":"https://api.github.com/users/lyttam/repos","events_url":"https://api.github.com/users/lyttam/events{/privacy}","received_events_url":"https://api.github.com/users/lyttam/received_events","type":"User","site_admin":false},"repo":{"id":66117337,"name":"calcentral","full_name":"lyttam/calcentral","owner":{"login":"lyttam","id":12432859,"avatar_url":"https://avatars2.githubusercontent.com/u/12432859?v=3","gravatar_id":"","url":"https://api.github.com/users/lyttam","html_url":"https://github.com/lyttam","followers_url":"https://api.github.com/users/lyttam/followers","following_url":"https://api.github.com/users/lyttam/following{/other_user}","gists_url":"https://api.github.com/users/lyttam/gists{/gist_id}","starred_url":"https://api.github.com/users/lyttam/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/lyttam/subscriptions","organizations_url":"https://api.github.com/users/lyttam/orgs","repos_url":"https://api.github.com/users/lyttam/repos","events_url":"https://api.github.com/users/lyttam/events{/privacy}","received_events_url":"https://api.github.com/users/lyttam/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/lyttam/calcentral","description":null,"fork":true,"url":"https://api.github.com/repos/lyttam/calcentral","forks_url":"https://api.github.com/repos/lyttam/calcentral/forks","keys_url":"https://api.github.com/repos/lyttam/calcentral/keys{/key_id}","collaborators_url":"https://api.github.com/repos/lyttam/calcentral/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/lyttam/calcentral/teams","hooks_url":"https://api.github.com/repos/lyttam/calcentral/hooks","issue_events_url":"https://api.github.com/repos/lyttam/calcentral/issues/events{/number}","events_url":"https://api.github.com/repos/lyttam/calcentral/events","assignees_url":"https://api.github.com/repos/lyttam/calcentral/assignees{/user}","branches_url":"https://api.github.com/repos/lyttam/calcentral/branches{/branch}","tags_url":"https://api.github.com/repos/lyttam/calcentral/tags","blobs_url":"https://api.github.com/repos/lyttam/calcentral/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/lyttam/calcentral/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/lyttam/calcentral/git/refs{/sha}","trees_url":"https://api.github.com/repos/lyttam/calcentral/git/trees{/sha}","statuses_url":"https://api.github.com/repos/lyttam/calcentral/statuses/{sha}","languages_url":"https://api.github.com/repos/lyttam/calcentral/languages","stargazers_url":"https://api.github.com/repos/lyttam/calcentral/stargazers","contributors_url":"https://api.github.com/repos/lyttam/calcentral/contributors","subscribers_url":"https://api.github.com/repos/lyttam/calcentral/subscribers","subscription_url":"https://api.github.com/repos/lyttam/calcentral/subscription","commits_url":"https://api.github.com/repos/lyttam/calcentral/commits{/sha}","git_commits_url":"https://api.github.com/repos/lyttam/calcentral/git/commits{/sha}","comments_url":"https://api.github.com/repos/lyttam/calcentral/comments{/number}","issue_comment_url":"https://api.github.com/repos/lyttam/calcentral/issues/comments{/number}","contents_url":"https://api.github.com/repos/lyttam/calcentral/contents/{+path}","compare_url":"https://api.github.com/repos/lyttam/calcentral/compare/{base}...{head}","merges_url":"https://api.github.com/repos/lyttam/calcentral/merges","archive_url":"https://api.github.com/repos/lyttam/calcentral/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/lyttam/calcentral/downloads","issues_url":"https://api.github.com/repos/lyttam/calcentral/issues{/number}","pulls_url":"https://api.github.com/repos/lyttam/calcentral/pulls{/number}","milestones_url":"https://api.github.com/repos/lyttam/calcentral/milestones{/number}","notifications_url":"https://api.github.com/repos/lyttam/calcentral/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/lyttam/calcentral/labels{/name}","releases_url":"https://api.github.com/repos/lyttam/calcentral/releases{/id}","deployments_url":"https://api.github.com/repos/lyttam/calcentral/deployments","created_at":"2016-08-19T23:03:32Z","updated_at":"2016-08-19T23:06:48Z","pushed_at":"2017-02-27T19:59:55Z","git_url":"git://github.com/lyttam/calcentral.git","ssh_url":"git@github.com:lyttam/calcentral.git","clone_url":"https://github.com/lyttam/calcentral.git","svn_url":"https://github.com/lyttam/calcentral","homepage":"https://calcentral.berkeley.edu","size":28053,"stargazers_count":0,"watchers_count":0,"language":"Ruby","has_issues":false,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"open_issues_count":0,"forks":0,"open_issues":0,"watchers":0,"default_branch":"master"}},"base":{"label":"ets-berkeley-edu:master","ref":"master","sha":"55d258f09152fcd450b0abac7fb5be30f3fe4179","user":{"login":"ets-berkeley-edu","id":283538,"avatar_url":"https://avatars2.githubusercontent.com/u/283538?v=3","gravatar_id":"","url":"https://api.github.com/users/ets-berkeley-edu","html_url":"https://github.com/ets-berkeley-edu","followers_url":"https://api.github.com/users/ets-berkeley-edu/followers","following_url":"https://api.github.com/users/ets-berkeley-edu/following{/other_user}","gists_url":"https://api.github.com/users/ets-berkeley-edu/gists{/gist_id}","starred_url":"https://api.github.com/users/ets-berkeley-edu/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ets-berkeley-edu/subscriptions","organizations_url":"https://api.github.com/users/ets-berkeley-edu/orgs","repos_url":"https://api.github.com/users/ets-berkeley-edu/repos","events_url":"https://api.github.com/users/ets-berkeley-edu/events{/privacy}","received_events_url":"https://api.github.com/users/ets-berkeley-edu/received_events","type":"Organization","site_admin":false},"repo":{"id":5483921,"name":"calcentral","full_name":"ets-berkeley-edu/calcentral","owner":{"login":"ets-berkeley-edu","id":283538,"avatar_url":"https://avatars2.githubusercontent.com/u/283538?v=3","gravatar_id":"","url":"https://api.github.com/users/ets-berkeley-edu","html_url":"https://github.com/ets-berkeley-edu","followers_url":"https://api.github.com/users/ets-berkeley-edu/followers","following_url":"https://api.github.com/users/ets-berkeley-edu/following{/other_user}","gists_url":"https://api.github.com/users/ets-berkeley-edu/gists{/gist_id}","starred_url":"https://api.github.com/users/ets-berkeley-edu/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ets-berkeley-edu/subscriptions","organizations_url":"https://api.github.com/users/ets-berkeley-edu/orgs","repos_url":"https://api.github.com/users/ets-berkeley-edu/repos","events_url":"https://api.github.com/users/ets-berkeley-edu/events{/privacy}","received_events_url":"https://api.github.com/users/ets-berkeley-edu/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/ets-berkeley-edu/calcentral","description":null,"fork":false,"url":"https://api.github.com/repos/ets-berkeley-edu/calcentral","forks_url":"https://api.github.com/repos/ets-berkeley-edu/calcentral/forks","keys_url":"https://api.github.com/repos/ets-berkeley-edu/calcentral/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ets-berkeley-edu/calcentral/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ets-berkeley-edu/calcentral/teams","hooks_url":"https://api.github.com/repos/ets-berkeley-edu/calcentral/hooks","issue_events_url":"https://api.github.com/repos/ets-berkeley-edu/calcentral/issues/events{/number}","events_url":"https://api.github.com/repos/ets-berkeley-edu/calcentral/events","assignees_url":"https://api.github.com/repos/ets-berkeley-edu/calcentral/assignees{/user}","branches_url":"https://api.github.com/repos/ets-berkeley-edu/calcentral/branches{/branch}","tags_url":"https://api.github.com/repos/ets-berkeley-edu/calcentral/tags","blobs_url":"https://api.github.com/repos/ets-berkeley-edu/calcentral/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ets-berkeley-edu/calcentral/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ets-berkeley-edu/calcentral/git/refs{/sha}","trees_url":"https://api.github.com/repos/ets-berkeley-edu/calcentral/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ets-berkeley-edu/calcentral/statuses/{sha}","languages_url":"https://api.github.com/repos/ets-berkeley-edu/calcentral/languages","stargazers_url":"https://api.github.com/repos/ets-berkeley-edu/calcentral/stargazers","contributors_url":"https://api.github.com/repos/ets-berkeley-edu/calcentral/contributors","subscribers_url":"https://api.github.com/repos/ets-berkeley-edu/calcentral/subscribers","subscription_url":"https://api.github.com/repos/ets-berkeley-edu/calcentral/subscription","commits_url":"https://api.github.com/repos/ets-berkeley-edu/calcentral/commits{/sha}","git_commits_url":"https://api.github.com/repos/ets-berkeley-edu/calcentral/git/commits{/sha}","comments_url":"https://api.github.com/repos/ets-berkeley-edu/calcentral/comments{/number}","issue_comment_url":"https://api.github.com/repos/ets-berkeley-edu/calcentral/issues/comments{/number}","contents_url":"https://api.github.com/repos/ets-berkeley-edu/calcentral/contents/{+path}","compare_url":"https://api.github.com/repos/ets-berkeley-edu/calcentral/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ets-berkeley-edu/calcentral/merges","archive_url":"https://api.github.com/repos/ets-berkeley-edu/calcentral/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ets-berkeley-edu/calcentral/downloads","issues_url":"https://api.github.com/repos/ets-berkeley-edu/calcentral/issues{/number}","pulls_url":"https://api.github.com/repos/ets-berkeley-edu/calcentral/pulls{/number}","milestones_url":"https://api.github.com/repos/ets-berkeley-edu/calcentral/milestones{/number}","notifications_url":"https://api.github.com/repos/ets-berkeley-edu/calcentral/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ets-berkeley-edu/calcentral/labels{/name}","releases_url":"https://api.github.com/repos/ets-berkeley-edu/calcentral/releases{/id}","deployments_url":"https://api.github.com/repos/ets-berkeley-edu/calcentral/deployments","created_at":"2012-08-20T16:45:39Z","updated_at":"2016-10-26T13:03:06Z","pushed_at":"2017-02-28T19:18:42Z","git_url":"git://github.com/ets-berkeley-edu/calcentral.git","ssh_url":"git@github.com:ets-berkeley-edu/calcentral.git","clone_url":"https://github.com/ets-berkeley-edu/calcentral.git","svn_url":"https://github.com/ets-berkeley-edu/calcentral","homepage":"https://calcentral.berkeley.edu","size":28199,"stargazers_count":67,"watchers_count":67,"language":"Ruby","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":66,"mirror_url":null,"open_issues_count":2,"forks":66,"open_issues":2,"watchers":67,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/ets-berkeley-edu/calcentral/pulls/6456"},"html":{"href":"https://github.com/ets-berkeley-edu/calcentral/pull/6456"},"issue":{"href":"https://api.github.com/repos/ets-berkeley-edu/calcentral/issues/6456"},"comments":{"href":"https://api.github.com/repos/ets-berkeley-edu/calcentral/issues/6456/comments"},"review_comments":{"href":"https://api.github.com/repos/ets-berkeley-edu/calcentral/pulls/6456/comments"},"review_comment":{"href":"https://api.github.com/repos/ets-berkeley-edu/calcentral/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/ets-berkeley-edu/calcentral/pulls/6456/commits"},"statuses":{"href":"https://api.github.com/repos/ets-berkeley-edu/calcentral/statuses/193faac21e18f000b417249ec23d78f07506fb32"}}}}
{"actor":{"display_login":"lyttam"}}