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
5a288691
Commit
5a288691
authored
May 12, 2021
by
Alex Segers
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'AFP-129' into 'dev'
🔀
[AFP-129]
🌱
Orders Collection Seeder See merge request
!27
parents
aeea3190
7f73aef5
Pipeline
#1709
failed with stage
in 39 seconds
Changes
5
Pipelines
1
Show whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
122 additions
and
121 deletions
+122
-121
CustomerAddress.java
...n/java/com/afp/ordermanagement/model/CustomerAddress.java
+1
-29
Item.java
src/main/java/com/afp/ordermanagement/model/Item.java
+1
-5
Order.java
src/main/java/com/afp/ordermanagement/model/Order.java
+9
-85
ManagerSeeder.java
...in/java/com/afp/ordermanagement/seeder/ManagerSeeder.java
+4
-2
OrderSeeder.java
...main/java/com/afp/ordermanagement/seeder/OrderSeeder.java
+107
-0
No files found.
src/main/java/com/afp/ordermanagement/model/CustomerAddress.java
View file @
5a288691
...
...
@@ -2,35 +2,7 @@ package com.afp.ordermanagement.model;
import
lombok.Data
;
import
java.util.Objects
;
@Data
public
class
CustomerAddress
{
private
String
street
;
private
String
city
;
private
String
state
;
private
String
zip
;
@Override
public
boolean
equals
(
Object
o
)
{
if
(
this
==
o
)
return
true
;
if
(!(
o
instanceof
CustomerAddress
))
return
false
;
CustomerAddress
that
=
(
CustomerAddress
)
o
;
return
getStreet
().
equals
(
that
.
getStreet
())
&&
getCity
().
equals
(
that
.
getCity
())
&&
getState
().
equals
(
that
.
getState
())
&&
getZip
().
equals
(
that
.
getZip
());
}
@Override
public
int
hashCode
()
{
return
Objects
.
hash
(
getStreet
(),
getCity
(),
getState
(),
getZip
());
}
@Override
public
String
toString
()
{
return
"CustomerAddress{"
+
"street='"
+
street
+
'\''
+
", city='"
+
city
+
'\''
+
", state='"
+
state
+
'\''
+
", zip='"
+
zip
+
'\''
+
'}'
;
}
private
String
street
,
city
,
state
,
zip
;
}
src/main/java/com/afp/ordermanagement/model/Item.java
View file @
5a288691
...
...
@@ -6,11 +6,7 @@ import java.util.Objects;
@Data
public
class
Item
{
private
String
itemId
;
private
String
itemName
;
private
String
itemSku
;
private
String
itemId
,
itemName
,
itemSku
;
private
int
itemQuantity
;
private
double
itemPrice
;
}
src/main/java/com/afp/ordermanagement/model/Order.java
View file @
5a288691
package
com
.
afp
.
ordermanagement
.
model
;
import
lombok.AllArgsConstructor
;
import
lombok.Builder
;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
import
org.springframework.data.annotation.Id
;
import
org.springframework.data.mongodb.core.mapping.Document
;
import
java.util.List
;
import
java.util.Objects
;
@Data
@AllArgsConstructor
@NoArgsConstructor
@Document
(
collection
=
"orders"
)
public
class
Order
{
public
Order
(
OrderStatus
status
)
{
this
.
orderStatus
=
status
;
}
@Id
private
String
id
;
...
...
@@ -20,91 +23,12 @@ public class Order {
private
String
orderTrackingCode
;
private
OrderStatus
orderStatus
;
private
long
orderCreatedAt
;
private
long
orderUpdatedAt
;
private
String
customerId
;
private
String
customerEmailAddress
;
private
List
<
Item
>
orderItems
;
private
CustomerAddress
customerAddress
;
public
Order
(){
}
public
Order
(
OrderStatus
status
)
{
this
.
orderStatus
=
status
;
}
public
String
getId
()
{
return
id
;
}
public
void
setId
(
String
id
)
{
this
.
id
=
id
;
}
public
String
getOrderTrackingCode
()
{
return
orderTrackingCode
;
}
public
void
setOrderTrackingCode
(
String
orderTrackingCode
)
{
this
.
orderTrackingCode
=
orderTrackingCode
;
}
public
OrderStatus
getOrderStatus
()
{
return
orderStatus
;
}
private
long
orderCreatedAt
,
orderUpdatedAt
;
public
void
setOrderStatus
(
OrderStatus
orderStatus
)
{
this
.
orderStatus
=
orderStatus
;
}
private
String
customerId
,
customerEmailAddress
;
public
long
getOrderCreatedAt
()
{
return
orderCreatedAt
;
}
public
void
setOrderCreatedAt
(
long
orderCreatedAt
)
{
this
.
orderCreatedAt
=
orderCreatedAt
;
}
public
long
getOrderUpdatedAt
()
{
return
orderUpdatedAt
;
}
public
void
setOrderUpdatedAt
(
long
orderUpdatedAt
)
{
this
.
orderUpdatedAt
=
orderUpdatedAt
;
}
public
String
getCustomerId
()
{
return
customerId
;
}
public
void
setCustomerId
(
String
customerId
)
{
this
.
customerId
=
customerId
;
}
public
String
getCustomerEmailAddress
()
{
return
customerEmailAddress
;
}
public
void
setCustomerEmailAddress
(
String
customerEmailAddress
)
{
this
.
customerEmailAddress
=
customerEmailAddress
;
}
public
List
<
Item
>
getOrderItems
()
{
return
orderItems
;
}
public
void
setOrderItems
(
List
<
Item
>
orderItems
)
{
this
.
orderItems
=
orderItems
;
}
public
CustomerAddress
getCustomerAddress
()
{
return
customerAddress
;
}
private
List
<
Item
>
orderItems
;
public
void
setCustomerAddress
(
CustomerAddress
customerAddress
)
{
this
.
customerAddress
=
customerAddress
;
}
private
CustomerAddress
customerAddress
;
}
src/main/java/com/afp/ordermanagement/seeder/ManagerSeeder.java
View file @
5a288691
...
...
@@ -10,11 +10,13 @@ import org.springframework.core.env.Environment;
import
org.springframework.core.env.Profiles
;
import
org.springframework.stereotype.Component
;
import
java.util.Arrays
;
import
java.util.stream.IntStream
;
@Component
public
class
ManagerSeeder
{
// Toggle
static
private
final
boolean
RUN_SEEDER
=
false
;
// FIXME: <- Set to `true` to run seeder on app start-up (in development)
@Autowired
ManagerRepository
managerRepository
;
...
...
@@ -36,7 +38,7 @@ public class ManagerSeeder {
@EventListener
public
void
seedManagers
(
ContextRefreshedEvent
event
)
{
// Only generate seeds if in development environment
if
(
isEnvDevelopment
())
{
if
(
isEnvDevelopment
()
&&
RUN_SEEDER
&&
SEED_COUNT
>
0
)
{
managerRepository
.
deleteAll
()
.
subscribe
();
...
...
src/main/java/com/afp/ordermanagement/seeder/OrderSeeder.java
0 → 100644
View file @
5a288691
package
com
.
afp
.
ordermanagement
.
seeder
;
import
com.afp.ordermanagement.model.CustomerAddress
;
import
com.afp.ordermanagement.model.Item
;
import
com.afp.ordermanagement.model.Order
;
import
com.afp.ordermanagement.model.OrderStatus
;
import
com.afp.ordermanagement.repository.OrderRepository
;
import
com.github.javafaker.Faker
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.context.event.ContextRefreshedEvent
;
import
org.springframework.context.event.EventListener
;
import
org.springframework.core.env.Environment
;
import
org.springframework.core.env.Profiles
;
import
org.springframework.stereotype.Component
;
import
java.util.List
;
import
java.util.stream.Collectors
;
import
java.util.stream.IntStream
;
import
java.util.stream.Stream
;
@Component
public
class
OrderSeeder
{
// Toggle
static
private
final
boolean
RUN_SEEDER
=
false
;
// FIXME: <- Set to `true` to run seeder on app start-up (in development)
@Autowired
OrderRepository
orderRepository
;
@Autowired
Faker
faker
;
@Autowired
Environment
env
;
// Verify that the current environment is NOT production or test
boolean
isEnvDevelopment
()
{
return
env
.
acceptsProfiles
(
Profiles
.
of
(
"default"
,
"dev"
,
"development"
,
"local"
));
}
static
private
Stream
<
String
>
CUSTOMER_USERNAMES
=
Stream
.
of
(
"nrobinson"
,
"rsara"
,
"agannamaneni"
,
"rsayannagari"
,
// Superiors
"ccottier"
,
"kmuldoon"
,
"nmoosapet"
,
"spangburn"
,
"xlu"
,
// ECom Team
"asegers"
,
"dbhuller"
,
"earndt"
,
"kkaminski"
,
"svalencia"
,
"vivaddadhi"
// OMan Team
);
// Create order seeds as soon as app is up and running
@EventListener
public
void
seedOrders
(
ContextRefreshedEvent
event
)
{
// Only generate seeds if in development environment
if
(
isEnvDevelopment
()
&&
RUN_SEEDER
)
{
orderRepository
.
deleteAll
()
.
subscribe
();
CUSTOMER_USERNAMES
.
forEach
(
username
->
{
String
email
=
String
.
format
(
"%s@nisum.com"
,
username
);
orderRepository
.
insert
(
generateOrder
(
email
))
.
subscribe
();
});
}
}
private
Order
generateOrder
(
String
email
){
OrderStatus
randStatus
=
OrderStatus
.
values
()[
faker
.
number
().
numberBetween
(
0
,
2
)];
// exclusive range
Order
order
=
new
Order
(
randStatus
);
order
.
setOrderTrackingCode
(
faker
.
number
().
digits
(
27
));
long
unixTime
=
System
.
currentTimeMillis
();
order
.
setOrderCreatedAt
(
unixTime
);
order
.
setOrderUpdatedAt
(
unixTime
);
order
.
setCustomerId
(
faker
.
number
().
digits
(
12
));
order
.
setCustomerEmailAddress
(
email
);
// Order items
int
randOrderCount
=
faker
.
number
().
numberBetween
(
1
,
10
);
List
<
Item
>
orderItems
=
IntStream
.
range
(
0
,
randOrderCount
)
.
mapToObj
(
n
->
generateItem
())
.
collect
(
Collectors
.
toList
());
order
.
setOrderItems
(
orderItems
);
// Order address
order
.
setCustomerAddress
(
generateOrderAddress
());
return
order
;
}
private
Item
generateItem
(){
Item
item
=
new
Item
();
item
.
setItemId
(
faker
.
number
().
digits
(
12
));
item
.
setItemName
(
faker
.
commerce
().
productName
());
item
.
setItemSku
(
faker
.
random
().
hex
(
12
));
item
.
setItemQuantity
(
faker
.
number
().
numberBetween
(
1
,
30
));
item
.
setItemPrice
(
faker
.
number
().
randomDouble
(
2
,
5
,
1000
));
return
item
;
}
private
CustomerAddress
generateOrderAddress
(){
CustomerAddress
address
=
new
CustomerAddress
();
address
.
setStreet
(
faker
.
address
().
streetAddress
());
address
.
setCity
(
faker
.
address
().
city
());
String
stateAbbr
=
faker
.
address
().
stateAbbr
();
address
.
setState
(
stateAbbr
);
address
.
setZip
(
faker
.
address
().
zipCode
());
return
address
;
}
}
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