Przeglądaj źródła

fix: 适配软工2

Azure 2 lat temu
rodzic
commit
5e70b60894

+ 2 - 2
pom.xml

@@ -11,7 +11,7 @@
 
     <groupId>com.nju.edu</groupId>
     <artifactId>seecoder-gitlab</artifactId>
-    <version>0.1.7</version>
+    <version>0.1.8</version>
     <packaging>pom</packaging>
     <description>Gitlab API project</description>
     <modules>
@@ -22,7 +22,7 @@
 
     <properties>
         <java.version>1.8</java.version>
-        <seecoder-gitlab-version>0.1.7</seecoder-gitlab-version>
+        <seecoder-gitlab-version>0.1.8</seecoder-gitlab-version>
     </properties>
 
     <dependencyManagement>

+ 2 - 2
seecoder-gitlab-client/pom.xml

@@ -5,14 +5,14 @@
     <parent>
         <artifactId>seecoder-gitlab</artifactId>
         <groupId>com.nju.edu</groupId>
-        <version>0.1.7</version>
+        <version>0.1.8</version>
     </parent>
     <modelVersion>4.0.0</modelVersion>
 
     <artifactId>seecoder-gitlab-client</artifactId>
 
     <properties>
-        <seecoder-gitlab-version>0.1.7</seecoder-gitlab-version>
+        <seecoder-gitlab-version>0.1.8</seecoder-gitlab-version>
     </properties>
 
     <dependencies>

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

@@ -41,7 +41,7 @@ public interface SeecoderGitlabApi{
 
     public boolean deleteProject(int projectId) throws SeecoderGitlabException;
 
-    public Map<String,Integer> forkProject(int projectId, int userId, String username, String examUuid) throws SeecoderGitlabException;
+    public Integer forkProject(int projectId, int userId, String username, String examUuid) throws SeecoderGitlabException;
 
     public Integer forkGroupProject(int projectId,int groupId) throws SeecoderGitlabException;
 

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

@@ -420,7 +420,7 @@ public class SeecoderGitlabClient implements SeecoderGitlabApi {
 
 
     @Override
-    public Map<String,Integer> forkProject(int projectId, int userId, String username, String examUuid) throws SeecoderGitlabException {
+    public Integer forkProject(int projectId, int userId, String username, String examUuid) throws SeecoderGitlabException {
         try {
             ObjectMapper objectMapper = new ObjectMapper();
             Request.Builder builder = new Request.Builder()
@@ -437,10 +437,10 @@ public class SeecoderGitlabClient implements SeecoderGitlabApi {
             Request request = builder.build();
             final Call call = client.newCall(request);
             Response response = call.execute();
-            Map<String,Integer> forkedAndId = processResponse(objectMapper, response, new TypeReference<Map<String,Integer>>() {
+            Integer id = processResponse(objectMapper, response, new TypeReference<Integer>() {
             });
             response.close();
-            return forkedAndId;
+            return id;
         } catch (JsonProcessingException e) {
             logger.error("JSON writeValueAsString error", e);
             throw SeecoderGitlabException.JSON_ERROR;

+ 1 - 1
seecoder-gitlab-common/pom.xml

@@ -5,7 +5,7 @@
     <parent>
         <artifactId>seecoder-gitlab</artifactId>
         <groupId>com.nju.edu</groupId>
-        <version>0.1.7</version>
+        <version>0.1.8</version>
         <relativePath>../pom.xml</relativePath>
     </parent>
     <modelVersion>4.0.0</modelVersion>

+ 1 - 1
seecoder-gitlab-server/pom.xml

@@ -5,7 +5,7 @@
     <parent>
         <artifactId>seecoder-gitlab</artifactId>
         <groupId>com.nju.edu</groupId>
-        <version>0.1.7</version>
+        <version>0.1.8</version>
         <relativePath>../pom.xml</relativePath>
     </parent>
     <modelVersion>4.0.0</modelVersion>

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

@@ -32,11 +32,10 @@ public interface ProjectService {
 
     public boolean deleteProject(Integer projectId) throws  GitLabApiException;
 
-    public Map<String,Integer> forkProject(UserForkDTO userForkDTO) throws GitLabApiException;
+    public Integer forkProject(UserForkDTO userForkDTO) throws GitLabApiException;
 
     public Integer forkGroupProject(GroupForkDTO groupForkDTO) throws GitLabApiException;
 
-
     Set<DiffVO> compare(Integer projectId, String fromBash, String toBash) throws GitLabApiException;
 
     public boolean addWebHook(WebHookDTO webHookDTO) throws GitLabApiException;

+ 7 - 10
seecoder-gitlab-server/src/main/java/com/nju/edu/gitlab/service/impl/ProjectServiceImpl.java

@@ -93,7 +93,7 @@ public class ProjectServiceImpl implements ProjectService {
     }
 
     @Override
-    public Map<String,Integer> forkProject(UserForkDTO userForkDTO) throws GitLabApiException {
+    public Integer forkProject(UserForkDTO userForkDTO) throws GitLabApiException {
         Map<String,Integer> forkedAndId=new HashMap<>();
         int userId=userForkDTO.getUserId();
         int projectId=userForkDTO.getProjectId();
@@ -103,11 +103,10 @@ public class ProjectServiceImpl implements ProjectService {
         Integer namespaceId=gitlabUser.getNamespaceId();
         Project project;
         log.info("trying to fork project {} to user {} (whose gitlab id is {})", projectId, userId, gitlabUser.getGitlabUserId());
-        Integer existProjectId=searchForkedProject(username, examUuid);
-        if(existProjectId!=-1){
-            forkedAndId.put("forked",1);
-            forkedAndId.put("id",existProjectId);
-            return forkedAndId;
+        if(username!=null&&examUuid!=null) { //适配软工2系统,软工2系统不能传username(软工2系统数据库中的username不是门户用户名而是昵称)
+            Integer existProjectId = searchForkedProject(username, examUuid);
+            if (existProjectId != -1)
+                return existProjectId;
         }
         try{
             gitlabApi.setSudoAsId((long) gitlabUser.getGitlabUserId());
@@ -117,9 +116,8 @@ public class ProjectServiceImpl implements ProjectService {
         }finally {
             gitlabApi.unsudo();
         }
-        forkedAndId.put("forked", 0);
-        forkedAndId.put("id", Math.toIntExact(project != null ? project.getId() : null));
-        return forkedAndId;
+
+        return Math.toIntExact(project != null ? project.getId() : null);
     }
 
     public Integer searchForkedProject(String username, String examUuid) throws GitLabApiException {
@@ -133,7 +131,6 @@ public class ProjectServiceImpl implements ProjectService {
         }
     }
 
-
     @Override
     public Integer forkGroupProject(GroupForkDTO groupForkDTO) throws GitLabApiException {
         int groupId=groupForkDTO.getGroupId();