Преглед изворни кода

feat: 添加新的根据用户名查询用户接口

weijin пре 4 година
родитељ
комит
fc81c006ea

+ 2 - 0
seecoder-gitlab-client/src/main/java/com.nju.edu.gitlab/SeecoderGitlabApi.java

@@ -26,6 +26,8 @@ public interface SeecoderGitlabApi{
 
     public User getUserByUserName(String userName) throws  SeecoderGitlabException;
 
+    public GitlabUserVO getUserByUserNameNew(String userName) throws  SeecoderGitlabException;
+
     public GitlabGroup createGroup(String groupName) throws SeecoderGitlabException;
 
     public boolean addMember(int groupId, int userId, AccessLevelForm accessLevel) throws SeecoderGitlabException;

+ 23 - 0
seecoder-gitlab-client/src/main/java/com.nju.edu.gitlab/SeecoderGitlabClient.java

@@ -241,6 +241,29 @@ public class SeecoderGitlabClient implements SeecoderGitlabApi {
         }
     }
 
+    @Override
+    public GitlabUserVO getUserByUserNameNew(String userName) throws SeecoderGitlabException {
+        try {
+            ObjectMapper objectMapper = new ObjectMapper();
+            Request.Builder builder = new Request.Builder()
+                    .addHeader("Authorization", token);
+            builder = builder
+                    .url(host + "/api/user/getByUserNameNew?userName=" + userName)
+                    .get();
+            Request request = builder.build();
+            final Call call = client.newCall(request);
+            Response response = call.execute();
+            return processResponse(objectMapper, response, new TypeReference<GitlabUserVO>() {
+            });
+        } catch (JsonProcessingException e) {
+            logger.error("JSON writeValueAsString error", e);
+            throw SeecoderGitlabException.JSON_ERROR;
+        } catch (IOException e) {
+            logger.error("IOException", e);
+            throw SeecoderGitlabException.IO_ERROR;
+        }
+    }
+
     @Override
     public GitlabGroup createGroup(String groupName) throws SeecoderGitlabException {
         try {

+ 5 - 0
seecoder-gitlab-server/src/main/java/com/nju/edu/gitlab/controller/GitlabUserController.java

@@ -50,4 +50,9 @@ public class GitlabUserController {
     public Response getUserByUserName(@RequestParam(name = "userName") String userName) throws GitLabApiException {
         return new ResourceResponse(userService.findByUsername(userName));
     }
+
+    @GetMapping("/getByUserNameNew")
+    public Response getUserByUserNameNew(@RequestParam(name = "userName") String userName) throws GitLabApiException {
+        return new ResourceResponse(userService.findByUsernameNew(userName));
+    }
 }

+ 2 - 0
seecoder-gitlab-server/src/main/java/com/nju/edu/gitlab/service/api/UserService.java

@@ -19,5 +19,7 @@ public interface UserService {
 
     public User findByUsername(String username) throws GitLabApiException;
 
+    public GitlabUserVO findByUsernameNew(String username) throws GitLabApiException;
+
     public String getUserEmail(int userId) throws GitLabApiException;
 }

+ 18 - 0
seecoder-gitlab-server/src/main/java/com/nju/edu/gitlab/service/impl/UserServiceImpl.java

@@ -101,6 +101,24 @@ public class UserServiceImpl implements UserService {
         return gitlabApi.getUserApi().getUser(username);
     }
 
+    @Override
+    public GitlabUserVO findByUsernameNew(String username) throws GitLabApiException {
+        System.out.println(gitlabApi.getSudoAsId());
+        User user = gitlabApi.getUserApi().getUser(username);
+        GitlabUser gitlabUser = new GitlabUser();
+        gitlabUser.setUserId(-1);
+        gitlabUser.setGitlabUserId(user.getId());
+        gitlabUser.setNamespaceId(fetchNameSpaceId(username));
+        gitlabUser.setToken(createToken(user.getId()));
+
+        GitlabUserVO gitlabUserVO = new GitlabUserVO();
+        gitlabUserVO.setUserId(-1);
+        gitlabUserVO.setGitlabUserId(gitlabUser.getGitlabUserId());
+        gitlabUserVO.setNamespaceId(gitlabUser.getNamespaceId());
+        gitlabUserVO.setToken(gitlabUser.getToken());
+        return gitlabUserVO;
+    }
+
     @Override
     public String getUserEmail(int userId) throws GitLabApiException {
         userId = gitlabUserRepository.findByUserId(userId).getGitlabUserId();