{"action":"created","comment":{"url":"https://api.github.com/repos/adventurerscodex/adventurerscodex/pulls/comments/96928317","pull_request_review_id":17527367,"id":96928317,"diff_hunk":"@@ -131,6 +131,42 @@ PersistenceService.findBy = function(model, property, value) {\n };\n \n /**\n+ * Given a model class, return all of the stored instances that match a given\n+ * array of filter criteria.\n+ *\n+ * Parameters\n+ * ----------\n+ *\n+ * model: The prototype for the type of model that is being searched for.\n+ * properties: A static array of properties that the data object will be \n+ * compared against.\n+ *\n+ * Returns\n+ * -------\n+ *\n+ * A list of objects of the desired type, which match the list of criteria.\n+ *\n+ * Usage\n+ * -----\n+ * ```javascript\n+ *         var status = PersistenceService.findByListOfProperties(Status,\n+ *           [{'name': 'characterId', 'value': key},\n+ *           {'name': 'identifier', 'value': self.statusIdentifier}]);\n+ * ```\n+ */\n+PersistenceService.findByListOfProperties = function(model, properties) {\n+    return PersistenceService._findFiltered(model, function(element, idx) {\n+        var count = 0;\n+        properties.forEach(function(property, idx, _) {","path":"charactersheet/charactersheet/services/persistence_service.js","position":30,"original_position":30,"commit_id":"22a8a2075b0494c1de8f190570a18250944a1d93","original_commit_id":"22a8a2075b0494c1de8f190570a18250944a1d93","user":{"login":"tanyxp","id":7286387,"avatar_url":"https://avatars.githubusercontent.com/u/7286387?v=3","gravatar_id":"","url":"https://api.github.com/users/tanyxp","html_url":"https://github.com/tanyxp","followers_url":"https://api.github.com/users/tanyxp/followers","following_url":"https://api.github.com/users/tanyxp/following{/other_user}","gists_url":"https://api.github.com/users/tanyxp/gists{/gist_id}","starred_url":"https://api.github.com/users/tanyxp/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/tanyxp/subscriptions","organizations_url":"https://api.github.com/users/tanyxp/orgs","repos_url":"https://api.github.com/users/tanyxp/repos","events_url":"https://api.github.com/users/tanyxp/events{/privacy}","received_events_url":"https://api.github.com/users/tanyxp/received_events","type":"User","site_admin":false},"body":"Didn't know that was a thing. I'll update that. It's more robust.","created_at":"2017-01-19T18:46:04Z","updated_at":"2017-01-19T18:46:05Z","html_url":"https://github.com/adventurerscodex/adventurerscodex/pull/1152#discussion_r96928317","pull_request_url":"https://api.github.com/repos/adventurerscodex/adventurerscodex/pulls/1152","_links":{"self":{"href":"https://api.github.com/repos/adventurerscodex/adventurerscodex/pulls/comments/96928317"},"html":{"href":"https://github.com/adventurerscodex/adventurerscodex/pull/1152#discussion_r96928317"},"pull_request":{"href":"https://api.github.com/repos/adventurerscodex/adventurerscodex/pulls/1152"}}},"pull_request":{"url":"https://api.github.com/repos/adventurerscodex/adventurerscodex/pulls/1152","id":102293131,"html_url":"https://github.com/adventurerscodex/adventurerscodex/pull/1152","diff_url":"https://github.com/adventurerscodex/adventurerscodex/pull/1152.diff","patch_url":"https://github.com/adventurerscodex/adventurerscodex/pull/1152.patch","issue_url":"https://api.github.com/repos/adventurerscodex/adventurerscodex/issues/1152","number":1152,"state":"open","locked":false,"title":"Update ps queries","user":{"login":"tanyxp","id":7286387,"avatar_url":"https://avatars.githubusercontent.com/u/7286387?v=3","gravatar_id":"","url":"https://api.github.com/users/tanyxp","html_url":"https://github.com/tanyxp","followers_url":"https://api.github.com/users/tanyxp/followers","following_url":"https://api.github.com/users/tanyxp/following{/other_user}","gists_url":"https://api.github.com/users/tanyxp/gists{/gist_id}","starred_url":"https://api.github.com/users/tanyxp/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/tanyxp/subscriptions","organizations_url":"https://api.github.com/users/tanyxp/orgs","repos_url":"https://api.github.com/users/tanyxp/repos","events_url":"https://api.github.com/users/tanyxp/events{/privacy}","received_events_url":"https://api.github.com/users/tanyxp/received_events","type":"User","site_admin":false},"body":"Removed PS queries from all models, added new PS queries to VMs, fixed bug with status line, created new PS query for querying on more than one property.","created_at":"2017-01-19T15:54:10Z","updated_at":"2017-01-19T18:46:05Z","closed_at":null,"merged_at":null,"merge_commit_sha":"211e8e4802d134e63040faacab6fff39de6dd6d2","assignee":null,"assignees":[],"milestone":null,"commits_url":"https://api.github.com/repos/adventurerscodex/adventurerscodex/pulls/1152/commits","review_comments_url":"https://api.github.com/repos/adventurerscodex/adventurerscodex/pulls/1152/comments","review_comment_url":"https://api.github.com/repos/adventurerscodex/adventurerscodex/pulls/comments{/number}","comments_url":"https://api.github.com/repos/adventurerscodex/adventurerscodex/issues/1152/comments","statuses_url":"https://api.github.com/repos/adventurerscodex/adventurerscodex/statuses/22a8a2075b0494c1de8f190570a18250944a1d93","head":{"label":"tanyxp:updatePsQueries","ref":"updatePsQueries","sha":"22a8a2075b0494c1de8f190570a18250944a1d93","user":{"login":"tanyxp","id":7286387,"avatar_url":"https://avatars.githubusercontent.com/u/7286387?v=3","gravatar_id":"","url":"https://api.github.com/users/tanyxp","html_url":"https://github.com/tanyxp","followers_url":"https://api.github.com/users/tanyxp/followers","following_url":"https://api.github.com/users/tanyxp/following{/other_user}","gists_url":"https://api.github.com/users/tanyxp/gists{/gist_id}","starred_url":"https://api.github.com/users/tanyxp/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/tanyxp/subscriptions","organizations_url":"https://api.github.com/users/tanyxp/orgs","repos_url":"https://api.github.com/users/tanyxp/repos","events_url":"https://api.github.com/users/tanyxp/events{/privacy}","received_events_url":"https://api.github.com/users/tanyxp/received_events","type":"User","site_admin":false},"repo":{"id":41126775,"name":"charactersheet","full_name":"tanyxp/charactersheet","owner":{"login":"tanyxp","id":7286387,"avatar_url":"https://avatars.githubusercontent.com/u/7286387?v=3","gravatar_id":"","url":"https://api.github.com/users/tanyxp","html_url":"https://github.com/tanyxp","followers_url":"https://api.github.com/users/tanyxp/followers","following_url":"https://api.github.com/users/tanyxp/following{/other_user}","gists_url":"https://api.github.com/users/tanyxp/gists{/gist_id}","starred_url":"https://api.github.com/users/tanyxp/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/tanyxp/subscriptions","organizations_url":"https://api.github.com/users/tanyxp/orgs","repos_url":"https://api.github.com/users/tanyxp/repos","events_url":"https://api.github.com/users/tanyxp/events{/privacy}","received_events_url":"https://api.github.com/users/tanyxp/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/tanyxp/charactersheet","description":"A tool to help D&D 5e players keep their ducks in a row.","fork":true,"url":"https://api.github.com/repos/tanyxp/charactersheet","forks_url":"https://api.github.com/repos/tanyxp/charactersheet/forks","keys_url":"https://api.github.com/repos/tanyxp/charactersheet/keys{/key_id}","collaborators_url":"https://api.github.com/repos/tanyxp/charactersheet/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/tanyxp/charactersheet/teams","hooks_url":"https://api.github.com/repos/tanyxp/charactersheet/hooks","issue_events_url":"https://api.github.com/repos/tanyxp/charactersheet/issues/events{/number}","events_url":"https://api.github.com/repos/tanyxp/charactersheet/events","assignees_url":"https://api.github.com/repos/tanyxp/charactersheet/assignees{/user}","branches_url":"https://api.github.com/repos/tanyxp/charactersheet/branches{/branch}","tags_url":"https://api.github.com/repos/tanyxp/charactersheet/tags","blobs_url":"https://api.github.com/repos/tanyxp/charactersheet/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/tanyxp/charactersheet/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/tanyxp/charactersheet/git/refs{/sha}","trees_url":"https://api.github.com/repos/tanyxp/charactersheet/git/trees{/sha}","statuses_url":"https://api.github.com/repos/tanyxp/charactersheet/statuses/{sha}","languages_url":"https://api.github.com/repos/tanyxp/charactersheet/languages","stargazers_url":"https://api.github.com/repos/tanyxp/charactersheet/stargazers","contributors_url":"https://api.github.com/repos/tanyxp/charactersheet/contributors","subscribers_url":"https://api.github.com/repos/tanyxp/charactersheet/subscribers","subscription_url":"https://api.github.com/repos/tanyxp/charactersheet/subscription","commits_url":"https://api.github.com/repos/tanyxp/charactersheet/commits{/sha}","git_commits_url":"https://api.github.com/repos/tanyxp/charactersheet/git/commits{/sha}","comments_url":"https://api.github.com/repos/tanyxp/charactersheet/comments{/number}","issue_comment_url":"https://api.github.com/repos/tanyxp/charactersheet/issues/comments{/number}","contents_url":"https://api.github.com/repos/tanyxp/charactersheet/contents/{+path}","compare_url":"https://api.github.com/repos/tanyxp/charactersheet/compare/{base}...{head}","merges_url":"https://api.github.com/repos/tanyxp/charactersheet/merges","archive_url":"https://api.github.com/repos/tanyxp/charactersheet/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/tanyxp/charactersheet/downloads","issues_url":"https://api.github.com/repos/tanyxp/charactersheet/issues{/number}","pulls_url":"https://api.github.com/repos/tanyxp/charactersheet/pulls{/number}","milestones_url":"https://api.github.com/repos/tanyxp/charactersheet/milestones{/number}","notifications_url":"https://api.github.com/repos/tanyxp/charactersheet/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/tanyxp/charactersheet/labels{/name}","releases_url":"https://api.github.com/repos/tanyxp/charactersheet/releases{/id}","deployments_url":"https://api.github.com/repos/tanyxp/charactersheet/deployments","created_at":"2015-08-21T01:21:23Z","updated_at":"2016-09-13T19:04:47Z","pushed_at":"2017-01-19T06:40:51Z","git_url":"git://github.com/tanyxp/charactersheet.git","ssh_url":"git@github.com:tanyxp/charactersheet.git","clone_url":"https://github.com/tanyxp/charactersheet.git","svn_url":"https://github.com/tanyxp/charactersheet","homepage":"","size":3735,"stargazers_count":0,"watchers_count":0,"language":"JavaScript","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":"develop"}},"base":{"label":"adventurerscodex:v1.3","ref":"v1.3","sha":"e3e4655f36fe90a03c0b8b9c2466835912c40f48","user":{"login":"adventurerscodex","id":13881422,"avatar_url":"https://avatars.githubusercontent.com/u/13881422?v=3","gravatar_id":"","url":"https://api.github.com/users/adventurerscodex","html_url":"https://github.com/adventurerscodex","followers_url":"https://api.github.com/users/adventurerscodex/followers","following_url":"https://api.github.com/users/adventurerscodex/following{/other_user}","gists_url":"https://api.github.com/users/adventurerscodex/gists{/gist_id}","starred_url":"https://api.github.com/users/adventurerscodex/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/adventurerscodex/subscriptions","organizations_url":"https://api.github.com/users/adventurerscodex/orgs","repos_url":"https://api.github.com/users/adventurerscodex/repos","events_url":"https://api.github.com/users/adventurerscodex/events{/privacy}","received_events_url":"https://api.github.com/users/adventurerscodex/received_events","type":"Organization","site_admin":false},"repo":{"id":41076972,"name":"adventurerscodex","full_name":"adventurerscodex/adventurerscodex","owner":{"login":"adventurerscodex","id":13881422,"avatar_url":"https://avatars.githubusercontent.com/u/13881422?v=3","gravatar_id":"","url":"https://api.github.com/users/adventurerscodex","html_url":"https://github.com/adventurerscodex","followers_url":"https://api.github.com/users/adventurerscodex/followers","following_url":"https://api.github.com/users/adventurerscodex/following{/other_user}","gists_url":"https://api.github.com/users/adventurerscodex/gists{/gist_id}","starred_url":"https://api.github.com/users/adventurerscodex/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/adventurerscodex/subscriptions","organizations_url":"https://api.github.com/users/adventurerscodex/orgs","repos_url":"https://api.github.com/users/adventurerscodex/repos","events_url":"https://api.github.com/users/adventurerscodex/events{/privacy}","received_events_url":"https://api.github.com/users/adventurerscodex/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/adventurerscodex/adventurerscodex","description":"Experience the next step in tabletop RPGs","fork":false,"url":"https://api.github.com/repos/adventurerscodex/adventurerscodex","forks_url":"https://api.github.com/repos/adventurerscodex/adventurerscodex/forks","keys_url":"https://api.github.com/repos/adventurerscodex/adventurerscodex/keys{/key_id}","collaborators_url":"https://api.github.com/repos/adventurerscodex/adventurerscodex/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/adventurerscodex/adventurerscodex/teams","hooks_url":"https://api.github.com/repos/adventurerscodex/adventurerscodex/hooks","issue_events_url":"https://api.github.com/repos/adventurerscodex/adventurerscodex/issues/events{/number}","events_url":"https://api.github.com/repos/adventurerscodex/adventurerscodex/events","assignees_url":"https://api.github.com/repos/adventurerscodex/adventurerscodex/assignees{/user}","branches_url":"https://api.github.com/repos/adventurerscodex/adventurerscodex/branches{/branch}","tags_url":"https://api.github.com/repos/adventurerscodex/adventurerscodex/tags","blobs_url":"https://api.github.com/repos/adventurerscodex/adventurerscodex/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/adventurerscodex/adventurerscodex/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/adventurerscodex/adventurerscodex/git/refs{/sha}","trees_url":"https://api.github.com/repos/adventurerscodex/adventurerscodex/git/trees{/sha}","statuses_url":"https://api.github.com/repos/adventurerscodex/adventurerscodex/statuses/{sha}","languages_url":"https://api.github.com/repos/adventurerscodex/adventurerscodex/languages","stargazers_url":"https://api.github.com/repos/adventurerscodex/adventurerscodex/stargazers","contributors_url":"https://api.github.com/repos/adventurerscodex/adventurerscodex/contributors","subscribers_url":"https://api.github.com/repos/adventurerscodex/adventurerscodex/subscribers","subscription_url":"https://api.github.com/repos/adventurerscodex/adventurerscodex/subscription","commits_url":"https://api.github.com/repos/adventurerscodex/adventurerscodex/commits{/sha}","git_commits_url":"https://api.github.com/repos/adventurerscodex/adventurerscodex/git/commits{/sha}","comments_url":"https://api.github.com/repos/adventurerscodex/adventurerscodex/comments{/number}","issue_comment_url":"https://api.github.com/repos/adventurerscodex/adventurerscodex/issues/comments{/number}","contents_url":"https://api.github.com/repos/adventurerscodex/adventurerscodex/contents/{+path}","compare_url":"https://api.github.com/repos/adventurerscodex/adventurerscodex/compare/{base}...{head}","merges_url":"https://api.github.com/repos/adventurerscodex/adventurerscodex/merges","archive_url":"https://api.github.com/repos/adventurerscodex/adventurerscodex/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/adventurerscodex/adventurerscodex/downloads","issues_url":"https://api.github.com/repos/adventurerscodex/adventurerscodex/issues{/number}","pulls_url":"https://api.github.com/repos/adventurerscodex/adventurerscodex/pulls{/number}","milestones_url":"https://api.github.com/repos/adventurerscodex/adventurerscodex/milestones{/number}","notifications_url":"https://api.github.com/repos/adventurerscodex/adventurerscodex/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/adventurerscodex/adventurerscodex/labels{/name}","releases_url":"https://api.github.com/repos/adventurerscodex/adventurerscodex/releases{/id}","deployments_url":"https://api.github.com/repos/adventurerscodex/adventurerscodex/deployments","created_at":"2015-08-20T05:18:22Z","updated_at":"2016-12-16T14:48:33Z","pushed_at":"2017-01-19T15:54:10Z","git_url":"git://github.com/adventurerscodex/adventurerscodex.git","ssh_url":"git@github.com:adventurerscodex/adventurerscodex.git","clone_url":"https://github.com/adventurerscodex/adventurerscodex.git","svn_url":"https://github.com/adventurerscodex/adventurerscodex","homepage":"https://adventurerscodex.com","size":50780,"stargazers_count":23,"watchers_count":23,"language":"JavaScript","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":true,"forks_count":9,"mirror_url":null,"open_issues_count":86,"forks":9,"open_issues":86,"watchers":23,"default_branch":"v1.3"}},"_links":{"self":{"href":"https://api.github.com/repos/adventurerscodex/adventurerscodex/pulls/1152"},"html":{"href":"https://github.com/adventurerscodex/adventurerscodex/pull/1152"},"issue":{"href":"https://api.github.com/repos/adventurerscodex/adventurerscodex/issues/1152"},"comments":{"href":"https://api.github.com/repos/adventurerscodex/adventurerscodex/issues/1152/comments"},"review_comments":{"href":"https://api.github.com/repos/adventurerscodex/adventurerscodex/pulls/1152/comments"},"review_comment":{"href":"https://api.github.com/repos/adventurerscodex/adventurerscodex/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/adventurerscodex/adventurerscodex/pulls/1152/commits"},"statuses":{"href":"https://api.github.com/repos/adventurerscodex/adventurerscodex/statuses/22a8a2075b0494c1de8f190570a18250944a1d93"}}}}
{"actor":{"display_login":"tanyxp"}}