{"action":"created","comment":{"url":"https://api.github.com/repos/bhuwang/java_training/pulls/comments/39500867","id":39500867,"diff_hunk":"@@ -0,0 +1,479 @@\n+\n+package com.lftechnology.java.training.krishna.employeemanagement.controllers;\n+\n+import java.util.ArrayList;\n+import java.util.List;\n+import java.util.Scanner;\n+\n+import com.lftechnology.java.training.krishna.employeemanagement.domain.Employee;\n+import com.lftechnology.java.training.krishna.employeemanagement.domain.User;\n+import com.lftechnology.java.training.krishna.employeemanagement.jdbc.MigrationUtils;\n+import com.lftechnology.java.training.krishna.employeemanagement.service.employee.impl.EmployeeServiceImpl;\n+import com.lftechnology.java.training.krishna.employeemanagement.service.user.impl.UserServiceImpl;\n+import com.lftechnology.java.training.krishna.employeemanagement.utils.ConstantUtils;\n+import com.lftechnology.java.training.krishna.employeemanagement.utils.Role;\n+import com.lftechnology.java.training.krishna.employeemanagement.utils.ValidationUtils;\n+\n+/**\n+ *  The application should have the following features:\n+ * 1. Application will have two users: a. admin user b. normal user\n+ * 2. Admin user will have option to add/delete user\n+ * 3. Normal user can view/search employee\n+ * 4. admin user will be generated by the system by default\n+ * 5. admin user will add normal user\n+ */\n+\n+/**\n+ * This program used for simple employeement system\n+ *\n+ * @author Krishna Timilsina <krishnatimilsina@lftechnology.com>\n+ * @version 1.0\n+ */\n+public class LoginController {\n+\n+\tprivate static UserServiceImpl userServiceImpl;\n+\tprivate static EmployeeServiceImpl employeeServiceImpl;\n+\tprivate static User user;\n+\n+\t// constructor\n+\tprivate LoginController() {\n+\n+\t}\n+\n+\tpublic static void main(String[] args) {\n+\n+\t\t// migration for default user\n+\t\tMigrationUtils mig = new MigrationUtils();\n+\t\tmig.migrate();\n+\t\tScanner scanner = new Scanner(System.in);\n+\t\tauthentiateUser(scanner);\n+\t\tscanner.close();\n+\n+\t}\n+\n+\t/**\n+\t * This method is used to authenticate user\n+\t *\n+\t * @param scanner\n+\t *            {@link Scanner}\n+\t * @author Krishna Timilsina <krishnatimilsina@lftechnology.com>\n+\t */\n+\tprivate static void authentiateUser(Scanner scanner) {\n+\n+\t\tshowLoginTitle();\n+\t\tuser = loginAction(scanner);\n+\t\twhile (user == null) {\n+\t\t\tSystem.out.println(\"Invalid username and password. Please try again.\\n\");\n+\t\t\tloginAction(scanner);\n+\t\t}\n+\t\tshowMainTitle(user.getUsername());\n+\t\tshowMainMenu(scanner, user.getId());\n+\t}\n+\n+\t/**\n+\t * This method is used to display title of login\n+\t *\n+\t * @author Krishna Timilsina <krishnatimilsina@lftechnology.com>\n+\t */\n+\tprivate static void showLoginTitle() {\n+\n+\t\tSystem.out.println(\"\\n\"\n+\t\t\t+ \"*********************************************\" + \"\\n\"\n+\t\t\t+ \"**                                         **\" + \"\\n\"\n+\t\t\t+ \"**              Login                      **\" + \"\\n\"\n+\t\t\t+ \"**                                         **\" + \"\\n\"\n+\t\t\t+ \"*********************************************\" + \"\\n\");\n+\t}\n+\n+\t/**\n+\t * This method is used to login using user information\n+\t *\n+\t * @param scanner\n+\t *            {@link Scanner}\n+\t * @return User\n+\t * @author Krishna Timilsina <krishnatimilsina@lftechnology.com>\n+\t */\n+\tprivate static User loginAction(Scanner scanner) {\n+\n+\t\tSystem.out.println(\"Please enter the username::\");\n+\t\tString username = ValidationUtils.emptyValidation(scanner, ConstantUtils.USERNAME);\n+\t\tSystem.out.println(\"Please enter the password::\");\n+\t\tString password = ValidationUtils.emptyValidation(scanner,  ConstantUtils.PASSWORD);\n+\t\tuserServiceImpl = new UserServiceImpl();\n+\t\tuser = userServiceImpl.login(username, password);\n+\t\treturn user;\n+\t}\n+\n+\t/**\n+\t * This method is used to display username\n+\t *\n+\t * @param username\n+\t *            {@link String}\n+\t * @author Krishna Timilsina <krishnatimilsina@lftechnology.com>\n+\t */\n+\tprivate static void showMainTitle(String username) {\n+\n+\t\tSystem.out.println(\"\\n\" +\n+\t\t\t\"*******************************************************\" + \"\\n\" +\n+\t\t\t\"**                                                   **\" + \"\\n\" +\n+\t\t\t\"**              Welcome To \" + username + \"                   **\" +\n+\t\t\t\"\\n\" + \"**                                                   **\" +\n+\t\t\t\"\\n\" + \"*******************************************************\" +\n+\t\t\t\"\\n\");\n+\t}\n+\n+\t/**\n+\t * This method is used to display main menu\n+\t *\n+\t * @param scanner\n+\t *            {@link Scanner}\n+\t * @param id\n+\t *            {@link int}\n+\t * @author Krishna Timilsina <krishnatimilsina@lftechnology.com>\n+\t */\n+\tprivate static void showMainMenu(Scanner scanner, int id) {\n+\n+\t\temployeeServiceImpl = new EmployeeServiceImpl();\n+\t\tEmployee employee = employeeServiceImpl.findById(id);\n+\t\tif (employee.getRole().equalsIgnoreCase(Role.Admin.toString())) {\n+\t\t\tSystem.out.println(\"\" + \"**   MAIN MENU (\" +\n+\t\t\t\tConstantUtils.DESIRED_ACTION + \") ****\" + \"\\n\" +\n+\t\t\t\t\"**   1. Add New User                                 **\" +\n+\t\t\t\t\"\\n\" +\n+\t\t\t\t\"**   2. Delete User                                  **\" +\n+\t\t\t\t\"\\n\" +\n+\t\t\t\t\"**   3. Terminated User                              **\" +\n+\t\t\t\t\"\\n\" +\n+\t\t\t\t\"**   4. Quit OR Logout                               **\" +\n+\t\t\t\t\"\\n\" +\n+\t\t\t\t\"**   5. Search User                                  **\" +\n+\t\t\t\t\"\\n\" +\n+\t\t\t\t\"*******************************************************\" +\n+\t\t\t\t\"\\n\");\n+\n+\t\t\tchooseAdminUserAction(scanner, id);\n+\t\t}\n+\t\telse {\n+\t\t\tSystem.out.println(\"\" + \"** MAIN MENU (\" +\n+\t\t\t\tConstantUtils.DESIRED_ACTION + \") ***\" + \"\\n\" +\n+\t\t\t\t\"**   4. Quit OR Logout                            **\" + \"\\n\" +\n+\t\t\t\t\"**   5. Search User                               **\" + \"\\n\" +\n+\t\t\t\t\"**   6. Edit Information                          **\" + \"\\n\" +\n+\t\t\t\t\"****************************************************\" + \"\\n\");\n+\n+\t\t\tchooseNormalUserAction(scanner, id);\n+\t\t}\n+\n+\t}\n+\n+\t/**\n+\t * This method is used to choose admin user action such as add employee,\n+\t * delete user\n+\t *\n+\t * @param scanner\n+\t *            {@link Scanner}\n+\t * @param id\n+\t *            {@link int}\n+\t * @author Krishna Timilsina <krishnatimilsina@lftechnology.com>\n+\t */\n+\tprivate static void chooseAdminUserAction(Scanner scanner, int id) {\n+\n+\t\tint choice = ValidationUtils.numberValidation(scanner);\n+\n+\t\tswitch (choice) {\n+\t\tcase 1:\n+\t\t\taddEmployee(scanner);\n+\t\t\tbreak;\n+\t\tcase 2:\n+\t\t\tdeleteUser(scanner);\n+\t\t\tbreak;\n+\t\tcase 3:\n+\t\t\tterminateUser(scanner);\n+\t\t\tbreak;\n+\t\tcase 4:\n+\t\t\tauthentiateUser(scanner);\n+\t\t\tbreak;\n+\t\tcase 5:\n+\t\t\tsearchEmployee(scanner);\n+\t\t\tbreak;\n+\t\tdefault:\n+\t\t\tSystem.out.println(ConstantUtils.DESIRED_ACTION + \"\\n\");\n+\t\t\tbreak;\n+\t\t}\n+\t\tshowMainMenu(scanner, id);\n+\t}\n+\n+\t/**\n+\t * This method is used to choose normal user action such as search employee\n+\t *\n+\t * @param scanner\n+\t *            {@link Scanner}\n+\t * @param id\n+\t *            {@link int}\n+\t * @author Krishna Timilsina <krishnatimilsina@lftechnology.com>\n+\t */\n+\tprivate static void chooseNormalUserAction(Scanner scanner, int id) {\n+\n+\t\tint choice = ValidationUtils.numberValidation(scanner);\n+\n+\t\tswitch (choice) {\n+\t\tcase 4:\n+\t\t\tauthentiateUser(scanner);\n+\t\t\tbreak;\n+\t\tcase 5:\n+\t\t\tsearchEmployee(scanner);\n+\t\t\tbreak;\n+\t\tcase 6:\n+\t\t\teditEmployee(scanner, id);\n+\t\t\tbreak;\n+\t\tdefault:\n+\t\t\tSystem.out.println(ConstantUtils.DESIRED_ACTION + \"\\n\");\n+\t\t\tbreak;\n+\t\t}\n+\t\tshowMainMenu(scanner, id);\n+\t}\n+\n+\t/**\n+\t * This method is used to add employee from user input\n+\t *\n+\t * @param scanner\n+\t *            {@link Scanner}\n+\t * @author Krishna Timilsina <krishnatimilsina@lftechnology.com>\n+\t */\n+\tprivate static void addEmployee(Scanner scanner) {\n+\n+\t\tSystem.out.println(\"************ Collecting Employee Information ************\\n\");\n+\t\tSystem.out.println(\"Please enter the username::\");\n+\t\tString username =\n+\t\t\tValidationUtils.emptyValidation(scanner, ConstantUtils.USERNAME);\n+\t\tSystem.out.println(\"Please enter the password::\");\n+\t\tString password =\n+\t\t\tValidationUtils.emptyValidation(scanner, ConstantUtils.PASSWORD);\n+\t\tSystem.out.println(\"Please enter the full name::\");\n+\t\tString fullname =\n+\t\t\tValidationUtils.emptyValidation(scanner, ConstantUtils.FULLNAME);\n+\t\tSystem.out.println(\"Please enter the department::\");\n+\t\tString department =\n+\t\t\tValidationUtils.emptyValidation(scanner, ConstantUtils.DEPARTMENT);\n+\t\tSystem.out.println(\"Please enter the address::\");\n+\t\tString address =\n+\t\t\tValidationUtils.emptyValidation(scanner, ConstantUtils.ADDRESS);\n+\t\tSystem.out.println(\"Please choose the following role::\\n\");\n+\t\tString role = chooseRole(scanner);\n+\t\temployeeServiceImpl = new EmployeeServiceImpl();\n+\t\tEmployee emp =\n+\t\t\temployeeServiceImpl.saveEmployee(\n+\t\t\t\tusername, password, fullname, department, address, role);\n+\t\tif (emp == null) {\n+\t\t\tSystem.out.println(\"Username already exists. Please try again.\\n\");","path":"src/com/lftechnology/java/training/krishna/employeemanagement/controllers/LoginController.java","position":268,"original_position":268,"commit_id":"97754c1b925cd3d31d1d9639a2fa64c8f83ad077","original_commit_id":"97754c1b925cd3d31d1d9639a2fa64c8f83ad077","user":{"login":"bhuwang","id":3335673,"avatar_url":"https://avatars.githubusercontent.com/u/3335673?v=3","gravatar_id":"","url":"https://api.github.com/users/bhuwang","html_url":"https://github.com/bhuwang","followers_url":"https://api.github.com/users/bhuwang/followers","following_url":"https://api.github.com/users/bhuwang/following{/other_user}","gists_url":"https://api.github.com/users/bhuwang/gists{/gist_id}","starred_url":"https://api.github.com/users/bhuwang/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bhuwang/subscriptions","organizations_url":"https://api.github.com/users/bhuwang/orgs","repos_url":"https://api.github.com/users/bhuwang/repos","events_url":"https://api.github.com/users/bhuwang/events{/privacy}","received_events_url":"https://api.github.com/users/bhuwang/received_events","type":"User","site_admin":false},"body":"![MAJOR](https://raw.githubusercontent.com/SonarCommunity/sonar-github/master/images/severity-major.png) Replace this usage of System.out or System.err by a logger. [![rule](https://raw.githubusercontent.com/SonarCommunity/sonar-github/master/images/rule.png)](http://nemo.sonarqube.org/coding_rules#rule_key=squid%3AS106)\n","created_at":"2015-09-15T11:50:32Z","updated_at":"2015-09-15T11:50:32Z","html_url":"https://github.com/bhuwang/java_training/pull/120#discussion_r39500867","pull_request_url":"https://api.github.com/repos/bhuwang/java_training/pulls/120","_links":{"self":{"href":"https://api.github.com/repos/bhuwang/java_training/pulls/comments/39500867"},"html":{"href":"https://github.com/bhuwang/java_training/pull/120#discussion_r39500867"},"pull_request":{"href":"https://api.github.com/repos/bhuwang/java_training/pulls/120"}}},"pull_request":{"url":"https://api.github.com/repos/bhuwang/java_training/pulls/120","id":45006548,"html_url":"https://github.com/bhuwang/java_training/pull/120","diff_url":"https://github.com/bhuwang/java_training/pull/120.diff","patch_url":"https://github.com/bhuwang/java_training/pull/120.patch","issue_url":"https://api.github.com/repos/bhuwang/java_training/issues/120","number":120,"state":"open","locked":false,"title":"32 Small Java Core Application - Employee Management","user":{"login":"krishnatimilsina","id":4188591,"avatar_url":"https://avatars.githubusercontent.com/u/4188591?v=3","gravatar_id":"","url":"https://api.github.com/users/krishnatimilsina","html_url":"https://github.com/krishnatimilsina","followers_url":"https://api.github.com/users/krishnatimilsina/followers","following_url":"https://api.github.com/users/krishnatimilsina/following{/other_user}","gists_url":"https://api.github.com/users/krishnatimilsina/gists{/gist_id}","starred_url":"https://api.github.com/users/krishnatimilsina/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/krishnatimilsina/subscriptions","organizations_url":"https://api.github.com/users/krishnatimilsina/orgs","repos_url":"https://api.github.com/users/krishnatimilsina/repos","events_url":"https://api.github.com/users/krishnatimilsina/events{/privacy}","received_events_url":"https://api.github.com/users/krishnatimilsina/received_events","type":"User","site_admin":false},"body":"The application should have the following features:\r\n1. Application will have two users: a. admin user b. normal user\r\n2. Admin user will have option to add/delete user\r\n3. Normal user can view/search employee\r\n4. admin user will be generated by the system by default\r\n5. admin user will add normal user\r\n\r\n\r\nPlease review these codes.","created_at":"2015-09-15T03:55:08Z","updated_at":"2015-09-15T11:50:32Z","closed_at":null,"merged_at":null,"merge_commit_sha":"4410e945bb50ae91d5ad9f19fce5714f1308a37d","assignee":null,"milestone":null,"commits_url":"https://api.github.com/repos/bhuwang/java_training/pulls/120/commits","review_comments_url":"https://api.github.com/repos/bhuwang/java_training/pulls/120/comments","review_comment_url":"https://api.github.com/repos/bhuwang/java_training/pulls/comments{/number}","comments_url":"https://api.github.com/repos/bhuwang/java_training/issues/120/comments","statuses_url":"https://api.github.com/repos/bhuwang/java_training/statuses/97754c1b925cd3d31d1d9639a2fa64c8f83ad077","head":{"label":"bhuwang:32_krishna","ref":"32_krishna","sha":"97754c1b925cd3d31d1d9639a2fa64c8f83ad077","user":{"login":"bhuwang","id":3335673,"avatar_url":"https://avatars.githubusercontent.com/u/3335673?v=3","gravatar_id":"","url":"https://api.github.com/users/bhuwang","html_url":"https://github.com/bhuwang","followers_url":"https://api.github.com/users/bhuwang/followers","following_url":"https://api.github.com/users/bhuwang/following{/other_user}","gists_url":"https://api.github.com/users/bhuwang/gists{/gist_id}","starred_url":"https://api.github.com/users/bhuwang/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bhuwang/subscriptions","organizations_url":"https://api.github.com/users/bhuwang/orgs","repos_url":"https://api.github.com/users/bhuwang/repos","events_url":"https://api.github.com/users/bhuwang/events{/privacy}","received_events_url":"https://api.github.com/users/bhuwang/received_events","type":"User","site_admin":false},"repo":{"id":40284843,"name":"java_training","full_name":"bhuwang/java_training","owner":{"login":"bhuwang","id":3335673,"avatar_url":"https://avatars.githubusercontent.com/u/3335673?v=3","gravatar_id":"","url":"https://api.github.com/users/bhuwang","html_url":"https://github.com/bhuwang","followers_url":"https://api.github.com/users/bhuwang/followers","following_url":"https://api.github.com/users/bhuwang/following{/other_user}","gists_url":"https://api.github.com/users/bhuwang/gists{/gist_id}","starred_url":"https://api.github.com/users/bhuwang/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bhuwang/subscriptions","organizations_url":"https://api.github.com/users/bhuwang/orgs","repos_url":"https://api.github.com/users/bhuwang/repos","events_url":"https://api.github.com/users/bhuwang/events{/privacy}","received_events_url":"https://api.github.com/users/bhuwang/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/bhuwang/java_training","description":"","fork":false,"url":"https://api.github.com/repos/bhuwang/java_training","forks_url":"https://api.github.com/repos/bhuwang/java_training/forks","keys_url":"https://api.github.com/repos/bhuwang/java_training/keys{/key_id}","collaborators_url":"https://api.github.com/repos/bhuwang/java_training/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/bhuwang/java_training/teams","hooks_url":"https://api.github.com/repos/bhuwang/java_training/hooks","issue_events_url":"https://api.github.com/repos/bhuwang/java_training/issues/events{/number}","events_url":"https://api.github.com/repos/bhuwang/java_training/events","assignees_url":"https://api.github.com/repos/bhuwang/java_training/assignees{/user}","branches_url":"https://api.github.com/repos/bhuwang/java_training/branches{/branch}","tags_url":"https://api.github.com/repos/bhuwang/java_training/tags","blobs_url":"https://api.github.com/repos/bhuwang/java_training/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/bhuwang/java_training/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/bhuwang/java_training/git/refs{/sha}","trees_url":"https://api.github.com/repos/bhuwang/java_training/git/trees{/sha}","statuses_url":"https://api.github.com/repos/bhuwang/java_training/statuses/{sha}","languages_url":"https://api.github.com/repos/bhuwang/java_training/languages","stargazers_url":"https://api.github.com/repos/bhuwang/java_training/stargazers","contributors_url":"https://api.github.com/repos/bhuwang/java_training/contributors","subscribers_url":"https://api.github.com/repos/bhuwang/java_training/subscribers","subscription_url":"https://api.github.com/repos/bhuwang/java_training/subscription","commits_url":"https://api.github.com/repos/bhuwang/java_training/commits{/sha}","git_commits_url":"https://api.github.com/repos/bhuwang/java_training/git/commits{/sha}","comments_url":"https://api.github.com/repos/bhuwang/java_training/comments{/number}","issue_comment_url":"https://api.github.com/repos/bhuwang/java_training/issues/comments{/number}","contents_url":"https://api.github.com/repos/bhuwang/java_training/contents/{+path}","compare_url":"https://api.github.com/repos/bhuwang/java_training/compare/{base}...{head}","merges_url":"https://api.github.com/repos/bhuwang/java_training/merges","archive_url":"https://api.github.com/repos/bhuwang/java_training/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/bhuwang/java_training/downloads","issues_url":"https://api.github.com/repos/bhuwang/java_training/issues{/number}","pulls_url":"https://api.github.com/repos/bhuwang/java_training/pulls{/number}","milestones_url":"https://api.github.com/repos/bhuwang/java_training/milestones{/number}","notifications_url":"https://api.github.com/repos/bhuwang/java_training/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/bhuwang/java_training/labels{/name}","releases_url":"https://api.github.com/repos/bhuwang/java_training/releases{/id}","created_at":"2015-08-06T04:45:13Z","updated_at":"2015-08-31T05:46:12Z","pushed_at":"2015-09-15T11:50:13Z","git_url":"git://github.com/bhuwang/java_training.git","ssh_url":"git@github.com:bhuwang/java_training.git","clone_url":"https://github.com/bhuwang/java_training.git","svn_url":"https://github.com/bhuwang/java_training","homepage":null,"size":4236,"stargazers_count":0,"watchers_count":0,"language":"HTML","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":3,"mirror_url":null,"open_issues_count":33,"forks":3,"open_issues":33,"watchers":0,"default_branch":"dev"}},"base":{"label":"bhuwang:dev","ref":"dev","sha":"e2c751d7847db0c90d2726011e880bb45321dc73","user":{"login":"bhuwang","id":3335673,"avatar_url":"https://avatars.githubusercontent.com/u/3335673?v=3","gravatar_id":"","url":"https://api.github.com/users/bhuwang","html_url":"https://github.com/bhuwang","followers_url":"https://api.github.com/users/bhuwang/followers","following_url":"https://api.github.com/users/bhuwang/following{/other_user}","gists_url":"https://api.github.com/users/bhuwang/gists{/gist_id}","starred_url":"https://api.github.com/users/bhuwang/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bhuwang/subscriptions","organizations_url":"https://api.github.com/users/bhuwang/orgs","repos_url":"https://api.github.com/users/bhuwang/repos","events_url":"https://api.github.com/users/bhuwang/events{/privacy}","received_events_url":"https://api.github.com/users/bhuwang/received_events","type":"User","site_admin":false},"repo":{"id":40284843,"name":"java_training","full_name":"bhuwang/java_training","owner":{"login":"bhuwang","id":3335673,"avatar_url":"https://avatars.githubusercontent.com/u/3335673?v=3","gravatar_id":"","url":"https://api.github.com/users/bhuwang","html_url":"https://github.com/bhuwang","followers_url":"https://api.github.com/users/bhuwang/followers","following_url":"https://api.github.com/users/bhuwang/following{/other_user}","gists_url":"https://api.github.com/users/bhuwang/gists{/gist_id}","starred_url":"https://api.github.com/users/bhuwang/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bhuwang/subscriptions","organizations_url":"https://api.github.com/users/bhuwang/orgs","repos_url":"https://api.github.com/users/bhuwang/repos","events_url":"https://api.github.com/users/bhuwang/events{/privacy}","received_events_url":"https://api.github.com/users/bhuwang/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/bhuwang/java_training","description":"","fork":false,"url":"https://api.github.com/repos/bhuwang/java_training","forks_url":"https://api.github.com/repos/bhuwang/java_training/forks","keys_url":"https://api.github.com/repos/bhuwang/java_training/keys{/key_id}","collaborators_url":"https://api.github.com/repos/bhuwang/java_training/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/bhuwang/java_training/teams","hooks_url":"https://api.github.com/repos/bhuwang/java_training/hooks","issue_events_url":"https://api.github.com/repos/bhuwang/java_training/issues/events{/number}","events_url":"https://api.github.com/repos/bhuwang/java_training/events","assignees_url":"https://api.github.com/repos/bhuwang/java_training/assignees{/user}","branches_url":"https://api.github.com/repos/bhuwang/java_training/branches{/branch}","tags_url":"https://api.github.com/repos/bhuwang/java_training/tags","blobs_url":"https://api.github.com/repos/bhuwang/java_training/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/bhuwang/java_training/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/bhuwang/java_training/git/refs{/sha}","trees_url":"https://api.github.com/repos/bhuwang/java_training/git/trees{/sha}","statuses_url":"https://api.github.com/repos/bhuwang/java_training/statuses/{sha}","languages_url":"https://api.github.com/repos/bhuwang/java_training/languages","stargazers_url":"https://api.github.com/repos/bhuwang/java_training/stargazers","contributors_url":"https://api.github.com/repos/bhuwang/java_training/contributors","subscribers_url":"https://api.github.com/repos/bhuwang/java_training/subscribers","subscription_url":"https://api.github.com/repos/bhuwang/java_training/subscription","commits_url":"https://api.github.com/repos/bhuwang/java_training/commits{/sha}","git_commits_url":"https://api.github.com/repos/bhuwang/java_training/git/commits{/sha}","comments_url":"https://api.github.com/repos/bhuwang/java_training/comments{/number}","issue_comment_url":"https://api.github.com/repos/bhuwang/java_training/issues/comments{/number}","contents_url":"https://api.github.com/repos/bhuwang/java_training/contents/{+path}","compare_url":"https://api.github.com/repos/bhuwang/java_training/compare/{base}...{head}","merges_url":"https://api.github.com/repos/bhuwang/java_training/merges","archive_url":"https://api.github.com/repos/bhuwang/java_training/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/bhuwang/java_training/downloads","issues_url":"https://api.github.com/repos/bhuwang/java_training/issues{/number}","pulls_url":"https://api.github.com/repos/bhuwang/java_training/pulls{/number}","milestones_url":"https://api.github.com/repos/bhuwang/java_training/milestones{/number}","notifications_url":"https://api.github.com/repos/bhuwang/java_training/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/bhuwang/java_training/labels{/name}","releases_url":"https://api.github.com/repos/bhuwang/java_training/releases{/id}","created_at":"2015-08-06T04:45:13Z","updated_at":"2015-08-31T05:46:12Z","pushed_at":"2015-09-15T11:50:13Z","git_url":"git://github.com/bhuwang/java_training.git","ssh_url":"git@github.com:bhuwang/java_training.git","clone_url":"https://github.com/bhuwang/java_training.git","svn_url":"https://github.com/bhuwang/java_training","homepage":null,"size":4236,"stargazers_count":0,"watchers_count":0,"language":"HTML","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":3,"mirror_url":null,"open_issues_count":33,"forks":3,"open_issues":33,"watchers":0,"default_branch":"dev"}},"_links":{"self":{"href":"https://api.github.com/repos/bhuwang/java_training/pulls/120"},"html":{"href":"https://github.com/bhuwang/java_training/pull/120"},"issue":{"href":"https://api.github.com/repos/bhuwang/java_training/issues/120"},"comments":{"href":"https://api.github.com/repos/bhuwang/java_training/issues/120/comments"},"review_comments":{"href":"https://api.github.com/repos/bhuwang/java_training/pulls/120/comments"},"review_comment":{"href":"https://api.github.com/repos/bhuwang/java_training/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/bhuwang/java_training/pulls/120/commits"},"statuses":{"href":"https://api.github.com/repos/bhuwang/java_training/statuses/97754c1b925cd3d31d1d9639a2fa64c8f83ad077"}}}}