Skip to content

Commit c33b13a

Browse files
committed
Issue #105
1 parent 11123e8 commit c33b13a

File tree

3 files changed

+33
-15
lines changed

3 files changed

+33
-15
lines changed

pom.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -123,6 +123,7 @@
123123
</exclusion>
124124
</exclusions>
125125
</dependency>
126+
126127
</dependencies>
127128
<build>
128129
<finalName>restfiddle</finalName>

src/main/java/com/restfiddle/controller/rest/ApiController.java

Lines changed: 31 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@
3535
import com.restfiddle.constant.NodeType;
3636
import com.restfiddle.dao.ConversationRepository;
3737
import com.restfiddle.dao.NodeRepository;
38+
import com.restfiddle.dao.RfRequestRepository;
3839
import com.restfiddle.dao.util.ConversationConverter;
3940
import com.restfiddle.dto.ConversationDTO;
4041
import com.restfiddle.dto.NodeStatusResponseDTO;
@@ -59,30 +60,45 @@ public class ApiController {
5960

6061
@Autowired
6162
private NodeRepository nodeRepository;
62-
63+
6364
@Autowired
6465
private ConversationRepository conversationRepository;
6566

67+
@Autowired
68+
private RfRequestRepository rfRequestRepository;
69+
6670
@RequestMapping(value = "/api/processor", method = RequestMethod.POST, headers = "Accept=application/json")
6771
RfResponseDTO requestProcessor(@RequestBody RfRequestDTO rfRequestDTO) {
68-
//GenericHandler handler = requestHandler.getHandler(rfRequestDTO.getMethodType());
72+
Conversation existingConversation = null;
73+
Conversation conversationForLogging = null;
6974

70-
long startTime = System.currentTimeMillis();
75+
// TODO : Get RfRequest Id if present as part of this request and update the existing conversation entity.
76+
// Note : New conversation entity which is getting created below is still required for logging purpose.
7177

72-
RfResponseDTO result = genericHandler.processHttpRequest(rfRequestDTO);
78+
if (rfRequestDTO == null) {
79+
return null;
80+
} else if (rfRequestDTO.getId() != null && rfRequestDTO.getId() > 0) {
81+
RfRequest rfRequest = rfRequestRepository.findOne(rfRequestDTO.getId());
82+
existingConversation = rfRequest.getItem();
83+
}
7384

85+
long startTime = System.currentTimeMillis();
86+
RfResponseDTO result = genericHandler.processHttpRequest(rfRequestDTO);
7487
long endTime = System.currentTimeMillis();
75-
7688
long duration = endTime - startTime;
7789

78-
Conversation conversation = ConversationConverter.convertToEntity(rfRequestDTO, result);
79-
80-
conversation.setDuration(duration);
90+
conversationForLogging = ConversationConverter.convertToEntity(rfRequestDTO, result);
91+
conversationForLogging.setDuration(duration);
8192

82-
// TODO : Support all the databases.
83-
// TODO : Use Item controller here.
8493
try {
85-
conversationRepository.save(conversation);
94+
conversationForLogging = conversationRepository.save(conversationForLogging);
95+
// Note : existingConversation will be null if the request was not saved previously.
96+
if (existingConversation != null) {
97+
existingConversation.setRfRequest(conversationForLogging.getRfRequest());
98+
existingConversation.setRfResponse(conversationForLogging.getRfResponse());
99+
existingConversation.setDuration(duration);
100+
}
101+
86102
} catch (InvalidDataAccessResourceUsageException e) {
87103
throw new ApiException("Please use sql as datasource, some of features are not supported by hsql", e);
88104
}
@@ -91,7 +107,7 @@ RfResponseDTO requestProcessor(@RequestBody RfRequestDTO rfRequestDTO) {
91107
result.setItemDTO(conversationDTO);
92108
return result;
93109
}
94-
110+
95111
/**
96112
* TODO : This API may not work for in-memory database (in some cases).
97113
*/
@@ -101,7 +117,7 @@ List<NodeStatusResponseDTO> runProjectById(@PathVariable("id") Long id) {
101117
logger.debug("Running all requests inside project : " + id);
102118
List<NodeStatusResponseDTO> nodeStatuses = new ArrayList<NodeStatusResponseDTO>();
103119
NodeStatusResponseDTO nodeStatus = null;
104-
120+
105121
List<BaseNode> listOfNodes = nodeRepository.findNodesFromAProject(id);
106122
for (BaseNode baseNode : listOfNodes) {
107123
String nodeType = baseNode.getNodeType();
@@ -119,11 +135,11 @@ List<NodeStatusResponseDTO> runProjectById(@PathVariable("id") Long id) {
119135
rfRequestDTO.setMethodType(methodType);
120136
rfRequestDTO.setApiUrl(apiUrl);
121137
rfRequestDTO.setApiBody(apiBody);
122-
138+
123139
RfResponseDTO rfResponseDTO = requestProcessor(rfRequestDTO);
124140
logger.debug(baseNode.getName() + " ran with status : " + rfResponseDTO.getStatus());
125141
ConversationDTO conversationDTO = rfResponseDTO.getItemDTO();
126-
142+
127143
nodeStatus = new NodeStatusResponseDTO();
128144
nodeStatus.setId(baseNode.getId());
129145
nodeStatus.setName(baseNode.getName());

src/main/resources/static/js/views/tree-view.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -222,6 +222,7 @@ define(function(require) {
222222
console.log(response.get("conversation"));
223223
var conversation = new ConversationModel(
224224
response.get("conversation"));
225+
conversation.set("id", conversation.get("id"));
225226
conversation.set("name", response.get("name"));
226227
conversation.set("description",response.get("description"));
227228
// var conversationView = new

0 commit comments

Comments
 (0)