Add collaboration feature
[sdc.git] / openecomp-be / api / openecomp-sdc-rest-webapp / conflict-rest / conflict-rest-services / src / main / java / org / openecomp / sdcrests / conflict / rest / services / ConflictsImpl.java
1 package org.openecomp.sdcrests.conflict.rest.services;
2
3 import org.openecomp.conflicts.types.Conflict;
4 import org.openecomp.conflicts.types.ConflictResolution;
5 import org.openecomp.conflicts.types.ItemVersionConflict;
6 import org.openecomp.sdc.conflicts.ConflictsManager;
7 import org.openecomp.sdc.conflicts.ConflictsManagerFactory;
8 import org.openecomp.sdc.versioning.dao.types.Version;
9 import org.openecomp.sdcrests.conflict.rest.Conflicts;
10 import org.openecomp.sdcrests.conflict.rest.mapping.MapConflictToDto;
11 import org.openecomp.sdcrests.conflict.rest.mapping.MapDtoToConflictResolution;
12 import org.openecomp.sdcrests.conflict.rest.mapping.MapItemVersionConflictToDto;
13 import org.openecomp.sdcrests.conflict.types.ConflictDto;
14 import org.openecomp.sdcrests.conflict.types.ConflictResolutionDto;
15 import org.openecomp.sdcrests.conflict.types.ItemVersionConflictDto;
16 import org.springframework.context.annotation.Scope;
17 import org.springframework.stereotype.Service;
18
19 import javax.inject.Named;
20 import javax.ws.rs.core.Response;
21
22 @Named
23 @Service("conflicts")
24 @Scope(value = "prototype")
25 public class ConflictsImpl implements Conflicts {
26
27   @Override
28   public Response getConflict(String itemId, String versionId, String user) {
29
30     ConflictsManager conflictsManager = ConflictsManagerFactory.getInstance().createInterface();
31     ItemVersionConflict itemVersionConflict = conflictsManager.getConflict
32         (itemId, new Version(versionId));
33     ItemVersionConflictDto result = (new MapItemVersionConflictToDto()).applyMapping
34         (itemVersionConflict, ItemVersionConflictDto.class);
35     return Response.ok(result).build();
36   }
37
38   @Override
39   public Response getConflict(String itemId, String versionId, String conflictId, String user) {
40     ConflictsManager conflictsManager = ConflictsManagerFactory.getInstance().createInterface();
41     Conflict conflict = conflictsManager.getConflict(itemId, new Version(versionId), conflictId);
42
43     ConflictDto result = new MapConflictToDto().applyMapping(conflict, ConflictDto.class);
44
45     return Response.ok(result).build();
46
47   }
48
49   @Override
50   public Response resolveConflict(ConflictResolutionDto conflictResolution, String itemId,
51                                   String versionId, String conflictId, String user) {
52     ConflictsManager conflictsManager = ConflictsManagerFactory.getInstance().createInterface();
53
54     Version version = new Version(versionId);
55     conflictsManager.resolveConflict(itemId, version, conflictId,
56         new MapDtoToConflictResolution()
57             .applyMapping(conflictResolution, ConflictResolution.class));
58     conflictsManager.finalizeMerge(itemId, version);
59
60     return Response.ok().build();
61   }
62 }