Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
A
awa-w5d5-microservices
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
0
Merge Requests
0
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
StudentAddressDetails
awa-w5d5-microservices
Commits
84039c52
Commit
84039c52
authored
Apr 02, 2021
by
dbhuller
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
adds exception package, student address controller and student address service
parent
4c2305c0
Changes
8
Hide whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
109 additions
and
8 deletions
+109
-8
build.gradle
student-address-service/build.gradle
+4
-0
StudentAddressController.java
...ntaddressservice/controller/StudentAddressController.java
+27
-0
ErrorDetails.java
...student/studentaddressservice/exception/ErrorDetails.java
+40
-0
GlobalExceptionHandler.java
...udentaddressservice/exception/GlobalExceptionHandler.java
+16
-0
ResourceNotFoundException.java
...ntaddressservice/exception/ResourceNotFoundException.java
+12
-0
StudentAddress.java
...e/student/studentaddressservice/model/StudentAddress.java
+1
-1
StudentAddressService.java
.../studentaddressservice/service/StudentAddressService.java
+4
-2
studentaddress.sql
...ent-address-service/src/main/resources/studentaddress.sql
+5
-5
No files found.
student-address-service/build.gradle
View file @
84039c52
...
...
@@ -16,6 +16,10 @@ dependencies {
implementation
'org.springframework.boot:spring-boot-starter-web'
implementation
'org.springframework.boot:spring-boot-starter-data-jpa'
testImplementation
'org.springframework.boot:spring-boot-starter-test'
runtimeOnly
'com.h2database:h2'
testImplementation
'com.h2database:h2'
}
test
{
...
...
student-address-service/src/main/java/service/student/studentaddressservice/controller/StudentAddressController.java
0 → 100644
View file @
84039c52
package
service
.
student
.
studentaddressservice
.
controller
;
import
org.apache.coyote.Response
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.http.ResponseEntity
;
import
org.springframework.web.bind.annotation.*
;
import
service.student.studentaddressservice.exception.ResourceNotFoundException
;
import
service.student.studentaddressservice.model.StudentAddress
;
import
service.student.studentaddressservice.service.StudentAddressService
;
@CrossOrigin
(
origins
=
"*"
)
@RestController
@RequestMapping
(
"/api/v1"
)
public
class
StudentAddressController
{
@Autowired
StudentAddressService
studentAddressService
;
@GetMapping
(
"/studentaddress/{email}"
)
public
ResponseEntity
<
StudentAddress
>
getStudentAddress
(
@PathVariable
(
"email"
)
String
email
)
throws
ResourceNotFoundException
{
StudentAddress
studentAddress
=
studentAddressService
.
getStudentAddressByEmail
(
email
).
orElseThrow
(()
->
new
ResourceNotFoundException
(
"Email not found: "
+
email
));
return
ResponseEntity
.
ok
(
studentAddress
);
}
}
student-address-service/src/main/java/service/student/studentaddressservice/exception/ErrorDetails.java
0 → 100644
View file @
84039c52
package
service
.
student
.
studentaddressservice
.
exception
;
import
java.util.Date
;
public
class
ErrorDetails
{
private
Date
timeStamp
;
private
String
message
;
private
String
details
;
public
ErrorDetails
(
Date
timeStamp
,
String
message
,
String
details
)
{
this
.
timeStamp
=
timeStamp
;
this
.
message
=
message
;
this
.
details
=
details
;
}
public
Date
getTimeStamp
()
{
return
timeStamp
;
}
public
void
setTimeStamp
(
Date
timeStamp
)
{
this
.
timeStamp
=
timeStamp
;
}
public
String
getMessage
()
{
return
message
;
}
public
void
setMessage
(
String
message
)
{
this
.
message
=
message
;
}
public
String
getDetails
()
{
return
details
;
}
public
void
setDetails
(
String
details
)
{
this
.
details
=
details
;
}
}
student-address-service/src/main/java/service/student/studentaddressservice/exception/GlobalExceptionHandler.java
0 → 100644
View file @
84039c52
package
service
.
student
.
studentaddressservice
.
exception
;
import
org.springframework.http.HttpStatus
;
import
org.springframework.http.ResponseEntity
;
import
org.springframework.web.context.request.WebRequest
;
import
org.springframework.web.servlet.mvc.method.annotation.ResponseEntityExceptionHandler
;
import
java.util.Date
;
public
class
GlobalExceptionHandler
extends
ResponseEntityExceptionHandler
{
public
ResponseEntity
<?>
resourceNotFoundException
(
ResourceNotFoundException
e
,
WebRequest
webRequest
)
{
ErrorDetails
errorDetails
=
new
ErrorDetails
(
new
Date
(),
e
.
getMessage
(),
webRequest
.
getDescription
(
false
));
return
new
ResponseEntity
<>(
errorDetails
,
HttpStatus
.
NOT_FOUND
);
}
}
student-address-service/src/main/java/service/student/studentaddressservice/exception/ResourceNotFoundException.java
0 → 100644
View file @
84039c52
package
service
.
student
.
studentaddressservice
.
exception
;
import
org.springframework.http.HttpStatus
;
import
org.springframework.web.bind.annotation.ResponseStatus
;
@ResponseStatus
(
value
=
HttpStatus
.
NOT_FOUND
)
public
class
ResourceNotFoundException
extends
Exception
{
public
ResourceNotFoundException
(
String
message
)
{
super
(
message
);
}
}
student-address-service/src/main/java/service/student/studentaddressservice/model/StudentAddress.java
View file @
84039c52
...
...
@@ -10,7 +10,7 @@ public class StudentAddress {
@GeneratedValue
(
strategy
=
GenerationType
.
IDENTITY
)
private
Long
id
;
@Id
//
@Id
private
String
email
;
private
String
state
;
...
...
student-address-service/src/main/java/service/student/studentaddressservice/service/StudentAddressService.java
View file @
84039c52
...
...
@@ -6,6 +6,7 @@ import org.springframework.data.domain.Example;
import
org.springframework.stereotype.Repository
;
import
org.springframework.stereotype.Service
;
import
service.student.studentaddressservice.StudentAddressServiceApplication
;
import
service.student.studentaddressservice.exception.ResourceNotFoundException
;
import
service.student.studentaddressservice.model.StudentAddress
;
import
service.student.studentaddressservice.repository.StudentAddressRepository
;
...
...
@@ -29,9 +30,10 @@ public class StudentAddressService {
return
studentAddressRepository
.
save
(
studentAddressDetails
);
}
public
StudentAddress
updateStudentAddress
(
StudentAddress
studentAddressDetails
,
String
email
)
{
public
StudentAddress
updateStudentAddress
(
StudentAddress
studentAddressDetails
,
String
email
)
throws
ResourceNotFoundException
{
StudentAddress
studentAddressToUpdate
=
getStudentAddressByEmail
(
email
).
orElseThrow
(()
->
new
NullPointerException
(
"Email not found: "
+
email
));
//TEMPORARY FIX
getStudentAddressByEmail
(
email
).
orElseThrow
(()
->
new
ResourceNotFoundException
(
"Email Not found: "
+
email
));
studentAddressToUpdate
.
setStreetAddress
(
studentAddressDetails
.
getStreetAddress
());
studentAddressToUpdate
.
setState
(
studentAddressDetails
.
getState
());
studentAddressToUpdate
.
setCity
(
studentAddressDetails
.
getCity
());
...
...
student-address-service/src/main/resources/studentaddress.sql
View file @
84039c52
DROP
TABLE
IF
EXISTS
ADDRESS
;
CREATE
TABLE
ADDRESS
(
ID
INT
AUTO_INCREMENT
PRIMARY
KEY
,
EMAIL
VARCHAR
(
255
)
PRIMARY
KEY
,
ID
INT
AUTO_INCREMENT
NOT
NULL
PRIMARY
KEY
,
EMAIL
VARCHAR
(
255
)
NOT
NULL
,
STREET_ADDRESS
VARCHAR
(
255
)
NOT
NULL
,
STATE
VARCHAR
(
255
)
NOT
NULL
,
CITY
VARCHAR
(
255
)
NOT
NULL
,
...
...
@@ -10,6 +10,6 @@ CREATE TABLE ADDRESS (
APT_NUM
VARCHAR
(
255
)
);
INSERT
INTO
ADDRESS
VALUES
(
1
,
'faker1@fakemail.com'
,
'867 Fake Ln'
,
'CA'
,
'Fremont'
,
'90210'
),
(
2
,
'faker2@fakemail.com'
,
'868 Fake Ln'
,
'CA'
,
'Fremont'
,
'90210'
),
(
3
,
'faker3@fakemail.com'
,
'869 Fake Ln'
,
'CA'
,
'Fremont'
,
'90210'
);
\ No newline at end of file
INSERT
INTO
ADDRESS
VALUES
(
1
,
'faker1@fakemail.com'
,
'867 Fake Ln'
,
'CA'
,
'Fremont'
,
'90210'
,
NULL
),
(
2
,
'faker2@fakemail.com'
,
'868 Fake Ln'
,
'CA'
,
'Fremont'
,
'90210'
,
NULL
),
(
3
,
'faker3@fakemail.com'
,
'869 Fake Ln'
,
'CA'
,
'Fremont'
,
'90210'
,
NULL
);
\ No newline at end of file
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