Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
O
order-management-backend
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
1
Merge Requests
1
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Ascend
order-management-backend
Commits
1095d6fa
Commit
1095d6fa
authored
May 11, 2021
by
Shanelle Valencia
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
[AFP-53]
🚧
Fix status update issues to update all other fields of order [
@svalencia
]
parent
c4da26ab
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
44 additions
and
20 deletions
+44
-20
OrderController.java
...a/com/afp/ordermanagement/controller/OrderController.java
+2
-0
Receiver.java
...om/afp/ordermanagement/reactivekafkaservice/Receiver.java
+39
-20
OrderRepository.java
...a/com/afp/ordermanagement/repository/OrderRepository.java
+2
-0
OrderService.java
...in/java/com/afp/ordermanagement/service/OrderService.java
+1
-0
No files found.
src/main/java/com/afp/ordermanagement/controller/OrderController.java
View file @
1095d6fa
...
...
@@ -36,12 +36,14 @@ public class OrderController {
return
orderService
.
createOrder
(
orderObject
);
}
@GetMapping
(
"/orders"
)
@CrossOrigin
public
Flux
<
Order
>
getAllOrders
(){
return
orderService
.
getAllOrders
();
}
@GetMapping
(
"/orders/{orderId}"
)
@CrossOrigin
public
Mono
<
Order
>
getOrderById
(
@PathVariable
(
"orderId"
)
String
orderId
)
{
...
...
src/main/java/com/afp/ordermanagement/reactivekafkaservice/Receiver.java
View file @
1095d6fa
...
...
@@ -2,6 +2,7 @@ package com.afp.ordermanagement.reactivekafkaservice;
import
com.afp.ordermanagement.model.Order
;
import
com.afp.ordermanagement.model.OrderStatus
;
import
com.afp.ordermanagement.repository.OrderRepository
;
import
com.afp.ordermanagement.service.OrderService
;
import
com.fasterxml.jackson.databind.ObjectMapper
;
import
lombok.extern.slf4j.Slf4j
;
...
...
@@ -29,6 +30,9 @@ public class Receiver {
@Autowired
private
OrderService
orderService
;
@Autowired
private
OrderRepository
orderRepository
;
@EventListener
(
ApplicationStartedEvent
.
class
)
...
...
@@ -50,7 +54,11 @@ public class Receiver {
Map
<
String
,
String
>
orderStatus
=
objectMapper
.
readValue
(
orderStatusStr
,
Map
.
class
);
String
id
=
orderStatus
.
get
(
"id"
);
String
status
=
orderStatus
.
get
(
"orderStatus"
).
toUpperCase
(
Locale
.
ROOT
);
updateOrderStatus
(
id
,
status
);
// updateOrderStatus(id, status);
Order
newOrder
=
new
Order
(
OrderStatus
.
valueOf
(
status
));
Mono
<
Order
>
updateOrder
=
orderService
.
updateOrderByOrderId
(
id
,
newOrder
);
updateOrder
.
subscribe
();
log
.
info
(
"orderStatus: {}"
,
orderStatus
);
}
catch
(
Exception
e
)
{
log
.
error
(
"Caught error"
,
e
);
...
...
@@ -58,33 +66,44 @@ public class Receiver {
}
private
void
updateOrderStatus
(
String
orderId
,
String
orderStatus
)
{
if
(
checkExistingOrder
(
orderId
))
{
log
.
info
(
"Updating {} with status {}"
,
orderId
,
orderStatus
);
Order
newOrder
=
new
Order
(
OrderStatus
.
valueOf
(
orderStatus
));
Mono
<
Order
>
updateOrder
=
orderService
.
updateOrderByOrderId
(
orderId
,
newOrder
);
updateOrder
.
subscribe
();
// updateOrder.block(); //subscribe vs block?
}
}
//
private void updateOrderStatus(String orderId, String orderStatus) {
//
if (checkExistingOrder(orderId)) {
//
log.info("Updating {} with status {}", orderId, orderStatus);
//
Order newOrder = new Order(OrderStatus.valueOf(orderStatus));
//
Mono<Order> updateOrder = orderService.updateOrderByOrderId(orderId, newOrder);
//
updateOrder.subscribe();
//
//
updateOrder.block(); //subscribe vs block?
//
}
//
}
private
boolean
checkExistingOrder
(
String
orderId
)
{
Flux
<
Order
>
orders
=
orderService
.
getAllOrders
();
List
<
Order
>
orderList
=
orders
.
collectList
().
block
();
Order
res
=
orderList
.
stream
()
.
filter
(
order
->
orderId
.
equals
(
order
.
getId
()))
.
findAny
()
.
orElse
(
null
);
if
(
res
==
null
)
{
// Flux<Order> orders = orderService.getAllOrders();
// List<Order> orderList = orders.collectList().block();
// Order res = orderList.stream()
// .filter(order -> orderId.equals(order.getId()))
// .findAny()
// .orElse(null);
Mono
<
Order
>
order
=
orderRepository
.
findById
(
orderId
);
// if (res == null) {
// log.error("Order {} not found", orderId);
// return false;
// }
log
.
info
(
"ORDER MONO"
);
log
.
info
(
String
.
valueOf
(
order
));
if
(
order
==
null
)
{
log
.
error
(
"Order {} not found"
,
orderId
);
return
false
;
}
else
{
log
.
info
(
"Order exists on the database"
);
return
true
;
}
log
.
info
(
"Order exists on the database"
);
return
true
;
}
}
src/main/java/com/afp/ordermanagement/repository/OrderRepository.java
View file @
1095d6fa
...
...
@@ -4,9 +4,11 @@ import com.afp.ordermanagement.model.Order;
import
org.springframework.data.mongodb.repository.ReactiveMongoRepository
;
import
org.springframework.stereotype.Repository
;
import
reactor.core.publisher.Flux
;
import
reactor.core.publisher.Mono
;
@Repository
public
interface
OrderRepository
extends
ReactiveMongoRepository
<
Order
,
String
>
{
Flux
<
Order
>
findByCustomerId
(
String
customerId
);
}
src/main/java/com/afp/ordermanagement/service/OrderService.java
View file @
1095d6fa
...
...
@@ -47,6 +47,7 @@ public class OrderService {
existingOrder
.
setOrderTrackingCode
(
newOrder
.
getOrderTrackingCode
());
existingOrder
.
setOrderItems
(
newOrder
.
getOrderItems
());
existingOrder
.
setOrderStatus
(
newOrder
.
getOrderStatus
());
existingOrder
.
setOrderItems
(
newOrder
.
getOrderItems
());
return
orderRepository
.
save
(
existingOrder
);
});
}
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment