Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
W
warehouse-management
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
warehouse-management
Commits
fb4761fa
Commit
fb4761fa
authored
May 14, 2021
by
Shanelle Valencia
Browse files
Options
Browse Files
Download
Plain Diff
Fix merge errors
parents
350c2bc5
838e5fb4
Changes
23
Hide whitespace changes
Inline
Side-by-side
Showing
23 changed files
with
216 additions
and
62 deletions
+216
-62
.DS_Store
.DS_Store
+0
-0
.gitignore
.gitignore
+1
-0
README.md
README.md
+29
-14
index.html
frontend/public/index.html
+2
-0
nisum.jpeg
frontend/public/nisum.jpeg
+0
-0
filter.css
frontend/public/stylesheets/filter.css
+5
-5
header.css
frontend/public/stylesheets/header.css
+73
-4
master.css
frontend/public/stylesheets/master.css
+6
-1
order.css
frontend/public/stylesheets/order.css
+1
-1
Image.jsx
frontend/src/components/atoms/Image.jsx
+2
-2
Search.jsx
frontend/src/components/filter/Search.jsx
+11
-12
Dropdown.jsx
frontend/src/components/header/Dropdown.jsx
+13
-0
Header.jsx
frontend/src/components/header/Header.jsx
+8
-3
User.jsx
frontend/src/components/header/User.jsx
+18
-0
OrderButtons.jsx
frontend/src/components/order/OrderButtons.jsx
+9
-7
OrderDetails.jsx
frontend/src/components/order/OrderDetails.jsx
+1
-1
OrderIndexItem.jsx
frontend/src/components/order/OrderIndexItem.jsx
+2
-1
Logout.jsx
frontend/src/components/session/Logout.jsx
+5
-2
orders_reducer.js
frontend/src/reducers/entities/orders_reducer.js
+0
-2
Address.java
...java/com/ascendfinalproject/warehouse/models/Address.java
+3
-4
Item.java
...in/java/com/ascendfinalproject/warehouse/models/Item.java
+5
-2
Session.java
...java/com/ascendfinalproject/warehouse/models/Session.java
+2
-1
User.java
...in/java/com/ascendfinalproject/warehouse/models/User.java
+20
-0
No files found.
.DS_Store
deleted
100644 → 0
View file @
350c2bc5
File deleted
.gitignore
View file @
fb4761fa
...
@@ -3,6 +3,7 @@ target/
...
@@ -3,6 +3,7 @@ target/
!.mvn/wrapper/maven-wrapper.jar
!.mvn/wrapper/maven-wrapper.jar
!**/src/main/**/target/
!**/src/main/**/target/
!**/src/test/**/target/
!**/src/test/**/target/
.DS_Store
### STS ###
### STS ###
.apt_generated
.apt_generated
...
...
README.md
View file @
fb4761fa
...
@@ -17,27 +17,42 @@
...
@@ -17,27 +17,42 @@
---
---
## Details
## Details
#### Schema
### Schemas
#### Warehouse Order
```
```
{
{
_id: String
id: String,
orderId: String
orderId: String,
status: String "unfulfilled" (default) > "fulfilled"/"cancelled"
status: String "RECEIVED" (default) > "FULFILLED"/"CANCELLED",
orderObject?: (will have it on initial Kafka message, not sure if we need to store this)
createdAt: Date,
modifiedAt: Date,
orderItems: List<Item>,
address: String,
}
}
```
```
#### Workflow
#### Item
-
Warehouse Management (WM) expects an Order object (?) from Order Management (OM) on order placement in Kafka.
```
-
On receipt of an Order object, WM will create a warehouse order entry in database with a status of "unfulfilled."
{
itemId: String,
itemName: String,
itemQuantity: int,
itemPrice: float,
itemSku: int,
}
```
### Workflow
-
Warehouse Management (WM) expects an Order object from Order Management (OM) on order creation in Kafka.
-
On receipt of an Order object, WM will create a warehouse order entry in database with a status of
**"RECEIVED"**
.
-
In the WM UI, a warehouse manager will have the ability to fulfill or cancel unfulfilled orders.
-
In the WM UI, a warehouse manager will have the ability to fulfill or cancel unfulfilled orders.
-
When an order is marked
**"
fulfilled"**
or
**"cancelled
"**
, a Kafka message will be sent to be consumed.
-
When an order is marked
**"
FULFILLED"**
or
**"CANCELLED
"**
, a Kafka message will be sent to be consumed.
###
#
UI
### UI
-
Login
-
Login
/Logout
-
Order
status update screen mark orders as fulfilled or cancelled
-
Order
Status and Update orders as
**"FULFILLED"**
or
**"CANCELLED"**
-
Order
s
earch
-
Order
Filter and S
earch
-
Order
information page
-
Order
Details
#### API Documentation
#### API Documentation
https://documenter.getpostman.com/view/7402212/TzRNGATe
https://documenter.getpostman.com/view/7402212/TzRNGATe
frontend/public/index.html
View file @
fb4761fa
...
@@ -10,6 +10,8 @@
...
@@ -10,6 +10,8 @@
content=
"Web site created using create-react-app"
content=
"Web site created using create-react-app"
/>
/>
<link
rel=
"stylesheet"
href=
"./stylesheets/master.css"
>
<link
rel=
"stylesheet"
href=
"./stylesheets/master.css"
>
<link
href=
'http://fonts.googleapis.com/css?family=Lato:400,700'
rel=
'stylesheet'
type=
'text/css'
>
<!--
<!--
manifest.json provides metadata used when your web app is installed on a
manifest.json provides metadata used when your web app is installed on a
user's mobile device or desktop. See https://developers.google.com/web/fundamentals/web-app-manifest/
user's mobile device or desktop. See https://developers.google.com/web/fundamentals/web-app-manifest/
...
...
frontend/public/nisum.jpeg
0 → 100644
View file @
fb4761fa
148 KB
frontend/public/stylesheets/filter.css
View file @
fb4761fa
...
@@ -49,11 +49,11 @@
...
@@ -49,11 +49,11 @@
}
}
.filter-all
:hover
{
.filter-all
:hover
{
background
:
#
2b4162
;
background
:
#
00567D
;
color
:
white
;
color
:
white
;
}
}
.filter-all.selected
{
.filter-all.selected
{
background
:
#
2b4162
;
background
:
#
00567D
;
}
}
.filter-rec
:hover
{
.filter-rec
:hover
{
background
:
#2292A4
;
background
:
#2292A4
;
...
@@ -90,20 +90,20 @@
...
@@ -90,20 +90,20 @@
cursor
:
pointer
;
cursor
:
pointer
;
padding
:
10px
0
;
padding
:
10px
0
;
font-size
:
16px
;
font-size
:
16px
;
font-family
:
"Times New Roman"
,
Times
,
serif
;
font-family
:
'Lato'
,
sans-
serif
;
}
}
.search
>
input
{
.search
>
input
{
padding
:
10px
;
padding
:
10px
;
font-size
:
16px
;
font-size
:
16px
;
font-family
:
"Times New Roman"
,
Times
,
serif
;
font-family
:
'Lato'
,
sans-
serif
;
}
}
.search-btn
:hover
,
.search-btn
:hover
,
.collapse-btn
:hover
,
.collapse-btn
:hover
,
.expand-btn
:hover
{
.expand-btn
:hover
{
color
:
white
;
color
:
white
;
background
:
#
2b4162
;
background
:
#
00567D
;
}
}
.search-select-error
,
.search-select-error
,
...
...
frontend/public/stylesheets/header.css
View file @
fb4761fa
...
@@ -2,21 +2,90 @@
...
@@ -2,21 +2,90 @@
display
:
flex
;
display
:
flex
;
justify-content
:
space-between
;
justify-content
:
space-between
;
align-items
:
center
;
align-items
:
center
;
position
:
relative
;
padding
:
10px
20px
;
padding
:
10px
20px
;
height
:
50px
;
height
:
50px
;
background
:
#
2b4162
;
background
:
#
00567D
;
color
:
#
fff
;
;
color
:
#
EBEBEB
;
font-size
:
28px
;
font-size
:
28px
;
font-weight
:
700
;
font-weight
:
700
;
}
}
.nisum-logo
{
margin-right
:
10px
;
width
:
100px
;
height
:
50px
;
}
.header-module
{
position
:
absolute
;
top
:
0
;
right
:
0
;
left
:
0
;
bottom
:
0
;
display
:
flex
;
justify-content
:
center
;
align-items
:
center
;
}
.header
>
div
{
.header
>
div
{
display
:
flex
;
display
:
flex
;
align-items
:
center
;
align-items
:
center
;
}
}
.header
img
{
.user
{
cursor
:
pointer
;
position
:
relative
;
display
:
flex
;
align-items
:
center
;
font-size
:
20px
;
padding
:
10px
;
}
.user
:hover
{
color
:
#CCCDCF
;
}
.user
img
{
margin-right
:
10px
;
margin-right
:
10px
;
width
:
32px
;
width
:
32px
;
height
:
32px
;
width
:
32px
;
border-radius
:
50%
;
}
.dropdown
{
cursor
:
auto
;
width
:
100%
;
position
:
absolute
;
display
:
flex
;
flex-direction
:
column
;
background
:
white
;
color
:
black
;
padding
:
10px
;
border-radius
:
4px
;
;
border
:
1px
solid
black
;
font-size
:
16px
;
font-weight
:
400
;
top
:
30px
;
right
:
10px
;
}
.dropdown
>
*
~
*
{
margin-top
:
10px
;
}
.dropdown
>
*
{
padding
:
5px
10px
;
}
.dropdown
>
*
:hover
{
background
:
#e9ecef
;
}
.logout
{
cursor
:
pointer
;
}
.logout-btn
{
border
:
none
;
}
}
\ No newline at end of file
frontend/public/stylesheets/master.css
View file @
fb4761fa
...
@@ -5,10 +5,15 @@
...
@@ -5,10 +5,15 @@
@import
'./order.css'
;
@import
'./order.css'
;
@import
'./session.css'
;
@import
'./session.css'
;
/* background: #
2b4162
; */
/* background: #
00567D
; */
/* background: #4daa57 */
/* background: #4daa57 */
/* background: #c1292e */
/* background: #c1292e */
/* background: #2292A4; */
/* background: #2292A4; */
/* background: #f5f0f6; */
/* background: #f5f0f6; */
/* background: #acb0bd; */
/* background: #acb0bd; */
body
{
font-family
:
'Lato'
,
sans-serif
;
}
\ No newline at end of file
frontend/public/stylesheets/order.css
View file @
fb4761fa
...
@@ -4,7 +4,7 @@
...
@@ -4,7 +4,7 @@
.order-index
>
h1
{
.order-index
>
h1
{
padding
:
10px
20px
;
padding
:
10px
20px
;
margin-bottom
:
2px
;
margin-bottom
:
2px
;
background
:
#
2b4162
;
background
:
#
00567D
;
color
:
white
;
color
:
white
;
font-size
:
24px
;
font-size
:
24px
;
font-weight
:
700
;
font-weight
:
700
;
...
...
frontend/src/components/atoms/Image.jsx
View file @
fb4761fa
const
Image
=
({
src
})
=>
(
const
Image
=
({
className
,
src
})
=>
(
<
img
src=
{
src
}
alt=
""
/>
<
img
className=
{
className
}
src=
{
src
}
alt=
""
/>
)
)
export
default
Image
;
export
default
Image
;
\ No newline at end of file
frontend/src/components/filter/Search.jsx
View file @
fb4761fa
...
@@ -10,7 +10,10 @@ const Search = ({ orders, setOrdersToShow, setFiltersOn }) => {
...
@@ -10,7 +10,10 @@ const Search = ({ orders, setOrdersToShow, setFiltersOn }) => {
const
[
inputError
,
setInputError
]
=
useState
(
false
);
const
[
inputError
,
setInputError
]
=
useState
(
false
);
const
[
byError
,
setByError
]
=
useState
(
false
);
const
[
byError
,
setByError
]
=
useState
(
false
);
const
searchOptions
=
[
"Warehouse ID"
,
"Order ID"
];
const
searchOptions
=
[
// "Warehouse ID",
"Order ID"
];
const
search
=
()
=>
{
const
search
=
()
=>
{
setInputError
(
false
);
setInputError
(
false
);
...
@@ -24,17 +27,13 @@ const Search = ({ orders, setOrdersToShow, setFiltersOn }) => {
...
@@ -24,17 +27,13 @@ const Search = ({ orders, setOrdersToShow, setFiltersOn }) => {
setByError
(
true
);
setByError
(
true
);
}
else
{
}
else
{
const
searchResult
=
{
allIds
:
[],
byId
:
{}
};
const
searchResult
=
{
allIds
:
[],
byId
:
{}
};
const
searchedOrder
=
orders
.
allIds
.
map
(
id
=>
{
searchBy
===
searchOptions
[
0
]
const
order
=
orders
.
byId
[
id
];
?
orders
.
byId
[
searchInput
]
if
(
order
.
orderId
.
toLowerCase
().
includes
(
searchInput
.
toLowerCase
()))
{
:
searchBy
===
searchOptions
[
1
]
searchResult
.
allIds
.
push
(
id
);
?
orders
.
byOrderId
[
searchInput
]
searchResult
.
byId
[
id
]
=
orders
.
byId
[
id
];
:
null
;
}
})
if
(
searchedOrder
)
{
searchResult
.
allIds
.
push
(
searchedOrder
.
id
);
searchResult
.
byId
[
searchedOrder
.
id
]
=
searchedOrder
;
}
if
(
searchBy
.
length
)
{
if
(
searchBy
.
length
)
{
setOrdersToShow
(
searchResult
);
setOrdersToShow
(
searchResult
);
}
}
...
...
frontend/src/components/header/Dropdown.jsx
0 → 100644
View file @
fb4761fa
import
Logout
from
"../session/Logout"
const
Dropdown
=
({
})
=>
{
return
(
<
div
className=
"dropdown"
>
<
div
>
Profile
</
div
>
<
Logout
/>
</
div
>
)
}
export
default
Dropdown
;
\ No newline at end of file
frontend/src/components/header/Header.jsx
View file @
fb4761fa
import
{
connect
}
from
"react-redux"
;
import
{
connect
}
from
"react-redux"
;
import
Image
from
"../atoms/Image"
;
import
Image
from
"../atoms/Image"
;
import
Logout
from
"../session/Logout"
;
import
Logout
from
"../session/Logout"
;
import
User
from
"./User"
;
const
Header
=
({
isLoggedIn
,
logout
})
=>
{
const
Header
=
({
isLoggedIn
,
user
,
logout
})
=>
{
return
(
return
(
<
div
className=
"header"
>
<
div
className=
"header"
>
<
div
>
<
div
>
<
Image
src=
"./logo.svg"
/>
<
Image
className=
"nisum-logo"
src=
"./nisum.jpeg"
/>
</
div
>
{
/* <div>Ascend</div> */
}
<
div
className=
"header-module"
>
<
div
>
Warehouse Management
</
div
>
<
div
>
Warehouse Management
</
div
>
</
div
>
</
div
>
{
isLoggedIn
?
<
Logout
onClick=
{
logout
}
/>
:
null
}
<
div
>
{
isLoggedIn
?
<
User
user=
{
user
.
user
}
/>
:
null
}
</
div
>
</
div
>
</
div
>
);
);
};
};
const
mapStateToProps
=
(
state
)
=>
({
const
mapStateToProps
=
(
state
)
=>
({
isLoggedIn
:
state
.
session
.
isAuthenticated
,
isLoggedIn
:
state
.
session
.
isAuthenticated
,
user
:
state
.
session
.
user
,
});
});
const
mapDispatchToProps
=
(
dispatch
)
=>
({});
const
mapDispatchToProps
=
(
dispatch
)
=>
({});
...
...
frontend/src/components/header/User.jsx
0 → 100644
View file @
fb4761fa
import
{
useState
}
from
"react"
;
import
Image
from
"../atoms/Image"
;
import
Dropdown
from
"./Dropdown"
;
const
User
=
({
user
})
=>
{
const
[
showDropdown
,
setShowDropdown
]
=
useState
(
false
);
return
(
<
div
className=
"user"
onClick=
{
()
=>
setShowDropdown
(
!
showDropdown
)
}
>
<
Image
src=
{
user
.
imageUrl
}
/>
<
div
>
{
user
.
givenName
}
</
div
>
{
showDropdown
?
<
Dropdown
/>
:
null
}
</
div
>
);
}
export
default
User
;
\ No newline at end of file
frontend/src/components/order/OrderButtons.jsx
View file @
fb4761fa
...
@@ -5,19 +5,21 @@ import Button from "../atoms/Button";
...
@@ -5,19 +5,21 @@ import Button from "../atoms/Button";
const
OrderButtons
=
({
order
,
editOrder
})
=>
{
const
OrderButtons
=
({
order
,
editOrder
})
=>
{
const
FULFILLED
=
"FULFILLED"
;
const
CANCELLED
=
"CANCELLED"
;
const
handleUpdate
=
(
action
)
=>
{
const
handleUpdate
=
(
action
)
=>
{
console
.
log
(
action
);
if
(
action
===
FULFILLED
)
{
if
(
action
===
"FULFILL"
)
{
editOrder
({
...
order
,
status
:
FULFILLED
});
editOrder
({
...
order
,
status
:
"FULFILLED"
});
}
else
if
(
action
===
CANCELLED
)
{
}
else
if
(
action
===
"CANCEL"
)
{
editOrder
({
...
order
,
status
:
CANCELLED
});
editOrder
({
...
order
,
status
:
"CANCELLED"
});
}
}
};
};
return
(
return
(
<
div
className=
"oii-buttons"
>
<
div
className=
"oii-buttons"
>
<
Button
className=
"fulfill-btn"
onClick=
{
()
=>
handleUpdate
(
"FULFILL"
)
}
text=
"Fulfill"
/>
<
Button
className=
"fulfill-btn"
onClick=
{
()
=>
handleUpdate
(
FULFILLED
)
}
text=
"Fulfill"
/>
<
Button
className=
"cancel-btn"
onClick=
{
()
=>
handleUpdate
(
"CANCEL"
)
}
text=
"Cancel"
/>
<
Button
className=
"cancel-btn"
onClick=
{
()
=>
handleUpdate
(
CANCELLED
)
}
text=
"Cancel"
/>
</
div
>
</
div
>
);
);
};
};
...
...
frontend/src/components/order/OrderDetails.jsx
View file @
fb4761fa
...
@@ -50,7 +50,7 @@ const OrderDetails = ({ order, showDetails }) => {
...
@@ -50,7 +50,7 @@ const OrderDetails = ({ order, showDetails }) => {
))
}
))
}
</
tbody
>
</
tbody
>
</
table
>
</
table
>
{
`Warehouse Order #: ${order.id}`
}
{
/* {`Warehouse Order #: ${order.id}`} */
}
</
div
>
</
div
>
</
div
>
</
div
>
);
);
...
...
frontend/src/components/order/OrderIndexItem.jsx
View file @
fb4761fa
...
@@ -11,6 +11,7 @@ const OrderIndexItem = ({
...
@@ -11,6 +11,7 @@ const OrderIndexItem = ({
setExpandAll
,
setExpandAll
,
})
=>
{
})
=>
{
const
{
orderId
,
status
}
=
order
;
const
{
orderId
,
status
}
=
order
;
const
idToShow
=
orderId
.
slice
(
-
7
).
toUpperCase
();
const
[
showDetails
,
setShowDetails
]
=
useState
(
false
);
const
[
showDetails
,
setShowDetails
]
=
useState
(
false
);
...
@@ -44,7 +45,7 @@ const OrderIndexItem = ({
...
@@ -44,7 +45,7 @@ const OrderIndexItem = ({
className=
{
`oii-drop ${showDetails ? "rotate" : ""}`
}
className=
{
`oii-drop ${showDetails ? "rotate" : ""}`
}
onClick=
{
handleDropDown
}
onClick=
{
handleDropDown
}
/>
/>
<
div
className=
"oii-num"
>
{
`Order #: ${
orderId
}`
}
</
div
>
<
div
className=
"oii-num"
>
{
`Order #: ${
idToShow
}`
}
</
div
>
</
div
>
</
div
>
{
actions
}
{
actions
}
</
div
>
</
div
>
...
...
frontend/src/components/session/Logout.jsx
View file @
fb4761fa
...
@@ -11,11 +11,14 @@ const Logout = ({ logout }) => {
...
@@ -11,11 +11,14 @@ const Logout = ({ logout }) => {
};
};
return
(
return
(
<
div
>
<
div
className=
"logout"
>
{
/* Logout */
}
<
GoogleLogout
<
GoogleLogout
clientId=
{
clientId
}
clientId=
{
clientId
}
buttonText=
"Logout"
// buttonText="Logout"
className=
"logout-btn"
onLogoutSuccess=
{
responseGoogle
}
onLogoutSuccess=
{
responseGoogle
}
render=
{
props
=>
(<
div
onClick=
{
props
.
onClick
}
>
Logout
</
div
>)
}
/>
/>
</
div
>
</
div
>
);
);
...
...
frontend/src/reducers/entities/orders_reducer.js
View file @
fb4761fa
...
@@ -17,12 +17,10 @@ const OrdersReducer = (oldState = initialState, action) => {
...
@@ -17,12 +17,10 @@ const OrdersReducer = (oldState = initialState, action) => {
const
orderState
=
{
const
orderState
=
{
byId
:
{},
byId
:
{},
allIds
:
[],
allIds
:
[],
byOrderId
:
{},
};
};
action
.
orders
.
forEach
(
order
=>
{
action
.
orders
.
forEach
(
order
=>
{
orderState
.
allIds
.
push
(
order
.
id
);
orderState
.
allIds
.
push
(
order
.
id
);
orderState
.
byId
[
order
.
id
]
=
order
;
orderState
.
byId
[
order
.
id
]
=
order
;
orderState
.
byOrderId
[
order
.
orderId
]
=
order
;
})
})
return
orderState
;
return
orderState
;
case
UPDATE_ORDER
:
case
UPDATE_ORDER
:
...
...
src/main/java/com/ascendfinalproject/warehouse/models/Address.java
View file @
fb4761fa
...
@@ -9,15 +9,14 @@ import lombok.ToString;
...
@@ -9,15 +9,14 @@ import lombok.ToString;
@ToString
@ToString
public
class
Address
{
public
class
Address
{
public
Address
()
{
}
private
String
street
;
private
String
street
;
private
String
city
;
private
String
city
;
private
String
state
;
private
String
state
;
private
String
zip
;
private
String
zip
;
public
Address
()
{
}
public
Address
(
String
street
,
String
city
,
String
state
,
String
zip
)
{
public
Address
(
String
street
,
String
city
,
String
state
,
String
zip
)
{
this
.
street
=
street
;
this
.
street
=
street
;
this
.
city
=
city
;
this
.
city
=
city
;
...
...
src/main/java/com/ascendfinalproject/warehouse/models/Item.java
View file @
fb4761fa
...
@@ -14,10 +14,13 @@ public class Item {
...
@@ -14,10 +14,13 @@ public class Item {
private
String
itemId
;
private
String
itemId
;
private
String
itemName
;
private
String
itemName
;
private
int
itemQuantity
;
private
int
itemQuantity
;
private
double
itemPrice
;
private
float
itemPrice
;
private
String
itemSku
;
private
String
itemSku
;
public
Item
(
String
itemId
,
String
itemName
,
int
itemQuantity
,
double
itemPrice
,
String
itemSku
)
{
public
Item
()
{
}
public
Item
(
String
itemId
,
String
itemName
,
int
itemQuantity
,
float
itemPrice
,
String
itemSku
)
{
this
.
itemId
=
itemId
;
this
.
itemId
=
itemId
;
this
.
itemName
=
itemName
;
this
.
itemName
=
itemName
;
this
.
itemQuantity
=
itemQuantity
;
this
.
itemQuantity
=
itemQuantity
;
...
...
src/main/java/com/ascendfinalproject/warehouse/models/Session.java
View file @
fb4761fa
...
@@ -8,6 +8,7 @@ import org.springframework.data.annotation.Id;
...
@@ -8,6 +8,7 @@ import org.springframework.data.annotation.Id;
@Setter
@Setter
public
class
Session
{
public
class
Session
{
@Id
private
String
token
;
private
String
token
;
private
User
user
;
}
}
src/main/java/com/ascendfinalproject/warehouse/models/User.java
0 → 100644
View file @
fb4761fa
package
com
.
ascendfinalproject
.
warehouse
.
models
;
import
lombok.Getter
;
import
lombok.Setter
;
@Getter
@Setter
public
class
User
{
private
String
email
;
private
String
familyName
;
private
String
givenName
;
private
String
googleId
;
private
String
imageUrl
;
private
String
name
;
public
User
()
{
}
}
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