From e7608f65560d93802337456a3a75468cc10271f5 Mon Sep 17 00:00:00 2001 From: "github-classroom[bot]" <66690702+github-classroom[bot]@users.noreply.github.com> Date: Tue, 10 Oct 2023 18:57:41 +0000 Subject: [PATCH 01/36] Setting up GitHub Classroom Feedback From bf9fde6864e1feafbede31a5d59e37d658131d4f Mon Sep 17 00:00:00 2001 From: "github-classroom[bot]" <66690702+github-classroom[bot]@users.noreply.github.com> Date: Tue, 10 Oct 2023 18:57:44 +0000 Subject: [PATCH 02/36] add deadline --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 1a88a70..20c9d7c 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,4 @@ +[![Review Assignment Due Date](https://classroom.github.com/assets/deadline-readme-button-24ddc0f5d75046c5622901739e7c5dd533143b0c8e959d652212380cedb1ea36.svg)](https://classroom.github.com/a/iDPpP-d0) # **Java API Assessment** ## **Introduction** From 18255781c53f043354c843200096a94bed0c449d Mon Sep 17 00:00:00 2001 From: Chella Date: Thu, 2 Nov 2023 17:13:29 +0000 Subject: [PATCH 03/36] test complete for get methods for user details. --- .../SelfAssessmentUserDetails.java | 108 ++++++++++++++++ .../SelfAssessmentUserDetailsTest.java | 121 ++++++++++++++++++ 2 files changed, 229 insertions(+) create mode 100644 src/main/java/com/cbfacademy/apiassessment/SelfAssessmentUserDetails.java create mode 100644 src/test/java/com/cbfacademy/apiassessment/SelfAssessmentUserDetailsTest.java diff --git a/src/main/java/com/cbfacademy/apiassessment/SelfAssessmentUserDetails.java b/src/main/java/com/cbfacademy/apiassessment/SelfAssessmentUserDetails.java new file mode 100644 index 0000000..f6091bc --- /dev/null +++ b/src/main/java/com/cbfacademy/apiassessment/SelfAssessmentUserDetails.java @@ -0,0 +1,108 @@ +package com.cbfacademy.apiassessment; + +public class SelfAssessmentUserDetails { + + public String firstName; + private String lastName; + private int yearOfBirth; + private String contactNumber; + private Boolean answer1; + private Boolean answer2; + private Boolean answer3; + private Boolean answer4; + private Boolean answer5; + + // default constructor + + public SelfAssessmentUserDetails() {} + + + public SelfAssessmentUserDetails(String firstName, String lastName, int yearOfBirth, String contactNumber, boolean answer1, boolean answer2, boolean answer3, boolean answer4, boolean answer5) { + + + this.firstName = firstName; + this.lastName = lastName; + this.yearOfBirth = yearOfBirth; + this.contactNumber = contactNumber; + this.answer1 = answer1; + this.answer2 = answer2; + this.answer3 = answer3; + this.answer4 = answer4; + this.answer5 = answer5; + + } + + public String getFirstName() { + + return firstName; + } + + public String getLastName() { + return lastName; + } + + public int getYearOfBirth() { + return yearOfBirth; + } + + public String getContactNumber() { + return contactNumber; + } + + + public boolean getAnswer1() { + return answer1; + } + + public boolean getAnswer2() { + return answer2; + } + + public boolean getAnswer3() { + return answer3; + } + + public boolean getAnswer4() { + return answer4; + } + + public boolean getAnswer5() { + return answer5; + } + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +} + + diff --git a/src/test/java/com/cbfacademy/apiassessment/SelfAssessmentUserDetailsTest.java b/src/test/java/com/cbfacademy/apiassessment/SelfAssessmentUserDetailsTest.java new file mode 100644 index 0000000..93e5d87 --- /dev/null +++ b/src/test/java/com/cbfacademy/apiassessment/SelfAssessmentUserDetailsTest.java @@ -0,0 +1,121 @@ +package com.cbfacademy.apiassessment; + +import static org.junit.jupiter.api.Assertions.assertEquals; + +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.params.ParameterizedTest; +import org.junit.jupiter.params.provider.Arguments; +import org.junit.jupiter.params.provider.MethodSource; + +@DisplayName(value = "The Self Assessment Methods should ") +public class SelfAssessmentUserDetailsTest { + +SelfAssessmentUserDetails userDetails = new SelfAssessmentUserDetails("Jane" , "Doe", 2000, "07590673402", false , false , true , true , true); + + +// Below I am testing the get() method for returning the values; firstName, lastName, yearOfBirth, answer1, answer2, answer3 , answer 4 , answer 5. + +@Test +@DisplayName("returns firstName when get firstName is used") + public void testGetFirstName() { + + + + String firstName = userDetails.getFirstName(); + assertEquals("Jane", firstName); + } + + +@Test +@DisplayName("return lastName when getLastName is used") + public void testGetLastName() { + + + String lastName = userDetails.getLastName(); + assertEquals("Doe", lastName); + } + +@Test +@DisplayName("return yearOfBirth when getYearOfBirth is used") + public void testYearOfBirth() { + + + int yearOfBirth = userDetails.getYearOfBirth(); + assertEquals(2000 , yearOfBirth); + } + + +@Test +@DisplayName("return contactNumber when getContactNumber is used") + public void testGetContactNumber() { + + + String contactNumber = userDetails.getContactNumber(); + assertEquals("07590673402", contactNumber); + } + +// how would I run a test if I want to + +@Test +@DisplayName("return answer1 when getAnswer1 is used") + public void testGetAnswer1() { + + + boolean answer1 = userDetails.getAnswer1(); + assertEquals(false, answer1); + } + +@Test +@DisplayName("return answer2 when getAnswer1 is used") + public void testGetAnswer2() { + + + boolean answer2 = userDetails.getAnswer2(); + assertEquals(false, answer2); + } + +@Test +@DisplayName("return answer3 when getAnswer1 is used") + public void testGetAnswer3() { + + + boolean answer3 = userDetails.getAnswer3(); + assertEquals(true, answer3); + } + +@Test +@DisplayName("return answer3 when getAnswer1 is used") + public void testGetAnswer4() { + + + boolean answer4 = userDetails.getAnswer4(); + assertEquals(true, answer4); + } + +@Test +@DisplayName("return answer3 when getAnswer1 is used") + public void testGetAnswer5() { + + + boolean answer5 = userDetails.getAnswer3(); + assertEquals(true, answer5); + } + + + + + + + + + + + +} + + + + + + From d902d3b9a9c2a4074fd6ab1a6213848482fbc93e Mon Sep 17 00:00:00 2001 From: Chella Date: Sat, 4 Nov 2023 16:10:34 +0000 Subject: [PATCH 04/36] getter and setters method and tests. all passed. --- .../SelfAssessmentUserDetails.java | 84 +++++++--- .../SelfAssessmentUserDetailsTest.java | 147 +++++++++++++----- 2 files changed, 169 insertions(+), 62 deletions(-) diff --git a/src/main/java/com/cbfacademy/apiassessment/SelfAssessmentUserDetails.java b/src/main/java/com/cbfacademy/apiassessment/SelfAssessmentUserDetails.java index f6091bc..0dbc643 100644 --- a/src/main/java/com/cbfacademy/apiassessment/SelfAssessmentUserDetails.java +++ b/src/main/java/com/cbfacademy/apiassessment/SelfAssessmentUserDetails.java @@ -32,43 +32,81 @@ public SelfAssessmentUserDetails(String firstName, String lastName, int yearOfBi } - public String getFirstName() { - - return firstName; - } - - public String getLastName() { + // get method + public String getFirstName() { + return firstName; + } + // set method to allow value of string to be passed as firstName + // contructor for method to allow string to be inputted as value + public void setFirstName(String firstName) { + this.firstName = firstName; + } + + + public String getLastName() { return lastName; - } + } + public void setLastName(String lastName) { + this.lastName = lastName; + } + - public int getYearOfBirth() { + public int getYearOfBirth() { return yearOfBirth; - } - - public String getContactNumber() { - return contactNumber; - } + } + public void setYearOfBirth(int yearOfBirth) { + this.yearOfBirth = yearOfBirth; + } + + public String getContactNumber() { + return contactNumber; + } + public void setContactNumber(String contactNumber) { + this.contactNumber = contactNumber; + } - public boolean getAnswer1() { + + public boolean getAnswer1() { return answer1; - } + } + public void setAnswer1(boolean answer1) { + this.answer1 = answer1; + } - public boolean getAnswer2() { + + public boolean getAnswer2() { return answer2; - } + } + public void setAnswer2(boolean answer2) { + this.answer2 = answer2; + } + - public boolean getAnswer3() { + public boolean getAnswer3() { return answer3; - } + } + public void setAnswer3(boolean answer3) { + this.answer3 = answer3; + } + - public boolean getAnswer4() { + public boolean getAnswer4() { return answer4; - } + } + public void setAnswer4(boolean answer4) { + this.answer4 = answer4; + } + - public boolean getAnswer5() { + public boolean getAnswer5() { return answer5; - } + } + public void setAnswer5(boolean answer5) { + this.answer5 = answer5; + } + + diff --git a/src/test/java/com/cbfacademy/apiassessment/SelfAssessmentUserDetailsTest.java b/src/test/java/com/cbfacademy/apiassessment/SelfAssessmentUserDetailsTest.java index 93e5d87..e8b8073 100644 --- a/src/test/java/com/cbfacademy/apiassessment/SelfAssessmentUserDetailsTest.java +++ b/src/test/java/com/cbfacademy/apiassessment/SelfAssessmentUserDetailsTest.java @@ -16,97 +16,166 @@ public class SelfAssessmentUserDetailsTest { // Below I am testing the get() method for returning the values; firstName, lastName, yearOfBirth, answer1, answer2, answer3 , answer 4 , answer 5. -@Test -@DisplayName("returns firstName when get firstName is used") - public void testGetFirstName() { - - - + @Test + @DisplayName("returns firstName when get firstName is used") + public void testGetFirstName() { String firstName = userDetails.getFirstName(); assertEquals("Jane", firstName); } -@Test -@DisplayName("return lastName when getLastName is used") - public void testGetLastName() { - + @Test + @DisplayName("return lastName when getLastName is used") + public void testGetLastName() { String lastName = userDetails.getLastName(); assertEquals("Doe", lastName); } -@Test -@DisplayName("return yearOfBirth when getYearOfBirth is used") - public void testYearOfBirth() { - + @Test + @DisplayName("return yearOfBirth when getYearOfBirth is used") + public void testYearOfBirth() { int yearOfBirth = userDetails.getYearOfBirth(); assertEquals(2000 , yearOfBirth); } -@Test -@DisplayName("return contactNumber when getContactNumber is used") - public void testGetContactNumber() { - + @Test + @DisplayName("return contactNumber when getContactNumber is used") + public void testGetContactNumber() { String contactNumber = userDetails.getContactNumber(); assertEquals("07590673402", contactNumber); } -// how would I run a test if I want to - -@Test -@DisplayName("return answer1 when getAnswer1 is used") - public void testGetAnswer1() { + @Test + @DisplayName("return answer1 when getAnswer1 is used") + public void testGetAnswer1() { boolean answer1 = userDetails.getAnswer1(); assertEquals(false, answer1); } -@Test -@DisplayName("return answer2 when getAnswer1 is used") - public void testGetAnswer2() { - + @Test + @DisplayName("return answer2 when getAnswer1 is used") + public void testGetAnswer2() { boolean answer2 = userDetails.getAnswer2(); assertEquals(false, answer2); } -@Test -@DisplayName("return answer3 when getAnswer1 is used") - public void testGetAnswer3() { - + @Test + @DisplayName("return answer3 when getAnswer1 is used") + public void testGetAnswer3() { boolean answer3 = userDetails.getAnswer3(); assertEquals(true, answer3); } -@Test -@DisplayName("return answer3 when getAnswer1 is used") - public void testGetAnswer4() { - + @Test + @DisplayName("return answer3 when getAnswer1 is used") + public void testGetAnswer4() { boolean answer4 = userDetails.getAnswer4(); assertEquals(true, answer4); } -@Test -@DisplayName("return answer3 when getAnswer1 is used") - public void testGetAnswer5() { - + @Test + @DisplayName("return answer3 when getAnswer1 is used") + public void testGetAnswer5() { boolean answer5 = userDetails.getAnswer3(); assertEquals(true, answer5); } +// below i am running tests to test the set methods from the Self Assessment user details class + + @Test + @DisplayName("sets value of first name when setFirstName is used") + public void testSetFirstName() { + + userDetails.setFirstName("Chella"); + + String firstName = userDetails.getFirstName(); + assertEquals("Chella", firstName); + } + + + @Test + @DisplayName("sets value of last name when setLastName is used") + public void testSetLastName() { + + userDetails.setLastName("Johnson"); + String lastName = userDetails.getLastName(); + assertEquals("Johnson", lastName); + } + + @Test + @DisplayName("sets value of year of birth when setYearOfBirth is used") + public void testSetYearOfBirth() { + + userDetails.setYearOfBirth(1998); + int yearOfBirth = userDetails.getYearOfBirth(); + assertEquals(1998, yearOfBirth); + } + @Test + @DisplayName("sets value of year of birth when setYearOfBirth is used") + public void testSetContactNumber() { + + userDetails.setContactNumber("07490571681"); + String contactNumber = userDetails.getContactNumber(); + assertEquals("07490571681", contactNumber); + } + @Test + @DisplayName("set value of answer to question one when setAnswer1 is used") + public void testSetAnswer1() { + + userDetails.setAnswer1(false); + boolean answer1 = userDetails.getAnswer1(); + assertEquals(false, answer1); + } + @Test + @DisplayName("set value of answer to question true when setAnswer1 is used") + public void testSetAnswer2() { + + userDetails.setAnswer2(true); + boolean answer2 = userDetails.getAnswer2(); + assertEquals(true, answer2); + } + @Test + @DisplayName("set value of answer to question three when setAnswer1 is used") + public void testSetAnswer3() { + + userDetails.setAnswer3(false); + boolean answer3 = userDetails.getAnswer3(); + assertEquals(false, answer3); + } + + @Test + @DisplayName("set value of answer to question four when setAnswer1 is used") + public void testSetAnswer4() { + + userDetails.setAnswer4(true); + boolean answer4 = userDetails.getAnswer4(); + assertEquals(true, answer4); + } + + @Test + @DisplayName("set value of answer to question five when setAnswer1 is used") + public void testSetAnswer5() { + + userDetails.setAnswer5(true); + boolean answer5 = userDetails.getAnswer5(); + assertEquals(true, answer5); + + } From 829295f3b88189c00701aa1a4e82397e016ca0b4 Mon Sep 17 00:00:00 2001 From: Chella Date: Sat, 4 Nov 2023 16:42:05 +0000 Subject: [PATCH 05/36] toString method added and tested --- .../apiassessment/SelfAssessmentUserDetails.java | 6 +++++- .../apiassessment/SelfAssessmentUserDetailsTest.java | 9 ++++++++- 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/cbfacademy/apiassessment/SelfAssessmentUserDetails.java b/src/main/java/com/cbfacademy/apiassessment/SelfAssessmentUserDetails.java index 0dbc643..53b1c27 100644 --- a/src/main/java/com/cbfacademy/apiassessment/SelfAssessmentUserDetails.java +++ b/src/main/java/com/cbfacademy/apiassessment/SelfAssessmentUserDetails.java @@ -97,7 +97,7 @@ public boolean getAnswer4() { public void setAnswer4(boolean answer4) { this.answer4 = answer4; } - + public boolean getAnswer5() { return answer5; @@ -107,7 +107,11 @@ public void setAnswer5(boolean answer5) { } + // toString merthod to return list of values inputted when called + @Override public String toString() { + return "Self assessment details - {" + firstName + " , " + lastName + " , " + yearOfBirth + " , " + contactNumber + " , " + answer1 + " , " + answer2 + " , " + answer3 + " , " + answer4 + " , " + answer5 + " }"; + } diff --git a/src/test/java/com/cbfacademy/apiassessment/SelfAssessmentUserDetailsTest.java b/src/test/java/com/cbfacademy/apiassessment/SelfAssessmentUserDetailsTest.java index e8b8073..9b53bda 100644 --- a/src/test/java/com/cbfacademy/apiassessment/SelfAssessmentUserDetailsTest.java +++ b/src/test/java/com/cbfacademy/apiassessment/SelfAssessmentUserDetailsTest.java @@ -178,8 +178,15 @@ public void testSetAnswer5() { } +// test that the toString method returns the user inputted recorded. + @Test + @DisplayName("tests the toString method to return the values inputted when called") + public void testToString() { + String expected = "Self assessment details - {Jane , Doe , 2000 , 07590673402 , false , false , true , true , true }"; + String actual = userDetails.toString(); - + assertEquals(expected, actual); + } } From 483123b437218413f9b8c19a998d5a6b31f82a22 Mon Sep 17 00:00:00 2001 From: Chella Date: Sun, 5 Nov 2023 20:17:57 +0000 Subject: [PATCH 06/36] couldnt test method but added them --- .../SelfAssessmentUserDetails.java | 16 +- .../SelfAssessmentUserProgramme.java | 29 ++++ .../SelfAssessmentUserProgrammeFunctions.java | 138 ++++++++++++++++++ .../SelfAssessmentUserDetailsTest.java | 25 +++- ...fAssessmentUserProgrammeFunctionsTest.java | 37 +++++ 5 files changed, 238 insertions(+), 7 deletions(-) create mode 100644 src/main/java/com/cbfacademy/apiassessment/SelfAssessmentUserProgramme.java create mode 100644 src/main/java/com/cbfacademy/apiassessment/SelfAssessmentUserProgrammeFunctions.java create mode 100644 src/test/java/com/cbfacademy/apiassessment/SelfAssessmentUserProgrammeFunctionsTest.java diff --git a/src/main/java/com/cbfacademy/apiassessment/SelfAssessmentUserDetails.java b/src/main/java/com/cbfacademy/apiassessment/SelfAssessmentUserDetails.java index 53b1c27..4a6cdd8 100644 --- a/src/main/java/com/cbfacademy/apiassessment/SelfAssessmentUserDetails.java +++ b/src/main/java/com/cbfacademy/apiassessment/SelfAssessmentUserDetails.java @@ -2,7 +2,8 @@ public class SelfAssessmentUserDetails { - public String firstName; + private String userID; + private String firstName; private String lastName; private int yearOfBirth; private String contactNumber; @@ -17,9 +18,9 @@ public class SelfAssessmentUserDetails { public SelfAssessmentUserDetails() {} - public SelfAssessmentUserDetails(String firstName, String lastName, int yearOfBirth, String contactNumber, boolean answer1, boolean answer2, boolean answer3, boolean answer4, boolean answer5) { + public SelfAssessmentUserDetails(String userID, String firstName, String lastName, int yearOfBirth, String contactNumber, boolean answer1, boolean answer2, boolean answer3, boolean answer4, boolean answer5) { - + this.userID = userID; this.firstName = firstName; this.lastName = lastName; this.yearOfBirth = yearOfBirth; @@ -32,6 +33,15 @@ public SelfAssessmentUserDetails(String firstName, String lastName, int yearOfBi } + + + public String getUserID() { + return userID; + } + public void setUserID(String userID) { + this.userID = userID; + } + // get method public String getFirstName() { return firstName; diff --git a/src/main/java/com/cbfacademy/apiassessment/SelfAssessmentUserProgramme.java b/src/main/java/com/cbfacademy/apiassessment/SelfAssessmentUserProgramme.java new file mode 100644 index 0000000..d0a497b --- /dev/null +++ b/src/main/java/com/cbfacademy/apiassessment/SelfAssessmentUserProgramme.java @@ -0,0 +1,29 @@ +package com.cbfacademy.apiassessment; + +public class SelfAssessmentUserProgramme { + + + public static void main(String[] args) { + + SelfAssessmentUserProgramme userProgramme = new SelfAssessmentUserProgramme(); + + SelfAssessmentUserDetails testUserDetails = new SelfAssessmentUserDetails(); + + + testUserDetails.setUserID("JD1998"); + testUserDetails.setFirstName("Jane"); + testUserDetails.setLastName("Doe"); + testUserDetails.setYearOfBirth(1998); + testUserDetails.setContactNumber("07490685102"); + testUserDetails.setAnswer1(false); + testUserDetails.setAnswer2(false); + testUserDetails.setAnswer3(false); + testUserDetails.setAnswer4(true); + testUserDetails.setAnswer5(true); + + + + + + } +} diff --git a/src/main/java/com/cbfacademy/apiassessment/SelfAssessmentUserProgrammeFunctions.java b/src/main/java/com/cbfacademy/apiassessment/SelfAssessmentUserProgrammeFunctions.java new file mode 100644 index 0000000..f033f51 --- /dev/null +++ b/src/main/java/com/cbfacademy/apiassessment/SelfAssessmentUserProgrammeFunctions.java @@ -0,0 +1,138 @@ +package com.cbfacademy.apiassessment; + +import java.util.LinkedList; +import java.util.Scanner; + +public class SelfAssessmentUserProgrammeFunctions { + + LinkedList listOfSelfAssesementInput; + + public SelfAssessmentUserProgrammeFunctions() { + + listOfSelfAssesementInput = new LinkedList<>(); + } + + public void add(SelfAssessmentUserDetails recordOfDetails) { + + if (!find(recordOfDetails.getUserID())) { + listOfSelfAssesementInput.add(recordOfDetails); + } + else { + System.out.println("Self Assessment Record already exists"); + } + } + + public boolean find(String userID) { + + for(SelfAssessmentUserDetails l : listOfSelfAssesementInput) { + + if (l.getUserID() == userID) { + + System.out.println(l); + return true; + } + } + return false; + } + + public void delete (String recUserID) { + + SelfAssessmentUserDetails recordDelete = null; + + for(SelfAssessmentUserDetails ll : listOfSelfAssesementInput) { + + if (ll.getUserID() == recUserID) { + recordDelete = ll; + } + } + if (recordDelete == null) { + System.out.println("Invalid userID , please try again"); + } + else { + listOfSelfAssesementInput.remove(recordDelete); + System.out.println("Self Assessment User Record Deleted "); + } + } + + public SelfAssessmentUserDetails findRecord(String userID) { + + for (SelfAssessmentUserDetails l : listOfSelfAssesementInput) { + + if (l.getUserID() == userID) { + return l; + } + } + return null; + } + + public void update (String id, Scanner input) { + if (find(id)) { + SelfAssessmentUserDetails userRecord = findRecord(id); + + System.out.print("What is the new User ID number?"); + String userID = input.nextLine(); + + System.out.print("What is the new First Name?"); + String firstName = input.nextLine(); + + System.out.print("What is the new last Name?"); + String lastName = input.nextLine(); + + System.out.print("What is the new year of birth?"); + int yearOfBirth = input.nextInt(); + + System.out.print("What is the new contact number?"); + String contactNumber = input.nextLine(); + + System.out.print("What is the your new answer to Question 1?"); + boolean answer1 = input.nextBoolean(); + + System.out.print("What is the your new answer to Question 2?"); + boolean answer2 = input.nextBoolean(); + + System.out.print("What is the your new answer to Question 3?"); + boolean answer3 = input.nextBoolean(); + + System.out.print("What is the your new answer to Question 4?"); + boolean answer4 = input.nextBoolean(); + + System.out.print("What is the your new answer to Question 5?"); + boolean answer5 = input.nextBoolean(); + + userRecord.setUserID(userID); + userRecord.setFirstName(firstName); + userRecord.setLastName(lastName); + userRecord.setYearOfBirth(yearOfBirth); + userRecord.setContactNumber(contactNumber); + userRecord.setAnswer1(answer1); + userRecord.setAnswer2(answer2); + userRecord.setAnswer3(answer3); + userRecord.setAnswer4(answer4); + userRecord.setAnswer5(answer5); + System.out.println("Self Asssessment User Record Updated Succesfully"); + } + + else { + System.out.println("Self assessment user record not found"); + } + + + + } + } + + + + + + + + + + + + + + + } + diff --git a/src/test/java/com/cbfacademy/apiassessment/SelfAssessmentUserDetailsTest.java b/src/test/java/com/cbfacademy/apiassessment/SelfAssessmentUserDetailsTest.java index 9b53bda..e97b3e8 100644 --- a/src/test/java/com/cbfacademy/apiassessment/SelfAssessmentUserDetailsTest.java +++ b/src/test/java/com/cbfacademy/apiassessment/SelfAssessmentUserDetailsTest.java @@ -4,18 +4,23 @@ import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Test; -import org.junit.jupiter.params.ParameterizedTest; -import org.junit.jupiter.params.provider.Arguments; -import org.junit.jupiter.params.provider.MethodSource; @DisplayName(value = "The Self Assessment Methods should ") public class SelfAssessmentUserDetailsTest { -SelfAssessmentUserDetails userDetails = new SelfAssessmentUserDetails("Jane" , "Doe", 2000, "07590673402", false , false , true , true , true); +SelfAssessmentUserDetails userDetails = new SelfAssessmentUserDetails("CJ01234" , "Jane" , "Doe", 2000, "07590673402", false , false , true , true , true); // Below I am testing the get() method for returning the values; firstName, lastName, yearOfBirth, answer1, answer2, answer3 , answer 4 , answer 5. + + @Test + @DisplayName("return userID when get userID is used") + public void testGetUserID() { + String userID = userDetails.getUserID(); + assertEquals("CJ01234", userID); + } + @Test @DisplayName("returns firstName when get firstName is used") public void testGetFirstName() { @@ -93,6 +98,18 @@ public void testGetAnswer5() { // below i am running tests to test the set methods from the Self Assessment user details class + + + @Test + @DisplayName("sets value of user name when setUserName is used") + public void testSetUserName() { + + userDetails.setUserID("JD12345"); + String userID = userDetails.getUserID(); + assertEquals("JD12345", userID); + } + + @Test @DisplayName("sets value of first name when setFirstName is used") public void testSetFirstName() { diff --git a/src/test/java/com/cbfacademy/apiassessment/SelfAssessmentUserProgrammeFunctionsTest.java b/src/test/java/com/cbfacademy/apiassessment/SelfAssessmentUserProgrammeFunctionsTest.java new file mode 100644 index 0000000..82771a5 --- /dev/null +++ b/src/test/java/com/cbfacademy/apiassessment/SelfAssessmentUserProgrammeFunctionsTest.java @@ -0,0 +1,37 @@ +package com.cbfacademy.apiassessment; + +import org.junit.jupiter.api.DisplayName; + +public class SelfAssessmentUserProgrammeFunctionsTest { + + SelfAssessmentUserProgrammeFunctions programmeFunctions = new SelfAssessmentUserProgrammeFunctions(); + + + @Test + @DisplayName("Testing Add method to check if user details exists if not add it to user detail record") + public void testAddMethodFunctonForValidInput() { + + + + + + + + + } + + + + + + + + + + + + + + + +} From 5d1ef6c94a40dca89a02da94a22b3d46acca3217 Mon Sep 17 00:00:00 2001 From: Chella Date: Mon, 6 Nov 2023 10:58:52 +0000 Subject: [PATCH 07/36] update , display and delete methods not working --- .../apiassessment/SelfAssessmentForm.html | 86 ++++++++++ .../SelfAssessmentUserDetails.java | 2 + .../SelfAssessmentUserProgramme.java | 152 ++++++++++++++++-- .../SelfAssessmentUserProgrammeFunctions.java | 14 +- ...fAssessmentUserProgrammeFunctionsTest.java | 9 +- 5 files changed, 240 insertions(+), 23 deletions(-) create mode 100644 src/main/java/com/cbfacademy/apiassessment/SelfAssessmentForm.html diff --git a/src/main/java/com/cbfacademy/apiassessment/SelfAssessmentForm.html b/src/main/java/com/cbfacademy/apiassessment/SelfAssessmentForm.html new file mode 100644 index 0000000..acaf64c --- /dev/null +++ b/src/main/java/com/cbfacademy/apiassessment/SelfAssessmentForm.html @@ -0,0 +1,86 @@ + + + Activites of Daily Living Self Assessment Form + + +

Activites of Daily Living Self Assessment Form

+ +
+ +
+ + +
+ + +
+ + +

Survey Questions

+
    +
  1. Do you need physical care and support due to difficulties managing with any of the following; personal care, accessing the community, getting in and out of bed, drink and meal prep. + +
  2. + +
  3. Do you have any difficulties ascending and / or descending the stairs? + +
  4. + +
  5. Do you have any difficulties accessing your bathing facilities? + +
  6. + + +
  7. Do you have difficulties accessing your property? + +
  8. + + +
  9. Do you have difficulties transferring on and off the bed, chair, toilet, sofa? + +
  10. +
+ + +
+ + + + \ No newline at end of file diff --git a/src/main/java/com/cbfacademy/apiassessment/SelfAssessmentUserDetails.java b/src/main/java/com/cbfacademy/apiassessment/SelfAssessmentUserDetails.java index 4a6cdd8..cdcde59 100644 --- a/src/main/java/com/cbfacademy/apiassessment/SelfAssessmentUserDetails.java +++ b/src/main/java/com/cbfacademy/apiassessment/SelfAssessmentUserDetails.java @@ -1,5 +1,7 @@ package com.cbfacademy.apiassessment; +// class containing getters and setters for to take input of values + public class SelfAssessmentUserDetails { private String userID; diff --git a/src/main/java/com/cbfacademy/apiassessment/SelfAssessmentUserProgramme.java b/src/main/java/com/cbfacademy/apiassessment/SelfAssessmentUserProgramme.java index d0a497b..5bc5206 100644 --- a/src/main/java/com/cbfacademy/apiassessment/SelfAssessmentUserProgramme.java +++ b/src/main/java/com/cbfacademy/apiassessment/SelfAssessmentUserProgramme.java @@ -1,29 +1,151 @@ package com.cbfacademy.apiassessment; +import java.util.Scanner; + public class SelfAssessmentUserProgramme { public static void main(String[] args) { - SelfAssessmentUserProgramme userProgramme = new SelfAssessmentUserProgramme(); + SelfAssessmentUserProgrammeFunctions userProgramme = new SelfAssessmentUserProgrammeFunctions(); + + SelfAssessmentUserDetails userRecord = new SelfAssessmentUserDetails(); + + + userRecord.setUserID("JD1998"); + userRecord.setFirstName("Jane"); + userRecord.setLastName("Doe"); + userRecord.setYearOfBirth(1998); + userRecord.setContactNumber("07490685102"); + userRecord.setAnswer1(false); + userRecord.setAnswer2(false); + userRecord.setAnswer3(false); + userRecord.setAnswer4(true); + userRecord.setAnswer5(true); + + userProgramme.add(userRecord); + + Scanner input = new Scanner(System.in); + + int option = 0; + + do { + SelfAssessmentProgrammeMenuInterface(); + option = input.nextInt(); + + switch (option) { + + case 1: + + System.out.print("What is your chosen User ID?"); + + String userID = input.nextLine(); + input.nextLine(); + + System.out.print("What is your first name?"); + + String firstName = input.nextLine(); + + System.out.print("What is your last name?"); + + String lastName = input.nextLine(); + + System.out.print("What is your year of birth?"); + + int yearOfBirth = input.nextInt(); + + System.out.print("What is your contact number?"); + + String contactNumber = input.nextLine(); + + System.out.println("Do you need physical care and support due to difficulties managing with any of the following; personal care, accessing the community, getting in and out of bed, drink and meal prep?"); + + boolean answer1 = input.nextBoolean(); + + System.out.println("Do you have any difficulties ascending and / or descending the stairs?"); + boolean answer2 = input.nextBoolean(); + + System.out.println("Do you have any difficulties accessing your bathing facilities?"); + boolean answer3 = input.nextBoolean(); + + + System.out.println("Do you have difficulties accessing your property?"); + boolean answer4 = input.nextBoolean(); + + System.out.println("Do you have difficulties transferring on and off the bed, chair, toilet, sofa?"); + boolean answer5 = input.nextBoolean(); + + userRecord = new SelfAssessmentUserDetails(userID, firstName, lastName, yearOfBirth, contactNumber, answer1, answer2, answer3, answer4, answer5); + + userProgramme.add(userRecord); + System.out.println(userRecord.toString()); + + break; + + case 2: + + System.out.print("What is your user name?"); + String deleteRecord = input.nextLine(); + userProgramme.delete(deleteRecord); + + break; + + case 3: + + System.out.print("What is your user name?"); + String updateRecord = input.nextLine(); + userProgramme.update(updateRecord, input); + + break; + + case 4: + + System.out.print("What is your user name?"); + String findRecord = input.nextLine(); + + if (!userProgramme.find(findRecord)) { + System.out.println("Self assessment record does not exist. Please try again"); + } + + break; + + case 5: + userProgramme.display(); + break; + + case 6: + System.out.println("End of Self Assessment. Thank you for your time"); - SelfAssessmentUserDetails testUserDetails = new SelfAssessmentUserDetails(); + System.out.println("Invalid input please select options 1 to 6"); + System.exit(0); - testUserDetails.setUserID("JD1998"); - testUserDetails.setFirstName("Jane"); - testUserDetails.setLastName("Doe"); - testUserDetails.setYearOfBirth(1998); - testUserDetails.setContactNumber("07490685102"); - testUserDetails.setAnswer1(false); - testUserDetails.setAnswer2(false); - testUserDetails.setAnswer3(false); - testUserDetails.setAnswer4(true); - testUserDetails.setAnswer5(true); + break; + + default: + System.out.println("Invalid input"); + break; + + } + } - + while (option != 6); + } + public static void SelfAssessmentProgrammeMenuInterface() { + + // Printing statements displaying menu on console + System.out.println("Please choose an option below"); + System.out.println("1: Complete Self Assessment"); + System.out.println("2: Delete Users Self Assessment"); + System.out.println("3: Update Self Assessment"); + System.out.println("4: Search User"); + System.out.println("5: Display list of completed Self Assessments"); + System.out.println("9: Exit program"); + System.out.print("Enter your selection : "); + } + - } -} + } + diff --git a/src/main/java/com/cbfacademy/apiassessment/SelfAssessmentUserProgrammeFunctions.java b/src/main/java/com/cbfacademy/apiassessment/SelfAssessmentUserProgrammeFunctions.java index f033f51..687b8f6 100644 --- a/src/main/java/com/cbfacademy/apiassessment/SelfAssessmentUserProgrammeFunctions.java +++ b/src/main/java/com/cbfacademy/apiassessment/SelfAssessmentUserProgrammeFunctions.java @@ -3,6 +3,8 @@ import java.util.LinkedList; import java.util.Scanner; +// this class contains methods for functions for the Self Assessment Programme + public class SelfAssessmentUserProgrammeFunctions { LinkedList listOfSelfAssesementInput; @@ -115,9 +117,15 @@ public void update (String id, Scanner input) { else { System.out.println("Self assessment user record not found"); } + } - - + public void display() { + if (listOfSelfAssesementInput.isEmpty()) { + System.out.println("No records found"); + } + for (SelfAssessmentUserDetails userRecord : listOfSelfAssesementInput) { + System.out.println(userRecord.toString()); + } } } @@ -134,5 +142,5 @@ public void update (String id, Scanner input) { - } + diff --git a/src/test/java/com/cbfacademy/apiassessment/SelfAssessmentUserProgrammeFunctionsTest.java b/src/test/java/com/cbfacademy/apiassessment/SelfAssessmentUserProgrammeFunctionsTest.java index 82771a5..3aab552 100644 --- a/src/test/java/com/cbfacademy/apiassessment/SelfAssessmentUserProgrammeFunctionsTest.java +++ b/src/test/java/com/cbfacademy/apiassessment/SelfAssessmentUserProgrammeFunctionsTest.java @@ -1,15 +1,14 @@ package com.cbfacademy.apiassessment; -import org.junit.jupiter.api.DisplayName; public class SelfAssessmentUserProgrammeFunctionsTest { SelfAssessmentUserProgrammeFunctions programmeFunctions = new SelfAssessmentUserProgrammeFunctions(); - @Test - @DisplayName("Testing Add method to check if user details exists if not add it to user detail record") - public void testAddMethodFunctonForValidInput() { + // @Test + // @DisplayName("Testing Add method to check if user details exists if not add it to user detail record") + // public void testAddMethodFunctonForValidInput() { @@ -18,7 +17,7 @@ public void testAddMethodFunctonForValidInput() { - } + // } From d481d43b640804d63abef621b4f91d484dba8e60 Mon Sep 17 00:00:00 2001 From: Chella Date: Mon, 6 Nov 2023 20:44:31 +0000 Subject: [PATCH 08/36] tweaking --- .../cbfacademy/apiassessment/SelfAssessmentUserDetails.java | 2 +- .../cbfacademy/apiassessment/SelfAssessmentUserProgramme.java | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/cbfacademy/apiassessment/SelfAssessmentUserDetails.java b/src/main/java/com/cbfacademy/apiassessment/SelfAssessmentUserDetails.java index cdcde59..6aced98 100644 --- a/src/main/java/com/cbfacademy/apiassessment/SelfAssessmentUserDetails.java +++ b/src/main/java/com/cbfacademy/apiassessment/SelfAssessmentUserDetails.java @@ -122,7 +122,7 @@ public void setAnswer5(boolean answer5) { // toString merthod to return list of values inputted when called @Override public String toString() { - return "Self assessment details - {" + firstName + " , " + lastName + " , " + yearOfBirth + " , " + contactNumber + " , " + answer1 + " , " + answer2 + " , " + answer3 + " , " + answer4 + " , " + answer5 + " }"; + return "Self assessment details - {" + userID + firstName + " , " + lastName + " , " + yearOfBirth + " , " + contactNumber + " , " + answer1 + " , " + answer2 + " , " + answer3 + " , " + answer4 + " , " + answer5 + " }"; } diff --git a/src/main/java/com/cbfacademy/apiassessment/SelfAssessmentUserProgramme.java b/src/main/java/com/cbfacademy/apiassessment/SelfAssessmentUserProgramme.java index 5bc5206..059e503 100644 --- a/src/main/java/com/cbfacademy/apiassessment/SelfAssessmentUserProgramme.java +++ b/src/main/java/com/cbfacademy/apiassessment/SelfAssessmentUserProgramme.java @@ -57,6 +57,7 @@ public static void main(String[] args) { System.out.print("What is your contact number?"); String contactNumber = input.nextLine(); + input.nextLine(); System.out.println("Do you need physical care and support due to difficulties managing with any of the following; personal care, accessing the community, getting in and out of bed, drink and meal prep?"); @@ -142,7 +143,7 @@ public static void SelfAssessmentProgrammeMenuInterface() { System.out.println("3: Update Self Assessment"); System.out.println("4: Search User"); System.out.println("5: Display list of completed Self Assessments"); - System.out.println("9: Exit program"); + System.out.println("6: Exit program"); System.out.print("Enter your selection : "); } From 00eef5ed42a12a51c0da61fdd8d4c2be76920fe5 Mon Sep 17 00:00:00 2001 From: Chella Date: Wed, 8 Nov 2023 23:06:35 +0000 Subject: [PATCH 09/36] changed userID from string to UUID --- .../SelfAssessmentUserDetails.java | 24 ++- .../SelfAssessmentUserProgramme.java | 191 ++++++++++-------- .../SelfAssessmentUserProgrammeFunctions.java | 15 +- .../StoringSelfAssessmentData.java | 17 ++ .../SelfAssessmentUserDetailsTest.java | 37 ++-- 5 files changed, 166 insertions(+), 118 deletions(-) create mode 100644 src/main/java/com/cbfacademy/apiassessment/StoringSelfAssessmentData.java diff --git a/src/main/java/com/cbfacademy/apiassessment/SelfAssessmentUserDetails.java b/src/main/java/com/cbfacademy/apiassessment/SelfAssessmentUserDetails.java index 6aced98..fb441a9 100644 --- a/src/main/java/com/cbfacademy/apiassessment/SelfAssessmentUserDetails.java +++ b/src/main/java/com/cbfacademy/apiassessment/SelfAssessmentUserDetails.java @@ -1,10 +1,12 @@ package com.cbfacademy.apiassessment; +import java.util.UUID; + // class containing getters and setters for to take input of values public class SelfAssessmentUserDetails { - private String userID; + private UUID userID; private String firstName; private String lastName; private int yearOfBirth; @@ -20,7 +22,9 @@ public class SelfAssessmentUserDetails { public SelfAssessmentUserDetails() {} - public SelfAssessmentUserDetails(String userID, String firstName, String lastName, int yearOfBirth, String contactNumber, boolean answer1, boolean answer2, boolean answer3, boolean answer4, boolean answer5) { + public SelfAssessmentUserDetails(UUID userID, String firstName, String lastName, int yearOfBirth, String contactNumber, boolean answer1, boolean answer2, boolean answer3, boolean answer4, boolean answer5) { +// this.userID = userID set as UUID ? this.uuid = uuid.randomid this.userID = UUID.randomUUID(); +// randomUUID method. change this.userID = userID; this.firstName = firstName; @@ -37,13 +41,16 @@ public SelfAssessmentUserDetails(String userID, String firstName, String lastNam - public String getUserID() { - return userID; - } - public void setUserID(String userID) { - this.userID = userID; + public UUID getUserID() { + UUID userID = UUID.randomUUID(); + return userID; } + // wouldnt want to have a setter as you wouldnt want it to be changed. + // public void setUserID(String userID) { + // this.userID = userID; + + // get method public String getFirstName() { return firstName; @@ -78,6 +85,9 @@ public void setContactNumber(String contactNumber) { this.contactNumber = contactNumber; } + // change these to post questions + + // @GetMapping so the user can see the questions "get the questions" public boolean getAnswer1() { return answer1; diff --git a/src/main/java/com/cbfacademy/apiassessment/SelfAssessmentUserProgramme.java b/src/main/java/com/cbfacademy/apiassessment/SelfAssessmentUserProgramme.java index 059e503..773de6c 100644 --- a/src/main/java/com/cbfacademy/apiassessment/SelfAssessmentUserProgramme.java +++ b/src/main/java/com/cbfacademy/apiassessment/SelfAssessmentUserProgramme.java @@ -1,6 +1,7 @@ package com.cbfacademy.apiassessment; -import java.util.Scanner; +import java.util.Scanner; +import java.util.UUID; public class SelfAssessmentUserProgramme { @@ -12,125 +13,147 @@ public static void main(String[] args) { SelfAssessmentUserDetails userRecord = new SelfAssessmentUserDetails(); - userRecord.setUserID("JD1998"); - userRecord.setFirstName("Jane"); - userRecord.setLastName("Doe"); - userRecord.setYearOfBirth(1998); - userRecord.setContactNumber("07490685102"); - userRecord.setAnswer1(false); - userRecord.setAnswer2(false); - userRecord.setAnswer3(false); - userRecord.setAnswer4(true); - userRecord.setAnswer5(true); + userRecord.getUserID(); + userRecord.getFirstName(); + userRecord.getLastName(); + userRecord.getYearOfBirth(); + userRecord.getContactNumber(); + userRecord.getAnswer1(); + userRecord.getAnswer2(); + userRecord.getAnswer3(); + userRecord.getAnswer4(); + userRecord.getAnswer5(); userProgramme.add(userRecord); - Scanner input = new Scanner(System.in); + try (Scanner input = new Scanner(System.in)) { + int option = 0; - int option = 0; + do { + SelfAssessmentProgrammeMenuInterface(); + option = input.nextInt(); - do { - SelfAssessmentProgrammeMenuInterface(); - option = input.nextInt(); + switch (option) { - switch (option) { + case 1: - case 1: - - System.out.print("What is your chosen User ID?"); + System.out.print("Press any key to generate your userID"); + input.nextLine(); + UUID userID = userRecord.getUserID(); + System.out.print("Your user ID is *make note of this!* = " + userID); + input.nextLine(); + + System.out.print("What is your first name?"); - String userID = input.nextLine(); - input.nextLine(); - - System.out.print("What is your first name?"); + String firstName = input.nextLine(); + + System.out.print("What is your last name?"); - String firstName = input.nextLine(); - - System.out.print("What is your last name?"); + String lastName = input.nextLine(); + + System.out.print("What is your year of birth?"); - String lastName = input.nextLine(); + int yearOfBirth = input.nextInt(); - System.out.print("What is your year of birth?"); + System.out.print("What is your contact number?"); - int yearOfBirth = input.nextInt(); - - System.out.print("What is your contact number?"); - - String contactNumber = input.nextLine(); - input.nextLine(); - - System.out.println("Do you need physical care and support due to difficulties managing with any of the following; personal care, accessing the community, getting in and out of bed, drink and meal prep?"); - - boolean answer1 = input.nextBoolean(); - - System.out.println("Do you have any difficulties ascending and / or descending the stairs?"); - boolean answer2 = input.nextBoolean(); + String contactNumber = input.nextLine(); + input.nextLine(); - System.out.println("Do you have any difficulties accessing your bathing facilities?"); - boolean answer3 = input.nextBoolean(); + System.out.println("Do you need physical care and support due to difficulties managing with any of the following; personal care, accessing the community, getting in and out of bed, drink and meal prep?"); + boolean answer1 = input.nextBoolean(); + + System.out.println("Do you have any difficulties ascending and / or descending the stairs?"); + boolean answer2 = input.nextBoolean(); + + System.out.println("Do you have any difficulties accessing your bathing facilities?"); + boolean answer3 = input.nextBoolean(); + - System.out.println("Do you have difficulties accessing your property?"); - boolean answer4 = input.nextBoolean(); - - System.out.println("Do you have difficulties transferring on and off the bed, chair, toilet, sofa?"); - boolean answer5 = input.nextBoolean(); + System.out.println("Do you have difficulties accessing your property?"); + boolean answer4 = input.nextBoolean(); + + System.out.println("Do you have difficulties transferring on and off the bed, chair, toilet, sofa?"); + boolean answer5 = input.nextBoolean(); - userRecord = new SelfAssessmentUserDetails(userID, firstName, lastName, yearOfBirth, contactNumber, answer1, answer2, answer3, answer4, answer5); + userRecord = new SelfAssessmentUserDetails(userID, firstName, lastName, yearOfBirth, contactNumber, answer1, answer2, answer3, answer4, answer5); - userProgramme.add(userRecord); - System.out.println(userRecord.toString()); + userProgramme.add(userRecord); + System.out.println(userRecord.toString()); - break; + break; - case 2: - - System.out.print("What is your user name?"); - String deleteRecord = input.nextLine(); - userProgramme.delete(deleteRecord); + case 2: + + System.out.print("What is your user ID?"); + String uuidInput = input.nextLine(); + try { + UUID deleteRecord = UUID.fromString(uuidInput); + userProgramme.delete(deleteRecord); + } - break; + catch (IllegalArgumentException e) { + System.out.println("Invalid userID"); - case 3: + } - System.out.print("What is your user name?"); - String updateRecord = input.nextLine(); - userProgramme.update(updateRecord, input); - break; + break; - case 4: + case 3: + + System.out.print("What is your user name?"); + String uuidIDUpdate = input.nextLine(); + try { + userProgramme.update(uuidIDUpdate); + } - System.out.print("What is your user name?"); - String findRecord = input.nextLine(); + catch (IllegalArgumentException e) { + System.out.println("Invalid userID"); - if (!userProgramme.find(findRecord)) { - System.out.println("Self assessment record does not exist. Please try again"); } - break; + break; - case 5: - userProgramme.display(); - break; + case 4: - case 6: - System.out.println("End of Self Assessment. Thank you for your time"); + System.out.print("What is your user name?"); + String uuidInputFindRecord = input.nextLine(); + + try { + UUID findRecord = UUID.fromString(uuidInputFindRecord); + userProgramme.delete(findRecord); + } + catch (IllegalArgumentException e) { + System.out.println("Invalid userID"); + } - System.out.println("Invalid input please select options 1 to 6"); - System.exit(0); + break; - break; - - default: - System.out.println("Invalid input"); - break; + case 5: + userProgramme.display(); + break; + + case 6: + System.out.println("End of Self Assessment. Thank you for your time"); + + + System.out.println("Invalid input please select options 1 to 6"); + System.exit(0); + + break; + default: + System.out.println("Invalid input"); + break; + + } } - } - while (option != 6); + while (option != 6); + } } public static void SelfAssessmentProgrammeMenuInterface() { diff --git a/src/main/java/com/cbfacademy/apiassessment/SelfAssessmentUserProgrammeFunctions.java b/src/main/java/com/cbfacademy/apiassessment/SelfAssessmentUserProgrammeFunctions.java index 687b8f6..7c5c83e 100644 --- a/src/main/java/com/cbfacademy/apiassessment/SelfAssessmentUserProgrammeFunctions.java +++ b/src/main/java/com/cbfacademy/apiassessment/SelfAssessmentUserProgrammeFunctions.java @@ -2,6 +2,7 @@ import java.util.LinkedList; import java.util.Scanner; +import java.util.UUID; // this class contains methods for functions for the Self Assessment Programme @@ -24,7 +25,7 @@ public void add(SelfAssessmentUserDetails recordOfDetails) { } } - public boolean find(String userID) { + public boolean find(UUID userID) { for(SelfAssessmentUserDetails l : listOfSelfAssesementInput) { @@ -37,7 +38,7 @@ public boolean find(String userID) { return false; } - public void delete (String recUserID) { + public void delete (UUID recUserID) { SelfAssessmentUserDetails recordDelete = null; @@ -56,7 +57,7 @@ public void delete (String recUserID) { } } - public SelfAssessmentUserDetails findRecord(String userID) { + public SelfAssessmentUserDetails findRecord(UUID userID) { for (SelfAssessmentUserDetails l : listOfSelfAssesementInput) { @@ -67,12 +68,10 @@ public SelfAssessmentUserDetails findRecord(String userID) { return null; } - public void update (String id, Scanner input) { + public void update (UUID id, Scanner input) { if (find(id)) { SelfAssessmentUserDetails userRecord = findRecord(id); - System.out.print("What is the new User ID number?"); - String userID = input.nextLine(); System.out.print("What is the new First Name?"); String firstName = input.nextLine(); @@ -101,7 +100,6 @@ public void update (String id, Scanner input) { System.out.print("What is the your new answer to Question 5?"); boolean answer5 = input.nextBoolean(); - userRecord.setUserID(userID); userRecord.setFirstName(firstName); userRecord.setLastName(lastName); userRecord.setYearOfBirth(yearOfBirth); @@ -127,6 +125,9 @@ public void display() { System.out.println(userRecord.toString()); } } + + public void update(String uuidIDUpdate) { + } } diff --git a/src/main/java/com/cbfacademy/apiassessment/StoringSelfAssessmentData.java b/src/main/java/com/cbfacademy/apiassessment/StoringSelfAssessmentData.java new file mode 100644 index 0000000..0894e73 --- /dev/null +++ b/src/main/java/com/cbfacademy/apiassessment/StoringSelfAssessmentData.java @@ -0,0 +1,17 @@ +package com.cbfacademy.apiassessment; + +public class StoringSelfAssessmentData { + +// public void saveSelfAssessmentDataToJSON(SelfAssessmentUserDetails dataFromSelfAssessmentInput) { + +// Gson gson = new GsonBuilder().setPrettyPrinting().create(); + +// String gson.toJson(dataFromSelfAssessmentInput); + +// try (FileWriter writer ) + + + +// } + + } diff --git a/src/test/java/com/cbfacademy/apiassessment/SelfAssessmentUserDetailsTest.java b/src/test/java/com/cbfacademy/apiassessment/SelfAssessmentUserDetailsTest.java index e97b3e8..421b829 100644 --- a/src/test/java/com/cbfacademy/apiassessment/SelfAssessmentUserDetailsTest.java +++ b/src/test/java/com/cbfacademy/apiassessment/SelfAssessmentUserDetailsTest.java @@ -1,6 +1,10 @@ package com.cbfacademy.apiassessment; import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertNull; +import static org.junit.jupiter.api.Assertions.assertTrue; + +import java.util.UUID; import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Test; @@ -8,17 +12,19 @@ @DisplayName(value = "The Self Assessment Methods should ") public class SelfAssessmentUserDetailsTest { -SelfAssessmentUserDetails userDetails = new SelfAssessmentUserDetails("CJ01234" , "Jane" , "Doe", 2000, "07590673402", false , false , true , true , true); - - + UUID testUUID = UUID.randomUUID(); + SelfAssessmentUserDetails userDetails = new SelfAssessmentUserDetails(testUUID, "Jane", "Doe", 2000, "07590673402", false, false, true, true, true); // Below I am testing the get() method for returning the values; firstName, lastName, yearOfBirth, answer1, answer2, answer3 , answer 4 , answer 5. @Test - @DisplayName("return userID when get userID is used") + @DisplayName("return userID when getuserID is used") public void testGetUserID() { - String userID = userDetails.getUserID(); - assertEquals("CJ01234", userID); + + UUID userID = userDetails.getUserID(); + + assertNull(userID); + assertTrue(userID instanceof UUID); } @Test @@ -64,7 +70,7 @@ public void testGetAnswer1() { } @Test - @DisplayName("return answer2 when getAnswer1 is used") + @DisplayName("return answer2 when getAnswer2 is used") public void testGetAnswer2() { boolean answer2 = userDetails.getAnswer2(); @@ -72,7 +78,7 @@ public void testGetAnswer2() { } @Test - @DisplayName("return answer3 when getAnswer1 is used") + @DisplayName("return answer3 when getAnswer3 is used") public void testGetAnswer3() { boolean answer3 = userDetails.getAnswer3(); @@ -80,7 +86,7 @@ public void testGetAnswer3() { } @Test - @DisplayName("return answer3 when getAnswer1 is used") + @DisplayName("return answer4 when getAnswer4 is used") public void testGetAnswer4() { boolean answer4 = userDetails.getAnswer4(); @@ -88,7 +94,7 @@ public void testGetAnswer4() { } @Test - @DisplayName("return answer3 when getAnswer1 is used") + @DisplayName("return answer5 when getAnswer5 is used") public void testGetAnswer5() { boolean answer5 = userDetails.getAnswer3(); @@ -100,15 +106,6 @@ public void testGetAnswer5() { - @Test - @DisplayName("sets value of user name when setUserName is used") - public void testSetUserName() { - - userDetails.setUserID("JD12345"); - String userID = userDetails.getUserID(); - assertEquals("JD12345", userID); - } - @Test @DisplayName("sets value of first name when setFirstName is used") @@ -199,7 +196,7 @@ public void testSetAnswer5() { @Test @DisplayName("tests the toString method to return the values inputted when called") public void testToString() { - String expected = "Self assessment details - {Jane , Doe , 2000 , 07590673402 , false , false , true , true , true }"; + String expected = "Self assessment details - {" + testUUID + "Jane , Doe , 2000 , 07590673402 , false , false , true , true , true }"; String actual = userDetails.toString(); assertEquals(expected, actual); From 1408b65999d8352ac829133f1a2e51a12687e4be Mon Sep 17 00:00:00 2001 From: Chella Date: Thu, 9 Nov 2023 00:17:30 +0000 Subject: [PATCH 10/36] made interface better. NOW WORK ON API! --- .../SelfAssessmentUserDetails.java | 3 +- .../SelfAssessmentUserProgramme.java | 58 +++++++------------ .../SelfAssessmentUserProgrammeFunctions.java | 21 +------ 3 files changed, 24 insertions(+), 58 deletions(-) diff --git a/src/main/java/com/cbfacademy/apiassessment/SelfAssessmentUserDetails.java b/src/main/java/com/cbfacademy/apiassessment/SelfAssessmentUserDetails.java index fb441a9..1373e9c 100644 --- a/src/main/java/com/cbfacademy/apiassessment/SelfAssessmentUserDetails.java +++ b/src/main/java/com/cbfacademy/apiassessment/SelfAssessmentUserDetails.java @@ -90,8 +90,9 @@ public void setContactNumber(String contactNumber) { // @GetMapping so the user can see the questions "get the questions" public boolean getAnswer1() { - return answer1; + return answer1; } + public void setAnswer1(boolean answer1) { this.answer1 = answer1; } diff --git a/src/main/java/com/cbfacademy/apiassessment/SelfAssessmentUserProgramme.java b/src/main/java/com/cbfacademy/apiassessment/SelfAssessmentUserProgramme.java index 773de6c..07793da 100644 --- a/src/main/java/com/cbfacademy/apiassessment/SelfAssessmentUserProgramme.java +++ b/src/main/java/com/cbfacademy/apiassessment/SelfAssessmentUserProgramme.java @@ -12,20 +12,6 @@ public static void main(String[] args) { SelfAssessmentUserDetails userRecord = new SelfAssessmentUserDetails(); - - userRecord.getUserID(); - userRecord.getFirstName(); - userRecord.getLastName(); - userRecord.getYearOfBirth(); - userRecord.getContactNumber(); - userRecord.getAnswer1(); - userRecord.getAnswer2(); - userRecord.getAnswer3(); - userRecord.getAnswer4(); - userRecord.getAnswer5(); - - userProgramme.add(userRecord); - try (Scanner input = new Scanner(System.in)) { int option = 0; @@ -37,44 +23,45 @@ public static void main(String[] args) { case 1: - System.out.print("Press any key to generate your userID"); + System.out.print("Press any key to generate your userID "); input.nextLine(); + input.nextLine(); UUID userID = userRecord.getUserID(); System.out.print("Your user ID is *make note of this!* = " + userID); input.nextLine(); - System.out.print("What is your first name?"); + System.out.print("What is your first name? "); String firstName = input.nextLine(); - System.out.print("What is your last name?"); + System.out.print("What is your last name? "); String lastName = input.nextLine(); - System.out.print("What is your year of birth?"); + System.out.print("What is your year of birth? "); int yearOfBirth = input.nextInt(); - System.out.print("What is your contact number?"); + System.out.print("What is your contact number? "); String contactNumber = input.nextLine(); input.nextLine(); - System.out.println("Do you need physical care and support due to difficulties managing with any of the following; personal care, accessing the community, getting in and out of bed, drink and meal prep?"); + System.out.println("Do you need physical care and support due to difficulties managing with any of the following; personal care, accessing the community, getting in and out of bed, drink and meal prep? "); boolean answer1 = input.nextBoolean(); - System.out.println("Do you have any difficulties ascending and / or descending the stairs?"); + System.out.println("Do you have any difficulties ascending and / or descending the stairs? "); boolean answer2 = input.nextBoolean(); - System.out.println("Do you have any difficulties accessing your bathing facilities?"); + System.out.println("Do you have any difficulties accessing your bathing facilities? "); boolean answer3 = input.nextBoolean(); - System.out.println("Do you have difficulties accessing your property?"); + System.out.println("Do you have difficulties accessing your property? "); boolean answer4 = input.nextBoolean(); - System.out.println("Do you have difficulties transferring on and off the bed, chair, toilet, sofa?"); + System.out.println("Do you have difficulties transferring on and off the bed, chair, toilet, sofa? "); boolean answer5 = input.nextBoolean(); userRecord = new SelfAssessmentUserDetails(userID, firstName, lastName, yearOfBirth, contactNumber, answer1, answer2, answer3, answer4, answer5); @@ -103,19 +90,19 @@ public static void main(String[] args) { case 3: - System.out.print("What is your user name?"); + System.out.print("What is your your user name?"); String uuidIDUpdate = input.nextLine(); - try { - userProgramme.update(uuidIDUpdate); - } + try { + UUID updateRecod = UUID.fromString(uuidIDUpdate); + userProgramme.update(updateRecod, input); + } - catch (IllegalArgumentException e) { + catch (IllegalArgumentException e) { System.out.println("Invalid userID"); - } - - break; + } + case 4: System.out.print("What is your user name?"); @@ -123,7 +110,7 @@ public static void main(String[] args) { try { UUID findRecord = UUID.fromString(uuidInputFindRecord); - userProgramme.delete(findRecord); + userProgramme.find(findRecord); } catch (IllegalArgumentException e) { @@ -138,15 +125,12 @@ public static void main(String[] args) { case 6: System.out.println("End of Self Assessment. Thank you for your time"); - - - System.out.println("Invalid input please select options 1 to 6"); System.exit(0); break; default: - System.out.println("Invalid input"); + System.out.println(" Invalid input please select options 1 to 6"); break; } diff --git a/src/main/java/com/cbfacademy/apiassessment/SelfAssessmentUserProgrammeFunctions.java b/src/main/java/com/cbfacademy/apiassessment/SelfAssessmentUserProgrammeFunctions.java index 7c5c83e..9b4a93b 100644 --- a/src/main/java/com/cbfacademy/apiassessment/SelfAssessmentUserProgrammeFunctions.java +++ b/src/main/java/com/cbfacademy/apiassessment/SelfAssessmentUserProgrammeFunctions.java @@ -72,19 +72,6 @@ public void update (UUID id, Scanner input) { if (find(id)) { SelfAssessmentUserDetails userRecord = findRecord(id); - - System.out.print("What is the new First Name?"); - String firstName = input.nextLine(); - - System.out.print("What is the new last Name?"); - String lastName = input.nextLine(); - - System.out.print("What is the new year of birth?"); - int yearOfBirth = input.nextInt(); - - System.out.print("What is the new contact number?"); - String contactNumber = input.nextLine(); - System.out.print("What is the your new answer to Question 1?"); boolean answer1 = input.nextBoolean(); @@ -99,11 +86,7 @@ public void update (UUID id, Scanner input) { System.out.print("What is the your new answer to Question 5?"); boolean answer5 = input.nextBoolean(); - - userRecord.setFirstName(firstName); - userRecord.setLastName(lastName); - userRecord.setYearOfBirth(yearOfBirth); - userRecord.setContactNumber(contactNumber); + userRecord.setAnswer1(answer1); userRecord.setAnswer2(answer2); userRecord.setAnswer3(answer3); @@ -126,8 +109,6 @@ public void display() { } } - public void update(String uuidIDUpdate) { - } } From 79d73830e539171a968846064d4a92a3c6a378ac Mon Sep 17 00:00:00 2001 From: Chella Date: Mon, 13 Nov 2023 01:19:51 +0000 Subject: [PATCH 11/36] json data added, finish service class methods --- .../SelfAssessmentFunctionsForAPI.java | 132 ++++++++++++++++++ 1 file changed, 132 insertions(+) create mode 100644 src/main/java/com/cbfacademy/apiassessment/SelfAssessmentFunctionsForAPI.java diff --git a/src/main/java/com/cbfacademy/apiassessment/SelfAssessmentFunctionsForAPI.java b/src/main/java/com/cbfacademy/apiassessment/SelfAssessmentFunctionsForAPI.java new file mode 100644 index 0000000..f3506d4 --- /dev/null +++ b/src/main/java/com/cbfacademy/apiassessment/SelfAssessmentFunctionsForAPI.java @@ -0,0 +1,132 @@ +package com.cbfacademy.apiassessment; + +import java.io.FileNotFoundException; +import java.io.FileReader; +import java.io.IOException; +import java.io.Reader; +import java.util.LinkedList; + + + +import org.springframework.stereotype.Service; + +// Service class to manage user input data, + +// adapt methods; read , write , update , delete from SelfAssessmentFunctions to + +public class SelfAssessmentFunctionsForAPI { + + private LinkedList listOfSelfAssesementInput; + private final String jsonFile = selfAssessmentData.json; + private final Gson gson; + + public SelfAssessmentFunctionsForAPI() { + + listOfSelfAssesementInput = readDataFromFile(); + gson = new GsonBuilder().setPrettyPrinting.create(); + + } + + private LinkedList readDataFromFile() { + try(Reader reader = new FileReader(jsonFile)) { + Type listType = new TypeToken> {}.getType(); + return gson.fromJson(reader, listType); + } catch (FileNotFoundException e) { + return new LinkedList<>(); + } catch (IOException e) { + e.printStackTrace(); + return new LinkedList<>(); + } + } + +// create a user following input of answering the variables from SelfAssessmentUserDetails (self assessment) + public void createUser(SelfAssessmentUserDetails recordOfDetails) { + + if (!find(recordOfDetails.getUserID())) { + listOfSelfAssesementInput.add(recordOfDetails); + // update JSON + } + else { + System.out.println("Self Assessment Record already exists"); + } + } + +// update user when called by the ID and save the changes to the json file + public void updateUserSelfAssessment(UUID userID) { + + + } + +// retrieve a user self assessment through a json file when userID is used + public void getUserSelfAssessment(UUID userID) { + + + } + + public void saveUserSelfAssessment(UUID userID) { + + + } + +// method to delete a user self assessment stored in a json file and then make the changes to the json file + + + public void deleteUserSelfAssessment(UUID recUserID) { + + SelfAssessmentUserDetails recordDelete = null; + + for(SelfAssessmentUserDetails ll : listOfSelfAssesementInput) { + + if (ll.getUserID() == recUserID) { + recordDelete = ll; + } + } + if (recordDelete == null) { + System.out.println("Invalid userID , please try again"); + } + else { + listOfSelfAssesementInput.remove(recordDelete); + System.out.println("Self Assessment User Record Deleted "); + } + } + +// retrieve data stored from the JSON file + + private LinkedList displaySelfAssessment() { + + } + + +// method needs to write date to the jSON file once createUser method has been inputted + + + + + + + + + + + + + + + + + + + + + + + + + + } + + + + + + From ce9316f8202f529cc80a481b3a6d4d8def85c231 Mon Sep 17 00:00:00 2001 From: Chella Date: Mon, 13 Nov 2023 01:20:09 +0000 Subject: [PATCH 12/36] json file added --- src/main/resources/selfAssessmentData.json | 15 +++++++++++++++ 1 file changed, 15 insertions(+) create mode 100644 src/main/resources/selfAssessmentData.json diff --git a/src/main/resources/selfAssessmentData.json b/src/main/resources/selfAssessmentData.json new file mode 100644 index 0000000..98d0c8f --- /dev/null +++ b/src/main/resources/selfAssessmentData.json @@ -0,0 +1,15 @@ +[ + { + "userID": "" , + "firstName": "Chella", + "lastName": "Johnson", + "yearOfBirth": 1998, + "contactNumber": "01159172829", + "answer1": false, + "answer2": false, + "answer3": false, + "answer4": false, + "answer5": false + + } +] \ No newline at end of file From adfa41d026978deaff7f8c69f26ce3ba7f4ab0b0 Mon Sep 17 00:00:00 2001 From: Chella Date: Tue, 14 Nov 2023 18:33:28 +0000 Subject: [PATCH 13/36] implement methods from SAF to Service class --- .../SelfAssessmentFunctionsForAPI.java | 132 ------------------ .../SelfAssessmentServiceForAPI.java | 82 +++++++++++ .../SelfAssessmentServiceInterface.java | 11 ++ .../StoringSelfAssessmentData.java | 17 --- src/main/resources/selfAssessmentData.json | 14 +- 5 files changed, 101 insertions(+), 155 deletions(-) delete mode 100644 src/main/java/com/cbfacademy/apiassessment/SelfAssessmentFunctionsForAPI.java create mode 100644 src/main/java/com/cbfacademy/apiassessment/SelfAssessmentServiceForAPI.java create mode 100644 src/main/java/com/cbfacademy/apiassessment/SelfAssessmentServiceInterface.java delete mode 100644 src/main/java/com/cbfacademy/apiassessment/StoringSelfAssessmentData.java diff --git a/src/main/java/com/cbfacademy/apiassessment/SelfAssessmentFunctionsForAPI.java b/src/main/java/com/cbfacademy/apiassessment/SelfAssessmentFunctionsForAPI.java deleted file mode 100644 index f3506d4..0000000 --- a/src/main/java/com/cbfacademy/apiassessment/SelfAssessmentFunctionsForAPI.java +++ /dev/null @@ -1,132 +0,0 @@ -package com.cbfacademy.apiassessment; - -import java.io.FileNotFoundException; -import java.io.FileReader; -import java.io.IOException; -import java.io.Reader; -import java.util.LinkedList; - - - -import org.springframework.stereotype.Service; - -// Service class to manage user input data, - -// adapt methods; read , write , update , delete from SelfAssessmentFunctions to - -public class SelfAssessmentFunctionsForAPI { - - private LinkedList listOfSelfAssesementInput; - private final String jsonFile = selfAssessmentData.json; - private final Gson gson; - - public SelfAssessmentFunctionsForAPI() { - - listOfSelfAssesementInput = readDataFromFile(); - gson = new GsonBuilder().setPrettyPrinting.create(); - - } - - private LinkedList readDataFromFile() { - try(Reader reader = new FileReader(jsonFile)) { - Type listType = new TypeToken> {}.getType(); - return gson.fromJson(reader, listType); - } catch (FileNotFoundException e) { - return new LinkedList<>(); - } catch (IOException e) { - e.printStackTrace(); - return new LinkedList<>(); - } - } - -// create a user following input of answering the variables from SelfAssessmentUserDetails (self assessment) - public void createUser(SelfAssessmentUserDetails recordOfDetails) { - - if (!find(recordOfDetails.getUserID())) { - listOfSelfAssesementInput.add(recordOfDetails); - // update JSON - } - else { - System.out.println("Self Assessment Record already exists"); - } - } - -// update user when called by the ID and save the changes to the json file - public void updateUserSelfAssessment(UUID userID) { - - - } - -// retrieve a user self assessment through a json file when userID is used - public void getUserSelfAssessment(UUID userID) { - - - } - - public void saveUserSelfAssessment(UUID userID) { - - - } - -// method to delete a user self assessment stored in a json file and then make the changes to the json file - - - public void deleteUserSelfAssessment(UUID recUserID) { - - SelfAssessmentUserDetails recordDelete = null; - - for(SelfAssessmentUserDetails ll : listOfSelfAssesementInput) { - - if (ll.getUserID() == recUserID) { - recordDelete = ll; - } - } - if (recordDelete == null) { - System.out.println("Invalid userID , please try again"); - } - else { - listOfSelfAssesementInput.remove(recordDelete); - System.out.println("Self Assessment User Record Deleted "); - } - } - -// retrieve data stored from the JSON file - - private LinkedList displaySelfAssessment() { - - } - - -// method needs to write date to the jSON file once createUser method has been inputted - - - - - - - - - - - - - - - - - - - - - - - - - - } - - - - - - diff --git a/src/main/java/com/cbfacademy/apiassessment/SelfAssessmentServiceForAPI.java b/src/main/java/com/cbfacademy/apiassessment/SelfAssessmentServiceForAPI.java new file mode 100644 index 0000000..33da5db --- /dev/null +++ b/src/main/java/com/cbfacademy/apiassessment/SelfAssessmentServiceForAPI.java @@ -0,0 +1,82 @@ +package com.cbfacademy.apiassessment; + +import java.io.FileNotFoundException; +import java.io.FileReader; +import java.io.FileWriter; +import java.io.IOException; +import java.io.Reader; +import java.io.Writer; +import java.lang.reflect.Type; +import java.util.LinkedList; +import java.util.UUID; + +import org.springframework.stereotype.Service; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.reflect.TypeToken; + +// Springboot service layer containing method the the controller class. + +@Service +public class SelfAssessmentServiceForAPI { + + private final String jsonFile = "selfAssessmentData.json"; + private final Gson gson; + + LinkedList listOfSelfAssesementInput; + + public SelfAssessmentServiceForAPI() { + listOfSelfAssesementInput = readDataFromFile(); + gson = new GsonBuilder().setPrettyPrinting().create(); + } + + +// code below is reading data from the JSON file and returning as a list + private LinkedList readDataFromFile() { + try(Reader reader = new FileReader(jsonFile)) { + Type listType = new TypeToken> {}.getType(); + return gson.fromJson(reader, listType); + // if file does not exist returns an empty list + } catch (FileNotFoundException e) { + return new LinkedList<>(); + } catch (IOException e) { + e.printStackTrace(); + return new LinkedList<>(); + } + } + +// code below is a method to write the dta from the self assessment user input into the Json file + private void writeDataFromSelfAssessmentToFile() { + try(Writer writer = new FileWriter(jsonFile)){ + gson.toJson(listOfSelfAssesementInput, writer); + } catch (IOException e) { + e.printStackTrace(); + } + } + + + public void createUserSelfAssessment(SelfAssessmentUserDetails recordOfDetails) { + add(recordOfDetails); + writeDataFromSelfAssessmentToFile(); + } + + + public void displayUserSelfAssessmentInputAsJSON() { + listOfSelfAssesementInput = readDataFromFile(); + } + + + public void deleteUser(UUID id) { + delete(id); + writeDataFromSelfAssessmentToFile(); + } + + public LinkedList getSelfAssessmentUserDetails() { + return listOfSelfAssesementInput; + } + +} + + + diff --git a/src/main/java/com/cbfacademy/apiassessment/SelfAssessmentServiceInterface.java b/src/main/java/com/cbfacademy/apiassessment/SelfAssessmentServiceInterface.java new file mode 100644 index 0000000..d731509 --- /dev/null +++ b/src/main/java/com/cbfacademy/apiassessment/SelfAssessmentServiceInterface.java @@ -0,0 +1,11 @@ + +package com.cbfacademy.apiassessment; + +// create interface for self assessment service for api class . + +// can we implement self assessment functions in here? + +public interface SelfAssessmentServiceInterface { + + +} \ No newline at end of file diff --git a/src/main/java/com/cbfacademy/apiassessment/StoringSelfAssessmentData.java b/src/main/java/com/cbfacademy/apiassessment/StoringSelfAssessmentData.java deleted file mode 100644 index 0894e73..0000000 --- a/src/main/java/com/cbfacademy/apiassessment/StoringSelfAssessmentData.java +++ /dev/null @@ -1,17 +0,0 @@ -package com.cbfacademy.apiassessment; - -public class StoringSelfAssessmentData { - -// public void saveSelfAssessmentDataToJSON(SelfAssessmentUserDetails dataFromSelfAssessmentInput) { - -// Gson gson = new GsonBuilder().setPrettyPrinting().create(); - -// String gson.toJson(dataFromSelfAssessmentInput); - -// try (FileWriter writer ) - - - -// } - - } diff --git a/src/main/resources/selfAssessmentData.json b/src/main/resources/selfAssessmentData.json index 98d0c8f..b0a362b 100644 --- a/src/main/resources/selfAssessmentData.json +++ b/src/main/resources/selfAssessmentData.json @@ -5,11 +5,13 @@ "lastName": "Johnson", "yearOfBirth": 1998, "contactNumber": "01159172829", - "answer1": false, - "answer2": false, - "answer3": false, - "answer4": false, - "answer5": false + "question 1": false, + "question 2": false, + "question 3": false, + "question 4": false, + "question 5": false } -] \ No newline at end of file +] + + From 422ae7a20b4d968f844e0c1111dbaccd71aff76b Mon Sep 17 00:00:00 2001 From: Chella Date: Tue, 14 Nov 2023 18:34:56 +0000 Subject: [PATCH 14/36] keep maven --- .github/.keep | 0 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 .github/.keep diff --git a/.github/.keep b/.github/.keep deleted file mode 100644 index e69de29..0000000 From a11aa51c992e0173acbda65b401498b0a1ae95eb Mon Sep 17 00:00:00 2001 From: Chella Date: Tue, 14 Nov 2023 21:38:30 +0000 Subject: [PATCH 15/36] 1 step forward 10 steps back --- pom.xml | 8 +- .../SelfAssessmentController.java | 46 ++++++++ .../SelfAssessmentServiceForAPI.java | 100 ++++++++++-------- .../SelfAssessmentServiceInterface.java | 9 +- .../SelfAssessmentUserProgramme.java | 4 +- .../SelfAssessmentUserProgrammeFunctions.java | 95 ++++++++++++----- src/main/resources/selfAssessmentData.json | 11 +- 7 files changed, 193 insertions(+), 80 deletions(-) create mode 100644 src/main/java/com/cbfacademy/apiassessment/SelfAssessmentController.java diff --git a/pom.xml b/pom.xml index d36be90..5f69bf7 100644 --- a/pom.xml +++ b/pom.xml @@ -33,7 +33,13 @@ spring-boot-starter-test test - + + + com.google.code.gson + gson + 2.8.5 + + diff --git a/src/main/java/com/cbfacademy/apiassessment/SelfAssessmentController.java b/src/main/java/com/cbfacademy/apiassessment/SelfAssessmentController.java new file mode 100644 index 0000000..9939e34 --- /dev/null +++ b/src/main/java/com/cbfacademy/apiassessment/SelfAssessmentController.java @@ -0,0 +1,46 @@ +package com.cbfacademy.apiassessment; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.DeleteMapping; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.PutMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +@RestController +@RequestMapping("/api/activities-of-daily-living-self-assessment") + +public class SelfAssessmentController { + + + @Autowired + SelfAssessmentServiceForAPI selfAssessmentService; + +// sends a request to retreieve the json file with the self assessment + @GetMapping() + public ResponseEntity LinkedList getSelfAssessment(){ + LinkedList selfAssessment = selfAssessmentService; + return ResponseEntity.ok(selfAssessment); + } + + +// creates the user self assessment + @PostMapping + + +// sends request to retreive json file with useful information to answers to the questions + @GetMapping + + + +// allows user to update there self assessment following having access to the useful information + @PutMapping + + +// allows user to delete self assessment with there details + @DeleteMapping + + +} diff --git a/src/main/java/com/cbfacademy/apiassessment/SelfAssessmentServiceForAPI.java b/src/main/java/com/cbfacademy/apiassessment/SelfAssessmentServiceForAPI.java index 33da5db..f9627f7 100644 --- a/src/main/java/com/cbfacademy/apiassessment/SelfAssessmentServiceForAPI.java +++ b/src/main/java/com/cbfacademy/apiassessment/SelfAssessmentServiceForAPI.java @@ -21,62 +21,76 @@ @Service public class SelfAssessmentServiceForAPI { - private final String jsonFile = "selfAssessmentData.json"; - private final Gson gson; - LinkedList listOfSelfAssesementInput; + private final SelfAssessmentUserProgrammeFunctions programmeFunctions; - public SelfAssessmentServiceForAPI() { - listOfSelfAssesementInput = readDataFromFile(); - gson = new GsonBuilder().setPrettyPrinting().create(); - } - + public SelfAssessmentServiceForAPI(SelfAssessmentUserProgrammeFunctions programmeFunctions) { + this.programmeFunctions = programmeFunctions; -// code below is reading data from the JSON file and returning as a list - private LinkedList readDataFromFile() { - try(Reader reader = new FileReader(jsonFile)) { - Type listType = new TypeToken> {}.getType(); - return gson.fromJson(reader, listType); - // if file does not exist returns an empty list - } catch (FileNotFoundException e) { - return new LinkedList<>(); - } catch (IOException e) { - e.printStackTrace(); - return new LinkedList<>(); - } } -// code below is a method to write the dta from the self assessment user input into the Json file - private void writeDataFromSelfAssessmentToFile() { - try(Writer writer = new FileWriter(jsonFile)){ - gson.toJson(listOfSelfAssesementInput, writer); - } catch (IOException e) { - e.printStackTrace(); - } + public LinkedList retrieveSelfAssessment() { + return programmeFunctions.retrieveSelfAssessment(); } - - - public void createUserSelfAssessment(SelfAssessmentUserDetails recordOfDetails) { - add(recordOfDetails); - writeDataFromSelfAssessmentToFile(); - } - public void displayUserSelfAssessmentInputAsJSON() { - listOfSelfAssesementInput = readDataFromFile(); - } - public void deleteUser(UUID id) { - delete(id); - writeDataFromSelfAssessmentToFile(); - } - public LinkedList getSelfAssessmentUserDetails() { - return listOfSelfAssesementInput; - } + + + + + + + + + + + + + + + + + + + + } +// public SelfAssessmentServiceForAPI(SelfAssessmentUserProgrammeFunctions programmeFunctions) { +// this.programmeFunctions = programmeFunctions; +// } + +// public SelfAssessmentServiceForAPI() { +// listOfSelfAssesementInput = readDataFromFile(); +// gson = new GsonBuilder().setPrettyPrinting().create(); +// } + + +// public void createUserSelfAssessment(SelfAssessmentUserDetails recordOfDetails) { +// programmeFunctions.add(recordOfDetails); +// writeDataFromSelfAssessmentToFile(); +// } + + +// public void displayUserSelfAssessmentInputAsJSON() { +// listOfSelfAssesementInput = readDataFromFile(); +// } + + +// public void deleteUser(UUID id) { +// programmeFunctions.delete(id); +// writeDataFromSelfAssessmentToFile(); +// } + +// public LinkedList getSelfAssessment() { +// return listOfSelfAssesementInput; +// } + +// } + diff --git a/src/main/java/com/cbfacademy/apiassessment/SelfAssessmentServiceInterface.java b/src/main/java/com/cbfacademy/apiassessment/SelfAssessmentServiceInterface.java index d731509..01180a3 100644 --- a/src/main/java/com/cbfacademy/apiassessment/SelfAssessmentServiceInterface.java +++ b/src/main/java/com/cbfacademy/apiassessment/SelfAssessmentServiceInterface.java @@ -5,7 +5,12 @@ // can we implement self assessment functions in here? -public interface SelfAssessmentServiceInterface { +// public interface SelfAssessmentServiceInterface { + +// public LinkedList getSelfAssessment() { +// r + + +// } -} \ No newline at end of file diff --git a/src/main/java/com/cbfacademy/apiassessment/SelfAssessmentUserProgramme.java b/src/main/java/com/cbfacademy/apiassessment/SelfAssessmentUserProgramme.java index 07793da..0aa78db 100644 --- a/src/main/java/com/cbfacademy/apiassessment/SelfAssessmentUserProgramme.java +++ b/src/main/java/com/cbfacademy/apiassessment/SelfAssessmentUserProgramme.java @@ -90,7 +90,7 @@ public static void main(String[] args) { case 3: - System.out.print("What is your your user name?"); + System.out.print("What is your your user name? "); String uuidIDUpdate = input.nextLine(); try { UUID updateRecod = UUID.fromString(uuidIDUpdate); @@ -118,7 +118,7 @@ public static void main(String[] args) { } break; - +// display method working in interface. case 5: userProgramme.display(); break; diff --git a/src/main/java/com/cbfacademy/apiassessment/SelfAssessmentUserProgrammeFunctions.java b/src/main/java/com/cbfacademy/apiassessment/SelfAssessmentUserProgrammeFunctions.java index 9b4a93b..7eb6f37 100644 --- a/src/main/java/com/cbfacademy/apiassessment/SelfAssessmentUserProgrammeFunctions.java +++ b/src/main/java/com/cbfacademy/apiassessment/SelfAssessmentUserProgrammeFunctions.java @@ -1,24 +1,47 @@ package com.cbfacademy.apiassessment; +import com.google.gson.reflect.TypeToken; + +import java.io.FileNotFoundException; +import java.io.FileReader; +import java.io.FileWriter; +import java.io.IOException; +import java.io.Reader; +import java.io.Writer; +import java.lang.reflect.Type; import java.util.LinkedList; -import java.util.Scanner; import java.util.UUID; +import org.springframework.stereotype.Service; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; + + // this class contains methods for functions for the Self Assessment Programme public class SelfAssessmentUserProgrammeFunctions { - LinkedList listOfSelfAssesementInput; + private LinkedList listOfSelfAssesementInput; + private final String jsonFilePath = "selfAssessmentData.json"; + private final Gson gson; public SelfAssessmentUserProgrammeFunctions() { - listOfSelfAssesementInput = new LinkedList<>(); + listOfSelfAssesementInput = readDataFromFile(); + gson = new GsonBuilder().setPrettyPrinting().create(); + + } + + public LinkedList retrieveSelfAssessment() { + return listOfSelfAssesementInput; } public void add(SelfAssessmentUserDetails recordOfDetails) { if (!find(recordOfDetails.getUserID())) { listOfSelfAssesementInput.add(recordOfDetails); + writeDataFromSelfAssessmentToFile(); } else { System.out.println("Self Assessment Record already exists"); @@ -29,7 +52,7 @@ public boolean find(UUID userID) { for(SelfAssessmentUserDetails l : listOfSelfAssesementInput) { - if (l.getUserID() == userID) { + if (l.getUserID().equals(userID)) { System.out.println(l); return true; @@ -42,26 +65,23 @@ public void delete (UUID recUserID) { SelfAssessmentUserDetails recordDelete = null; - for(SelfAssessmentUserDetails ll : listOfSelfAssesementInput) { - - if (ll.getUserID() == recUserID) { - recordDelete = ll; + for(SelfAssessmentUserDetails l : listOfSelfAssesementInput) { + if (l.getUserID().equals(recUserID)){ + recordDelete = l; } } if (recordDelete == null) { System.out.println("Invalid userID , please try again"); - } - else { + } else { listOfSelfAssesementInput.remove(recordDelete); System.out.println("Self Assessment User Record Deleted "); + writeDataFromSelfAssessmentToFile(); } } public SelfAssessmentUserDetails findRecord(UUID userID) { - for (SelfAssessmentUserDetails l : listOfSelfAssesementInput) { - - if (l.getUserID() == userID) { + if (l.getUserID().equals(userID)) { return l; } } @@ -72,16 +92,16 @@ public void update (UUID id, Scanner input) { if (find(id)) { SelfAssessmentUserDetails userRecord = findRecord(id); - System.out.print("What is the your new answer to Question 1?"); + System.out.print("Do you need physical care and support due to difficulties managing with any of the following; personal care, accessing the community, getting in and out of bed, drink and meal prep? "); boolean answer1 = input.nextBoolean(); - System.out.print("What is the your new answer to Question 2?"); + System.out.print("Do you have any difficulties ascending and / or descending the stairs? "); boolean answer2 = input.nextBoolean(); - System.out.print("What is the your new answer to Question 3?"); + System.out.print("Do you have any difficulties accessing your bathing facilities? "); boolean answer3 = input.nextBoolean(); - System.out.print("What is the your new answer to Question 4?"); + System.out.print("Do you have difficulties accessing your property?"); boolean answer4 = input.nextBoolean(); System.out.print("What is the your new answer to Question 5?"); @@ -93,23 +113,46 @@ public void update (UUID id, Scanner input) { userRecord.setAnswer4(answer4); userRecord.setAnswer5(answer5); System.out.println("Self Asssessment User Record Updated Succesfully"); + writeDataFromSelfAssessmentToFile(); + } else { + System.out.println("Self assessment user record not found"); + } } - else { - System.out.println("Self assessment user record not found"); + public void display() { + if (listOfSelfAssesementInput.isEmpty()) { + System.out.println("No records found"); } + for (SelfAssessmentUserDetails userRecord : listOfSelfAssesementInput) { + System.out.println(userRecord.toString()); } + } - public void display() { - if (listOfSelfAssesementInput.isEmpty()) { - System.out.println("No records found"); - } - for (SelfAssessmentUserDetails userRecord : listOfSelfAssesementInput) { - System.out.println(userRecord.toString()); - } + +// code below is reading data from the JSON file and returning as a list + private LinkedList readDataFromFile() { + try(Reader reader = new FileReader(jsonFilePath)) { + Type listType = new TypeToken>() { + }.getType(); + return gson.fromJson(reader, listType); +// if file does not exist returns an empty list + } catch (FileNotFoundException e) { + return new LinkedList<>(); + } catch (IOException e) { + e.printStackTrace(); + return new LinkedList<>(); } + } + private void writeDataFromSelfAssessmentToFile() { + try(Writer writer = new FileWriter(jsonFilePath)){ + gson.toJson(listOfSelfAssesementInput, writer); + } catch (IOException e) { + e.printStackTrace(); + } } + +} diff --git a/src/main/resources/selfAssessmentData.json b/src/main/resources/selfAssessmentData.json index b0a362b..37f42da 100644 --- a/src/main/resources/selfAssessmentData.json +++ b/src/main/resources/selfAssessmentData.json @@ -5,12 +5,11 @@ "lastName": "Johnson", "yearOfBirth": 1998, "contactNumber": "01159172829", - "question 1": false, - "question 2": false, - "question 3": false, - "question 4": false, - "question 5": false - + "Do you need physical care and support due to difficulties managing with any of the following; personal care, accessing the community, getting in and out of bed, drink and meal prep?": false, + "Do you have any difficulties ascending and / or descending the stairs?": false, + "Do you have any difficulties accessing your bathing facilities?": false, + "Do you have difficulties accessing your property?": false, + "Do you have difficulties transferring on and off the bed, chair, toilet, sofa?": false } ] From e4fa0db5281c65993d0c65d8d0fb540199432256 Mon Sep 17 00:00:00 2001 From: Chella Date: Wed, 15 Nov 2023 23:24:33 +0000 Subject: [PATCH 16/36] api service complete? finish controller. and test --- .../SelfAssessmentController.java | 23 +++++++-- .../SelfAssessmentServiceForAPI.java | 48 ++++++++++++------- .../SelfAssessmentUserProgrammeFunctions.java | 11 ++++- 3 files changed, 59 insertions(+), 23 deletions(-) diff --git a/src/main/java/com/cbfacademy/apiassessment/SelfAssessmentController.java b/src/main/java/com/cbfacademy/apiassessment/SelfAssessmentController.java index 9939e34..6775f00 100644 --- a/src/main/java/com/cbfacademy/apiassessment/SelfAssessmentController.java +++ b/src/main/java/com/cbfacademy/apiassessment/SelfAssessmentController.java @@ -1,8 +1,15 @@ package com.cbfacademy.apiassessment; +import java.util.LinkedList; +import java.util.UUID; + +import javax.swing.RepaintManager; + import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.DeleteMapping; import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.PutMapping; import org.springframework.web.bind.annotation.RequestBody; @@ -19,15 +26,19 @@ public class SelfAssessmentController { SelfAssessmentServiceForAPI selfAssessmentService; // sends a request to retreieve the json file with the self assessment - @GetMapping() - public ResponseEntity LinkedList getSelfAssessment(){ - LinkedList selfAssessment = selfAssessmentService; + @GetMapping("/selfAssessment") + public ResponseEntity > retrieveSelfAssessment(){ + LinkedList selfAssessment = selfAssessmentService.retrieveSelfAssessment(); return ResponseEntity.ok(selfAssessment); } // creates the user self assessment - @PostMapping + @PostMapping("") + public ResponseEntity createUserSelfAssessment(@RequestMapping SelfAssessmentUserDetails answersFromUser) { + selfAssessmentService.createUserSelfAssessment(answersFromUser); + return ResponseEntity.ok().build(); + } // sends request to retreive json file with useful information to answers to the questions @@ -37,6 +48,10 @@ public ResponseEntity LinkedList getSelfAssessment(){ // allows user to update there self assessment following having access to the useful information @PutMapping + public ResponseEntity updateUserSelfAssessment(@PathVariable UUID id, @RequestBody SelfAssessmentUserDetails updateDetails) { + selfAssessmentService.updateUserSelfAssessment(id, updateDetails); + return ResponseEntity.ok().build(); + } // allows user to delete self assessment with there details diff --git a/src/main/java/com/cbfacademy/apiassessment/SelfAssessmentServiceForAPI.java b/src/main/java/com/cbfacademy/apiassessment/SelfAssessmentServiceForAPI.java index f9627f7..d15343a 100644 --- a/src/main/java/com/cbfacademy/apiassessment/SelfAssessmentServiceForAPI.java +++ b/src/main/java/com/cbfacademy/apiassessment/SelfAssessmentServiceForAPI.java @@ -1,21 +1,12 @@ package com.cbfacademy.apiassessment; -import java.io.FileNotFoundException; -import java.io.FileReader; -import java.io.FileWriter; -import java.io.IOException; -import java.io.Reader; -import java.io.Writer; -import java.lang.reflect.Type; + import java.util.LinkedList; +import java.util.Scanner; import java.util.UUID; import org.springframework.stereotype.Service; -import com.google.gson.Gson; -import com.google.gson.GsonBuilder; -import com.google.gson.reflect.TypeToken; - // Springboot service layer containing method the the controller class. @Service @@ -25,13 +16,39 @@ public class SelfAssessmentServiceForAPI { private final SelfAssessmentUserProgrammeFunctions programmeFunctions; public SelfAssessmentServiceForAPI(SelfAssessmentUserProgrammeFunctions programmeFunctions) { - this.programmeFunctions = programmeFunctions; - + this.programmeFunctions = programmeFunctions; } public LinkedList retrieveSelfAssessment() { return programmeFunctions.retrieveSelfAssessment(); } + + public void createUserSelfAssessment(SelfAssessmentUserDetails answerFromUser) { + programmeFunctions.add(answerFromUser); + } + + public void updateUserSelfAssessment(UUID id, Scanner input) { + programmeFunctions.update(id, input); + } + + public void deleteUser(UUID id) { + programmeFunctions.delete(id); + } + + + + + + + +} + + + + + + + @@ -58,7 +75,6 @@ public LinkedList retrieveSelfAssessment() { -} // public SelfAssessmentServiceForAPI(SelfAssessmentUserProgrammeFunctions programmeFunctions) { // this.programmeFunctions = programmeFunctions; @@ -76,9 +92,7 @@ public LinkedList retrieveSelfAssessment() { // } -// public void displayUserSelfAssessmentInputAsJSON() { -// listOfSelfAssesementInput = readDataFromFile(); -// } + // public void deleteUser(UUID id) { diff --git a/src/main/java/com/cbfacademy/apiassessment/SelfAssessmentUserProgrammeFunctions.java b/src/main/java/com/cbfacademy/apiassessment/SelfAssessmentUserProgrammeFunctions.java index 7eb6f37..0eae8e9 100644 --- a/src/main/java/com/cbfacademy/apiassessment/SelfAssessmentUserProgrammeFunctions.java +++ b/src/main/java/com/cbfacademy/apiassessment/SelfAssessmentUserProgrammeFunctions.java @@ -10,14 +10,14 @@ import java.io.Writer; import java.lang.reflect.Type; import java.util.LinkedList; +import java.util.Scanner; import java.util.UUID; -import org.springframework.stereotype.Service; - import com.google.gson.Gson; import com.google.gson.GsonBuilder; + // this class contains methods for functions for the Self Assessment Programme public class SelfAssessmentUserProgrammeFunctions { @@ -128,6 +128,13 @@ public void display() { } } + // public void displayAsJsonArray(){ + // if(SelfAssessmentUserDetails userRecord : listOfSelfAssesementInput) { + // JsonObject jsonRecord = new JsonObject(); + // jsonRecord.addProperty(jsonFilePath, jsonFilePath); + // } + // } + // code below is reading data from the JSON file and returning as a list private LinkedList readDataFromFile() { From f33522424989d9f3cbe1e9f60df7c98a69761629 Mon Sep 17 00:00:00 2001 From: Chella Date: Thu, 16 Nov 2023 19:57:13 +0000 Subject: [PATCH 17/36] trying to test api , merge create new branch --- pom.xml | 2 +- .../SelfAssessmentController.java | 58 +++++++++++-------- .../SelfAssessmentServiceForAPI.java | 1 + 3 files changed, 35 insertions(+), 26 deletions(-) diff --git a/pom.xml b/pom.xml index 5f69bf7..e527b4f 100644 --- a/pom.xml +++ b/pom.xml @@ -5,7 +5,7 @@ org.springframework.boot spring-boot-starter-parent - 3.1.4 + 3.1.5 com.cbfacademy diff --git a/src/main/java/com/cbfacademy/apiassessment/SelfAssessmentController.java b/src/main/java/com/cbfacademy/apiassessment/SelfAssessmentController.java index 6775f00..9884f7c 100644 --- a/src/main/java/com/cbfacademy/apiassessment/SelfAssessmentController.java +++ b/src/main/java/com/cbfacademy/apiassessment/SelfAssessmentController.java @@ -1,18 +1,19 @@ package com.cbfacademy.apiassessment; import java.util.LinkedList; -import java.util.UUID; +// import java.util.UUID; -import javax.swing.RepaintManager; +// import javax.swing.RepaintManager; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; -import org.springframework.web.bind.annotation.DeleteMapping; +// import org.springframework.web.bind.annotation.DeleteMapping; import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.PutMapping; -import org.springframework.web.bind.annotation.RequestBody; +// import org.springframework.web.bind.annotation.PathVariable; +// import org.springframework.web.bind.annotation.PostMapping; +// import org.springframework.web.bind.annotation.PutMapping; +// import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; @@ -21,41 +22,48 @@ public class SelfAssessmentController { +// end points @GetMapping @Autowired SelfAssessmentServiceForAPI selfAssessmentService; // sends a request to retreieve the json file with the self assessment + // @GetMapping("/selfAssessment") + // public ResponseEntity > retrieveSelfAssessment(){ + // LinkedList selfAssessment = selfAssessmentService.retrieveSelfAssessment(); + // return ResponseEntity.ok(selfAssessment); + // } + @GetMapping("/selfAssessment") - public ResponseEntity > retrieveSelfAssessment(){ - LinkedList selfAssessment = selfAssessmentService.retrieveSelfAssessment(); - return ResponseEntity.ok(selfAssessment); + public ResponseEntity > retrieveSelfAssessment() { + return new ResponseEntity<>(selfAssessmentService.retrieveSelfAssessment(), HttpStatus.OK); } // creates the user self assessment - @PostMapping("") - public ResponseEntity createUserSelfAssessment(@RequestMapping SelfAssessmentUserDetails answersFromUser) { - selfAssessmentService.createUserSelfAssessment(answersFromUser); - return ResponseEntity.ok().build(); - } +// @PostMapping("/selfAssessment") +// public ResponseEntity createUserSelfAssessment(@RequestMapping SelfAssessmentUserDetails answersFromUser) { +// selfAssessmentService.createUserSelfAssessment(answersFromUser); +// return ResponseEntity.ok().build(); +// } -// sends request to retreive json file with useful information to answers to the questions - @GetMapping +// // sends request to retreive json file with useful information to answers to the questions +// @GetMapping("/selfAssessment") -// allows user to update there self assessment following having access to the useful information - @PutMapping - public ResponseEntity updateUserSelfAssessment(@PathVariable UUID id, @RequestBody SelfAssessmentUserDetails updateDetails) { - selfAssessmentService.updateUserSelfAssessment(id, updateDetails); - return ResponseEntity.ok().build(); - } + +// // allows user to update there self assessment following having access to the useful information +// @PutMapping("") +// public ResponseEntity updateUserSelfAssessment(@PathVariable UUID id, @RequestBody SelfAssessmentUserDetails updateDetails) { +// selfAssessmentService.updateUserSelfAssessment(id, updateDetails); +// return ResponseEntity.ok().build(); +// } -// allows user to delete self assessment with there details - @DeleteMapping +// // allows user to delete self assessment with there details +// @DeleteMapping("") } diff --git a/src/main/java/com/cbfacademy/apiassessment/SelfAssessmentServiceForAPI.java b/src/main/java/com/cbfacademy/apiassessment/SelfAssessmentServiceForAPI.java index d15343a..e727720 100644 --- a/src/main/java/com/cbfacademy/apiassessment/SelfAssessmentServiceForAPI.java +++ b/src/main/java/com/cbfacademy/apiassessment/SelfAssessmentServiceForAPI.java @@ -7,6 +7,7 @@ import org.springframework.stereotype.Service; + // Springboot service layer containing method the the controller class. @Service From ef7f7662f69ec37ac6e17e22bbaff0e5b5eca14b Mon Sep 17 00:00:00 2001 From: Chella Date: Thu, 16 Nov 2023 20:12:44 +0000 Subject: [PATCH 18/36] testing --- .../com/cbfacademy/apiassessment/App.java | 22 --------- .../SelfAssessmentController.java | 18 +++---- .../SelfAssessmentUserDetails.java | 2 +- .../cbfacademy/apiassessment/AppTests.java | 49 ------------------- 4 files changed, 10 insertions(+), 81 deletions(-) delete mode 100644 src/main/java/com/cbfacademy/apiassessment/App.java delete mode 100644 src/test/java/com/cbfacademy/apiassessment/AppTests.java diff --git a/src/main/java/com/cbfacademy/apiassessment/App.java b/src/main/java/com/cbfacademy/apiassessment/App.java deleted file mode 100644 index 83b50f4..0000000 --- a/src/main/java/com/cbfacademy/apiassessment/App.java +++ /dev/null @@ -1,22 +0,0 @@ -package com.cbfacademy.apiassessment; - -import org.springframework.boot.SpringApplication; -import org.springframework.boot.autoconfigure.SpringBootApplication; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.RequestParam; -import org.springframework.web.bind.annotation.RestController; - -@SpringBootApplication -@RestController -public class App { - - public static void main(String[] args) { - SpringApplication.run(App.class, args); - } - - @GetMapping("/greeting") - public String greeting(@RequestParam(value = "name", defaultValue = "World") String name) { - return String.format("Hello %s", name); - } - -} diff --git a/src/main/java/com/cbfacademy/apiassessment/SelfAssessmentController.java b/src/main/java/com/cbfacademy/apiassessment/SelfAssessmentController.java index 9884f7c..e79e7cc 100644 --- a/src/main/java/com/cbfacademy/apiassessment/SelfAssessmentController.java +++ b/src/main/java/com/cbfacademy/apiassessment/SelfAssessmentController.java @@ -6,7 +6,7 @@ // import javax.swing.RepaintManager; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.http.HttpStatus; +// import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; // import org.springframework.web.bind.annotation.DeleteMapping; import org.springframework.web.bind.annotation.GetMapping; @@ -28,17 +28,17 @@ public class SelfAssessmentController { SelfAssessmentServiceForAPI selfAssessmentService; // sends a request to retreieve the json file with the self assessment + @GetMapping("/selfAssessment") + public ResponseEntity > retrieveSelfAssessment(){ + LinkedList selfAssessment = selfAssessmentService.retrieveSelfAssessment(); + return ResponseEntity.ok(selfAssessment); + } + // @GetMapping("/selfAssessment") - // public ResponseEntity > retrieveSelfAssessment(){ - // LinkedList selfAssessment = selfAssessmentService.retrieveSelfAssessment(); - // return ResponseEntity.ok(selfAssessment); + // public ResponseEntity > retrieveSelfAssessment() { + // return new ResponseEntity<>(selfAssessmentService.retrieveSelfAssessment(), HttpStatus.OK); // } - @GetMapping("/selfAssessment") - public ResponseEntity > retrieveSelfAssessment() { - return new ResponseEntity<>(selfAssessmentService.retrieveSelfAssessment(), HttpStatus.OK); - } - // creates the user self assessment // @PostMapping("/selfAssessment") diff --git a/src/main/java/com/cbfacademy/apiassessment/SelfAssessmentUserDetails.java b/src/main/java/com/cbfacademy/apiassessment/SelfAssessmentUserDetails.java index 1373e9c..2c7bb9e 100644 --- a/src/main/java/com/cbfacademy/apiassessment/SelfAssessmentUserDetails.java +++ b/src/main/java/com/cbfacademy/apiassessment/SelfAssessmentUserDetails.java @@ -133,7 +133,7 @@ public void setAnswer5(boolean answer5) { // toString merthod to return list of values inputted when called @Override public String toString() { - return "Self assessment details - {" + userID + firstName + " , " + lastName + " , " + yearOfBirth + " , " + contactNumber + " , " + answer1 + " , " + answer2 + " , " + answer3 + " , " + answer4 + " , " + answer5 + " }"; + return "Self assessment details - { " + userID + firstName + " , " + lastName + " , " + yearOfBirth + " , " + contactNumber + " , " + answer1 + " , " + answer2 + " , " + answer3 + " , " + answer4 + " , " + answer5 + " }"; } diff --git a/src/test/java/com/cbfacademy/apiassessment/AppTests.java b/src/test/java/com/cbfacademy/apiassessment/AppTests.java deleted file mode 100644 index c551ee8..0000000 --- a/src/test/java/com/cbfacademy/apiassessment/AppTests.java +++ /dev/null @@ -1,49 +0,0 @@ -package com.cbfacademy.apiassessment; - -import org.junit.jupiter.api.BeforeEach; -import org.junit.jupiter.api.Test; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.boot.test.context.SpringBootTest; -import org.springframework.boot.test.web.client.TestRestTemplate; -import org.springframework.boot.test.web.server.LocalServerPort; -import org.springframework.context.annotation.Description; -import org.springframework.http.ResponseEntity; - -import java.net.URL; - -import static org.junit.jupiter.api.Assertions.assertEquals; - -@SpringBootTest(classes = App.class, webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT) -class AppTests { - - @LocalServerPort - private int port; - - private URL base; - - @Autowired - private TestRestTemplate restTemplate; - - @BeforeEach - public void setUp() throws Exception { - this.base = new URL("http://localhost:" + port + "/greeting"); - } - - @Test - @Description("/greeting endpoint returns expected response for default name") - public void greeting_ExpectedResponseWithDefaultName() { - ResponseEntity response = restTemplate.getForEntity(base.toString(), String.class); - - assertEquals(200, response.getStatusCode().value()); - assertEquals("Hello World", response.getBody()); - } - - @Test - @Description("/greeting endpoint returns expected response for specified name parameter") - public void greeting_ExpectedResponseWithNameParam() { - ResponseEntity response = restTemplate.getForEntity(base.toString() + "?name=John", String.class); - - assertEquals(200, response.getStatusCode().value()); - assertEquals("Hello John", response.getBody()); - } -} From e454bb73c82122a8ed2611b0af4c4ad99179ed79 Mon Sep 17 00:00:00 2001 From: Chella Date: Thu, 16 Nov 2023 21:36:44 +0000 Subject: [PATCH 19/36] api is retreiving json file !!! finish requests --- pom.xml | 12 +- .../SelfAssessmentController.java | 10 +- .../SelfAssessmentServiceForAPI.java | 1 + .../SelfAssessmentUserDetails.java | 22 +- .../SelfAssessmentUserProgramme.java | 222 ++++++++++-------- .../SelfAssessmentUserProgrammeFunctions.java | 19 +- src/main/resources/selfAssessmentData.json | 20 +- 7 files changed, 170 insertions(+), 136 deletions(-) diff --git a/pom.xml b/pom.xml index e527b4f..ed2f79e 100644 --- a/pom.xml +++ b/pom.xml @@ -34,12 +34,12 @@ test - - com.google.code.gson - gson - 2.8.5 - - + + com.google.code.gson + gson + 2.8.5 + + diff --git a/src/main/java/com/cbfacademy/apiassessment/SelfAssessmentController.java b/src/main/java/com/cbfacademy/apiassessment/SelfAssessmentController.java index e79e7cc..eab1d89 100644 --- a/src/main/java/com/cbfacademy/apiassessment/SelfAssessmentController.java +++ b/src/main/java/com/cbfacademy/apiassessment/SelfAssessmentController.java @@ -6,6 +6,7 @@ // import javax.swing.RepaintManager; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.autoconfigure.SpringBootApplication; // import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; // import org.springframework.web.bind.annotation.DeleteMapping; @@ -17,15 +18,20 @@ import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; + +@SpringBootApplication @RestController @RequestMapping("/api/activities-of-daily-living-self-assessment") public class SelfAssessmentController { // end points @GetMapping + SelfAssessmentServiceForAPI selfAssessmentService; + public SelfAssessmentController(SelfAssessmentServiceForAPI selfAssessmentService) { + this.selfAssessmentService = selfAssessmentService; + } - @Autowired - SelfAssessmentServiceForAPI selfAssessmentService; +// // sends a request to retreieve the json file with the self assessment @GetMapping("/selfAssessment") diff --git a/src/main/java/com/cbfacademy/apiassessment/SelfAssessmentServiceForAPI.java b/src/main/java/com/cbfacademy/apiassessment/SelfAssessmentServiceForAPI.java index e727720..b5a7850 100644 --- a/src/main/java/com/cbfacademy/apiassessment/SelfAssessmentServiceForAPI.java +++ b/src/main/java/com/cbfacademy/apiassessment/SelfAssessmentServiceForAPI.java @@ -5,6 +5,7 @@ import java.util.Scanner; import java.util.UUID; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; diff --git a/src/main/java/com/cbfacademy/apiassessment/SelfAssessmentUserDetails.java b/src/main/java/com/cbfacademy/apiassessment/SelfAssessmentUserDetails.java index 2c7bb9e..2266bf6 100644 --- a/src/main/java/com/cbfacademy/apiassessment/SelfAssessmentUserDetails.java +++ b/src/main/java/com/cbfacademy/apiassessment/SelfAssessmentUserDetails.java @@ -18,6 +18,8 @@ public class SelfAssessmentUserDetails { private Boolean answer5; // default constructor + // non of my internal values are being processed + // need to set default values public SelfAssessmentUserDetails() {} @@ -26,16 +28,16 @@ public SelfAssessmentUserDetails(UUID userID, String firstName, String lastName, // this.userID = userID set as UUID ? this.uuid = uuid.randomid this.userID = UUID.randomUUID(); // randomUUID method. change - this.userID = userID; - this.firstName = firstName; - this.lastName = lastName; - this.yearOfBirth = yearOfBirth; - this.contactNumber = contactNumber; - this.answer1 = answer1; - this.answer2 = answer2; - this.answer3 = answer3; - this.answer4 = answer4; - this.answer5 = answer5; + this.userID = UUID.randomUUID(); + this.firstName = "firstName"; + this.lastName = "lastName"; + this.yearOfBirth = 1998; + this.contactNumber = "contactNumber"; + this.answer1 = false; + this.answer2 = false; + this.answer3 = false; + this.answer4 = false; + this.answer5 = false; } diff --git a/src/main/java/com/cbfacademy/apiassessment/SelfAssessmentUserProgramme.java b/src/main/java/com/cbfacademy/apiassessment/SelfAssessmentUserProgramme.java index 0aa78db..aec4236 100644 --- a/src/main/java/com/cbfacademy/apiassessment/SelfAssessmentUserProgramme.java +++ b/src/main/java/com/cbfacademy/apiassessment/SelfAssessmentUserProgramme.java @@ -1,159 +1,173 @@ package com.cbfacademy.apiassessment; -import java.util.Scanner; -import java.util.UUID; +// import java.util.Scanner; +// import java.util.UUID; + +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.context.annotation.ComponentScan; +import org.springframework.web.bind.annotation.RestController; + + +@SpringBootApplication +@RestController +@ComponentScan("com.cbfacademy.apiassessment") public class SelfAssessmentUserProgramme { public static void main(String[] args) { + SpringApplication.run(SelfAssessmentUserProgramme.class , args); - SelfAssessmentUserProgrammeFunctions userProgramme = new SelfAssessmentUserProgrammeFunctions(); - SelfAssessmentUserDetails userRecord = new SelfAssessmentUserDetails(); +// SelfAssessmentUserProgrammeFunctions userProgramme = new SelfAssessmentUserProgrammeFunctions(); - try (Scanner input = new Scanner(System.in)) { - int option = 0; +// SelfAssessmentUserDetails userRecord = new SelfAssessmentUserDetails(); - do { - SelfAssessmentProgrammeMenuInterface(); - option = input.nextInt(); +// try (Scanner input = new Scanner(System.in)) { +// int option = 0; - switch (option) { +// do { +// SelfAssessmentProgrammeMenuInterface(); +// option = input.nextInt(); - case 1: +// switch (option) { - System.out.print("Press any key to generate your userID "); - input.nextLine(); - input.nextLine(); - UUID userID = userRecord.getUserID(); - System.out.print("Your user ID is *make note of this!* = " + userID); - input.nextLine(); +// case 1: + +// System.out.print("Press any key to generate your userID "); +// input.nextLine(); +// input.nextLine(); +// UUID userID = userRecord.getUserID(); +// System.out.print("Your user ID is *make note of this!* = " + userID); +// input.nextLine(); - System.out.print("What is your first name? "); +// System.out.print("What is your first name? "); - String firstName = input.nextLine(); +// String firstName = input.nextLine(); - System.out.print("What is your last name? "); +// System.out.print("What is your last name? "); - String lastName = input.nextLine(); +// String lastName = input.nextLine(); - System.out.print("What is your year of birth? "); +// System.out.print("What is your year of birth? "); - int yearOfBirth = input.nextInt(); +// int yearOfBirth = input.nextInt(); - System.out.print("What is your contact number? "); +// System.out.print("What is your contact number? "); - String contactNumber = input.nextLine(); - input.nextLine(); +// String contactNumber = input.nextLine(); +// input.nextLine(); - System.out.println("Do you need physical care and support due to difficulties managing with any of the following; personal care, accessing the community, getting in and out of bed, drink and meal prep? "); +// System.out.println("Do you need physical care and support due to difficulties managing with any of the following; personal care, accessing the community, getting in and out of bed, drink and meal prep? "); - boolean answer1 = input.nextBoolean(); +// boolean answer1 = input.nextBoolean(); - System.out.println("Do you have any difficulties ascending and / or descending the stairs? "); - boolean answer2 = input.nextBoolean(); +// System.out.println("Do you have any difficulties ascending and / or descending the stairs? "); +// boolean answer2 = input.nextBoolean(); - System.out.println("Do you have any difficulties accessing your bathing facilities? "); - boolean answer3 = input.nextBoolean(); +// System.out.println("Do you have any difficulties accessing your bathing facilities? "); +// boolean answer3 = input.nextBoolean(); - System.out.println("Do you have difficulties accessing your property? "); - boolean answer4 = input.nextBoolean(); +// System.out.println("Do you have difficulties accessing your property? "); +// boolean answer4 = input.nextBoolean(); - System.out.println("Do you have difficulties transferring on and off the bed, chair, toilet, sofa? "); - boolean answer5 = input.nextBoolean(); +// System.out.println("Do you have difficulties transferring on and off the bed, chair, toilet, sofa? "); +// boolean answer5 = input.nextBoolean(); - userRecord = new SelfAssessmentUserDetails(userID, firstName, lastName, yearOfBirth, contactNumber, answer1, answer2, answer3, answer4, answer5); +// userRecord = new SelfAssessmentUserDetails(userID, firstName, lastName, yearOfBirth, contactNumber, answer1, answer2, answer3, answer4, answer5); - userProgramme.add(userRecord); - System.out.println(userRecord.toString()); +// userProgramme.add(userRecord); +// System.out.println(userRecord.toString()); - break; +// break; - case 2: +// case 2: - System.out.print("What is your user ID?"); - String uuidInput = input.nextLine(); - try { - UUID deleteRecord = UUID.fromString(uuidInput); - userProgramme.delete(deleteRecord); - } +// System.out.print("What is your user ID?"); +// String uuidInput = input.nextLine(); +// try { +// UUID deleteRecord = UUID.fromString(uuidInput); +// userProgramme.delete(deleteRecord); +// } - catch (IllegalArgumentException e) { - System.out.println("Invalid userID"); +// catch (IllegalArgumentException e) { +// System.out.println("Invalid userID"); - } +// } - break; +// break; - case 3: +// case 3: - System.out.print("What is your your user name? "); - String uuidIDUpdate = input.nextLine(); - try { - UUID updateRecod = UUID.fromString(uuidIDUpdate); - userProgramme.update(updateRecod, input); - } +// System.out.print("What is your your user name? "); +// String uuidIDUpdate = input.nextLine(); +// try { +// UUID updateRecod = UUID.fromString(uuidIDUpdate); +// userProgramme.update(updateRecod, input); +// } - catch (IllegalArgumentException e) { - System.out.println("Invalid userID"); +// catch (IllegalArgumentException e) { +// System.out.println("Invalid userID"); - } +// } - case 4: +// case 4: - System.out.print("What is your user name?"); - String uuidInputFindRecord = input.nextLine(); +// System.out.print("What is your user name?"); +// String uuidInputFindRecord = input.nextLine(); - try { - UUID findRecord = UUID.fromString(uuidInputFindRecord); - userProgramme.find(findRecord); - } - - catch (IllegalArgumentException e) { - System.out.println("Invalid userID"); - } - - break; -// display method working in interface. - case 5: - userProgramme.display(); - break; - - case 6: - System.out.println("End of Self Assessment. Thank you for your time"); - System.exit(0); - - break; +// try { +// UUID findRecord = UUID.fromString(uuidInputFindRecord); +// userProgramme.find(findRecord); +// } + +// catch (IllegalArgumentException e) { +// System.out.println("Invalid userID"); +// } + +// break; +// // display method working in interface. +// case 5: +// userProgramme.display(); +// break; + +// case 6: +// System.out.println("End of Self Assessment. Thank you for your time"); +// System.exit(0); + +// break; - default: - System.out.println(" Invalid input please select options 1 to 6"); - break; +// default: +// System.out.println(" Invalid input please select options 1 to 6"); +// break; - } - } +// } +// } - while (option != 6); - } - } +// while (option != 6); +// } +// } - public static void SelfAssessmentProgrammeMenuInterface() { +// public static void SelfAssessmentProgrammeMenuInterface() { - // Printing statements displaying menu on console - - System.out.println("Please choose an option below"); - System.out.println("1: Complete Self Assessment"); - System.out.println("2: Delete Users Self Assessment"); - System.out.println("3: Update Self Assessment"); - System.out.println("4: Search User"); - System.out.println("5: Display list of completed Self Assessments"); - System.out.println("6: Exit program"); - System.out.print("Enter your selection : "); - } +// // Printing statements displaying menu on console + +// System.out.println("Please choose an option below"); +// System.out.println("1: Complete Self Assessment"); +// System.out.println("2: Delete Users Self Assessment"); +// System.out.println("3: Update Self Assessment"); +// System.out.println("4: Search User"); +// System.out.println("5: Display list of completed Self Assessments"); +// System.out.println("6: Exit program"); +// System.out.print("Enter your selection : "); +// } } + +} diff --git a/src/main/java/com/cbfacademy/apiassessment/SelfAssessmentUserProgrammeFunctions.java b/src/main/java/com/cbfacademy/apiassessment/SelfAssessmentUserProgrammeFunctions.java index 0eae8e9..2b83ae3 100644 --- a/src/main/java/com/cbfacademy/apiassessment/SelfAssessmentUserProgrammeFunctions.java +++ b/src/main/java/com/cbfacademy/apiassessment/SelfAssessmentUserProgrammeFunctions.java @@ -13,23 +13,34 @@ import java.util.Scanner; import java.util.UUID; +import org.springframework.stereotype.Component; +import org.springframework.util.ResourceUtils; + import com.google.gson.Gson; import com.google.gson.GsonBuilder; - +@Component // this class contains methods for functions for the Self Assessment Programme public class SelfAssessmentUserProgrammeFunctions { private LinkedList listOfSelfAssesementInput; - private final String jsonFilePath = "selfAssessmentData.json"; + private String jsonFilePath; private final Gson gson; public SelfAssessmentUserProgrammeFunctions() { - - listOfSelfAssesementInput = readDataFromFile(); + try { + jsonFilePath = ResourceUtils.getFile("classpath:selfAssessmentData.json").getAbsolutePath(); + } + catch (FileNotFoundException e) { + jsonFilePath = "selfAssessment.json"; + } + gson = new GsonBuilder().setPrettyPrinting().create(); + listOfSelfAssesementInput = readDataFromFile(); + + } diff --git a/src/main/resources/selfAssessmentData.json b/src/main/resources/selfAssessmentData.json index 37f42da..43e6344 100644 --- a/src/main/resources/selfAssessmentData.json +++ b/src/main/resources/selfAssessmentData.json @@ -1,15 +1,15 @@ [ { - "userID": "" , - "firstName": "Chella", - "lastName": "Johnson", - "yearOfBirth": 1998, - "contactNumber": "01159172829", - "Do you need physical care and support due to difficulties managing with any of the following; personal care, accessing the community, getting in and out of bed, drink and meal prep?": false, - "Do you have any difficulties ascending and / or descending the stairs?": false, - "Do you have any difficulties accessing your bathing facilities?": false, - "Do you have difficulties accessing your property?": false, - "Do you have difficulties transferring on and off the bed, chair, toilet, sofa?": false + "userID": "5fb8270e-a490-4d98-8386-e6fd08a55dd2" , + "firstName": "", + "lastName": "", + "yearOfBirth": 0, + "contactNumber": "", + "answer1": false, + "answer2": false, + "answer3": false, + "answer4": false, + "answer5": false } ] From 6c6bb8a926931dacb4ea6a4e8afb4535e1e94f6f Mon Sep 17 00:00:00 2001 From: Chella Date: Fri, 17 Nov 2023 20:46:30 +0000 Subject: [PATCH 20/36] switch to different brach, implement post and get --- src/main/resources/selfAssessmentData.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/main/resources/selfAssessmentData.json b/src/main/resources/selfAssessmentData.json index 43e6344..b0cb9b8 100644 --- a/src/main/resources/selfAssessmentData.json +++ b/src/main/resources/selfAssessmentData.json @@ -1,10 +1,10 @@ [ { "userID": "5fb8270e-a490-4d98-8386-e6fd08a55dd2" , - "firstName": "", - "lastName": "", + "firstName": "What is your first Name", + "lastName": "What is your last Name", "yearOfBirth": 0, - "contactNumber": "", + "contactNumber": "What is your contactNumber", "answer1": false, "answer2": false, "answer3": false, From 99c2a8ee0f5122a90e177f611ee3278e3dffcdcc Mon Sep 17 00:00:00 2001 From: Chella Date: Sat, 18 Nov 2023 21:22:24 +0000 Subject: [PATCH 21/36] two get request complete. post :/ --- .../cbfacademy/apiassessment/Question.java | 65 +++++++ .../SelfAssessmentController.java | 21 +- .../SelfAssessmentServiceForAPI.java | 21 +- .../SelfAssessmentUserDetails.java | 10 +- .../SelfAssessmentUserProgrammeFunctions.java | 184 ++++++++++-------- src/main/resources/selfAssessmentData.json | 10 +- .../resources/selfAssessmentQuestions.json | 10 + .../SelfAssessmentUserDetailsTest.java | 11 +- 8 files changed, 215 insertions(+), 117 deletions(-) create mode 100644 src/main/java/com/cbfacademy/apiassessment/Question.java create mode 100644 src/main/resources/selfAssessmentQuestions.json diff --git a/src/main/java/com/cbfacademy/apiassessment/Question.java b/src/main/java/com/cbfacademy/apiassessment/Question.java new file mode 100644 index 0000000..a18131d --- /dev/null +++ b/src/main/java/com/cbfacademy/apiassessment/Question.java @@ -0,0 +1,65 @@ +package com.cbfacademy.apiassessment; + +public class Question { + + private String question1 = "Do you need physical care and support due to difficulties managing with any of the following; personal care, accessing the community, getting in and out of bed, drink and meal prep?"; + private String question2 = "Do you have any difficulties ascending and / or descending the stairs?"; + private String question3 = "Do you have any difficulties accessing your bathing facilities?"; + private String question4 = "Do you have difficulties accessing your property?"; + private String question5 = "Do you have difficulties transferring on and off the bed, chair, toilet, sofa?"; + + + public Question() { + this.question1 = "Do you need physical care and support due to difficulties managing with any of the following; personal care, accessing the community, getting in and out of bed, drink and meal prep?"; + this.question2 = "Do you have any difficulties ascending and / or descending the stairs? "; + this.question3 = "Do you have any difficulties accessing your bathing facilities?"; + this.question4 = "Do you have difficulties accessing your property? "; + this.question5 = "Do you have difficulties transferring on and off the bed, chair, toilet, sofa?"; + } + + public String getQuestion1() { + return this.question1; + } + + public void setQuestion1(String question1) { + this.question1 = question1; + } + + public String getQuestion2() { + return this.question2; + } + + public void setQuestion2(String question2) { + this.question2 = question2; + } + + public String getQuestion3() { + return this.question3; + } + + public void setQuestion3(String question3) { + this.question3 = question3; + } + + public String getQuestion4() { + return this.question4; + } + + public void setQuestion4(String question4) { + this.question4 = question4; + } + + public String getQuestion5() { + return this.question5; + } + + public void setQuestion5(String question5) { + this.question5 = question5; + } + + + + + + +} diff --git a/src/main/java/com/cbfacademy/apiassessment/SelfAssessmentController.java b/src/main/java/com/cbfacademy/apiassessment/SelfAssessmentController.java index eab1d89..2b3def7 100644 --- a/src/main/java/com/cbfacademy/apiassessment/SelfAssessmentController.java +++ b/src/main/java/com/cbfacademy/apiassessment/SelfAssessmentController.java @@ -5,7 +5,6 @@ // import javax.swing.RepaintManager; -import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.autoconfigure.SpringBootApplication; // import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; @@ -21,7 +20,7 @@ @SpringBootApplication @RestController -@RequestMapping("/api/activities-of-daily-living-self-assessment") +@RequestMapping("/api") public class SelfAssessmentController { @@ -33,18 +32,20 @@ public SelfAssessmentController(SelfAssessmentServiceForAPI selfAssessmentServi // -// sends a request to retreieve the json file with the self assessment - @GetMapping("/selfAssessment") - public ResponseEntity > retrieveSelfAssessment(){ +// sends a request to retreieve the json file with the self assessment questions + @GetMapping("/selfAssessmentQuestions") + public ResponseEntity > retrieveSelfAssessmentQuestions(){ + LinkedList selfAssessmentQuestions = selfAssessmentService.retrieveQuestions(); + return ResponseEntity.ok(selfAssessmentQuestions); + } + +// sends request to retreive the json file with self assessment data + @GetMapping("/selfAssessmentQuestions/selfAssessmentData") + public ResponseEntity > retrieveSelfAssessmentData(){ LinkedList selfAssessment = selfAssessmentService.retrieveSelfAssessment(); return ResponseEntity.ok(selfAssessment); } - // @GetMapping("/selfAssessment") - // public ResponseEntity > retrieveSelfAssessment() { - // return new ResponseEntity<>(selfAssessmentService.retrieveSelfAssessment(), HttpStatus.OK); - // } - // creates the user self assessment // @PostMapping("/selfAssessment") diff --git a/src/main/java/com/cbfacademy/apiassessment/SelfAssessmentServiceForAPI.java b/src/main/java/com/cbfacademy/apiassessment/SelfAssessmentServiceForAPI.java index b5a7850..de373eb 100644 --- a/src/main/java/com/cbfacademy/apiassessment/SelfAssessmentServiceForAPI.java +++ b/src/main/java/com/cbfacademy/apiassessment/SelfAssessmentServiceForAPI.java @@ -2,10 +2,7 @@ import java.util.LinkedList; -import java.util.Scanner; -import java.util.UUID; -import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -21,21 +18,25 @@ public SelfAssessmentServiceForAPI(SelfAssessmentUserProgrammeFunctions programm this.programmeFunctions = programmeFunctions; } + public LinkedList retrieveQuestions() { + return programmeFunctions.retrieveSelfAssessmentQuestions(); + } + public LinkedList retrieveSelfAssessment() { - return programmeFunctions.retrieveSelfAssessment(); + return programmeFunctions.retrieveSelfAssessment(); } public void createUserSelfAssessment(SelfAssessmentUserDetails answerFromUser) { programmeFunctions.add(answerFromUser); } - public void updateUserSelfAssessment(UUID id, Scanner input) { - programmeFunctions.update(id, input); - } + // public void updateUserSelfAssessment(UUID id, Scanner input) { + // programmeFunctions.update(id, input); + // } - public void deleteUser(UUID id) { - programmeFunctions.delete(id); - } + // public void deleteUser(UUID id) { + // programmeFunctions.delete(id); + // } diff --git a/src/main/java/com/cbfacademy/apiassessment/SelfAssessmentUserDetails.java b/src/main/java/com/cbfacademy/apiassessment/SelfAssessmentUserDetails.java index 2266bf6..c320131 100644 --- a/src/main/java/com/cbfacademy/apiassessment/SelfAssessmentUserDetails.java +++ b/src/main/java/com/cbfacademy/apiassessment/SelfAssessmentUserDetails.java @@ -1,12 +1,11 @@ package com.cbfacademy.apiassessment; -import java.util.UUID; // class containing getters and setters for to take input of values public class SelfAssessmentUserDetails { - private UUID userID; + private String userID; private String firstName; private String lastName; private int yearOfBirth; @@ -24,11 +23,11 @@ public class SelfAssessmentUserDetails { public SelfAssessmentUserDetails() {} - public SelfAssessmentUserDetails(UUID userID, String firstName, String lastName, int yearOfBirth, String contactNumber, boolean answer1, boolean answer2, boolean answer3, boolean answer4, boolean answer5) { + public SelfAssessmentUserDetails(String userID, String firstName, String lastName, int yearOfBirth, String contactNumber, boolean answer1, boolean answer2, boolean answer3, boolean answer4, boolean answer5) { // this.userID = userID set as UUID ? this.uuid = uuid.randomid this.userID = UUID.randomUUID(); // randomUUID method. change - this.userID = UUID.randomUUID(); + this.userID = "123"; this.firstName = "firstName"; this.lastName = "lastName"; this.yearOfBirth = 1998; @@ -43,8 +42,7 @@ public SelfAssessmentUserDetails(UUID userID, String firstName, String lastName, - public UUID getUserID() { - UUID userID = UUID.randomUUID(); + public String getUserID() { return userID; } diff --git a/src/main/java/com/cbfacademy/apiassessment/SelfAssessmentUserProgrammeFunctions.java b/src/main/java/com/cbfacademy/apiassessment/SelfAssessmentUserProgrammeFunctions.java index 2b83ae3..ea56406 100644 --- a/src/main/java/com/cbfacademy/apiassessment/SelfAssessmentUserProgrammeFunctions.java +++ b/src/main/java/com/cbfacademy/apiassessment/SelfAssessmentUserProgrammeFunctions.java @@ -10,8 +10,7 @@ import java.io.Writer; import java.lang.reflect.Type; import java.util.LinkedList; -import java.util.Scanner; -import java.util.UUID; + import org.springframework.stereotype.Component; import org.springframework.util.ResourceUtils; @@ -25,33 +24,43 @@ public class SelfAssessmentUserProgrammeFunctions { - private LinkedList listOfSelfAssesementInput; + private LinkedList questions; + private LinkedList userDetailsInput; + private String jsonFilePath; + private String jsonFilePathUserDetails; private final Gson gson; public SelfAssessmentUserProgrammeFunctions() { try { - jsonFilePath = ResourceUtils.getFile("classpath:selfAssessmentData.json").getAbsolutePath(); + jsonFilePath = ResourceUtils.getFile("classpath:selfAssessmentQuestions.json").getAbsolutePath(); + jsonFilePathUserDetails = ResourceUtils.getFile("classpath:selfAssessmentData.json").getAbsolutePath(); } catch (FileNotFoundException e) { - jsonFilePath = "selfAssessment.json"; + jsonFilePath = "selfAssessmentQuestions.json"; + jsonFilePathUserDetails = "selfAssessmentData.json"; } gson = new GsonBuilder().setPrettyPrinting().create(); - listOfSelfAssesementInput = readDataFromFile(); + questions = readDataFromFile(); + userDetailsInput = readUserDetailsDataFromFile(); + } + + public LinkedList retrieveSelfAssessmentQuestions() { + return questions; } public LinkedList retrieveSelfAssessment() { - return listOfSelfAssesementInput; + return userDetailsInput; } public void add(SelfAssessmentUserDetails recordOfDetails) { if (!find(recordOfDetails.getUserID())) { - listOfSelfAssesementInput.add(recordOfDetails); + userDetailsInput.add(recordOfDetails); writeDataFromSelfAssessmentToFile(); } else { @@ -59,9 +68,9 @@ public void add(SelfAssessmentUserDetails recordOfDetails) { } } - public boolean find(UUID userID) { + public boolean find(String userID) { - for(SelfAssessmentUserDetails l : listOfSelfAssesementInput) { + for(SelfAssessmentUserDetails l : userDetailsInput) { if (l.getUserID().equals(userID)) { @@ -71,73 +80,103 @@ public boolean find(UUID userID) { } return false; } - - public void delete (UUID recUserID) { - - SelfAssessmentUserDetails recordDelete = null; - for(SelfAssessmentUserDetails l : listOfSelfAssesementInput) { - if (l.getUserID().equals(recUserID)){ - recordDelete = l; - } - } - if (recordDelete == null) { - System.out.println("Invalid userID , please try again"); - } else { - listOfSelfAssesementInput.remove(recordDelete); - System.out.println("Self Assessment User Record Deleted "); - writeDataFromSelfAssessmentToFile(); + // code below is reading data from the JSON file and returning as a list + private LinkedList readDataFromFile() { + try(Reader reader = new FileReader(jsonFilePath)) { + Type listType = new TypeToken>() { + }.getType(); + return gson.fromJson(reader, listType); +// if file does not exist returns an empty list + } catch (FileNotFoundException e) { + return new LinkedList<>(); + } catch (IOException e) { + e.printStackTrace(); + return new LinkedList<>(); } } - public SelfAssessmentUserDetails findRecord(UUID userID) { - for (SelfAssessmentUserDetails l : listOfSelfAssesementInput) { - if (l.getUserID().equals(userID)) { - return l; - } + private LinkedList readUserDetailsDataFromFile() { + try(Reader reader2 = new FileReader(jsonFilePathUserDetails)) { + Type listType2 = new TypeToken>() { + }.getType(); + return gson.fromJson(reader2, listType2); +// if file does not exist returns an empty list + } catch (FileNotFoundException e) { + return new LinkedList<>(); + } catch (IOException e) { + e.printStackTrace(); + return new LinkedList<>(); } - return null; - } - public void update (UUID id, Scanner input) { - if (find(id)) { - SelfAssessmentUserDetails userRecord = findRecord(id); + } + + // public void delete (UUID recUserID) { + + // SelfAssessmentUserDetails recordDelete = null; + + // for(SelfAssessmentUserDetails l : listOfSelfAssesementInput) { + // if (l.getUserID().equals(recUserID)){ + // recordDelete = l; + // } + // } + // if (recordDelete == null) { + // System.out.println("Invalid userID , please try again"); + // } else { + // listOfSelfAssesementInput.remove(recordDelete); + // System.out.println("Self Assessment User Record Deleted "); + // writeDataFromSelfAssessmentToFile(); + // } + // } + + // public SelfAssessmentUserDetails findRecord(UUID userID) { + // for (SelfAssessmentUserDetails l : listOfSelfAssesementInput) { + // if (l.getUserID().equals(userID)) { + // return l; + // } + // } + // return null; + // } - System.out.print("Do you need physical care and support due to difficulties managing with any of the following; personal care, accessing the community, getting in and out of bed, drink and meal prep? "); - boolean answer1 = input.nextBoolean(); + // public void update (UUID id, Scanner input) { + // if (find(id)) { + // SelfAssessmentUserDetails userRecord = findRecord(id); - System.out.print("Do you have any difficulties ascending and / or descending the stairs? "); - boolean answer2 = input.nextBoolean(); + // System.out.print("Do you need physical care and support due to difficulties managing with any of the following; personal care, accessing the community, getting in and out of bed, drink and meal prep? "); + // boolean answer1 = input.nextBoolean(); - System.out.print("Do you have any difficulties accessing your bathing facilities? "); - boolean answer3 = input.nextBoolean(); + // System.out.print("Do you have any difficulties ascending and / or descending the stairs? "); + // boolean answer2 = input.nextBoolean(); - System.out.print("Do you have difficulties accessing your property?"); - boolean answer4 = input.nextBoolean(); + // System.out.print("Do you have any difficulties accessing your bathing facilities? "); + // boolean answer3 = input.nextBoolean(); - System.out.print("What is the your new answer to Question 5?"); - boolean answer5 = input.nextBoolean(); + // System.out.print("Do you have difficulties accessing your property?"); + // boolean answer4 = input.nextBoolean(); + + // System.out.print("What is the your new answer to Question 5?"); + // boolean answer5 = input.nextBoolean(); - userRecord.setAnswer1(answer1); - userRecord.setAnswer2(answer2); - userRecord.setAnswer3(answer3); - userRecord.setAnswer4(answer4); - userRecord.setAnswer5(answer5); - System.out.println("Self Asssessment User Record Updated Succesfully"); - writeDataFromSelfAssessmentToFile(); - } else { - System.out.println("Self assessment user record not found"); - } - } + // userRecord.setAnswer1(answer1); + // userRecord.setAnswer2(answer2); + // userRecord.setAnswer3(answer3); + // userRecord.setAnswer4(answer4); + // userRecord.setAnswer5(answer5); + // System.out.println("Self Asssessment User Record Updated Succesfully"); + // writeDataFromSelfAssessmentToFile(); + // } else { + // System.out.println("Self assessment user record not found"); + // } + // } - public void display() { - if (listOfSelfAssesementInput.isEmpty()) { - System.out.println("No records found"); - } - for (SelfAssessmentUserDetails userRecord : listOfSelfAssesementInput) { - System.out.println(userRecord.toString()); - } - } + // public void display() { + // if (listOfSelfAssesementInput.isEmpty()) { + // System.out.println("No records found"); + // } + // for (SelfAssessmentUserDetails userRecord : listOfSelfAssesementInput) { + // System.out.println(userRecord.toString()); + // } + // } // public void displayAsJsonArray(){ // if(SelfAssessmentUserDetails userRecord : listOfSelfAssesementInput) { @@ -147,24 +186,11 @@ public void display() { // } -// code below is reading data from the JSON file and returning as a list - private LinkedList readDataFromFile() { - try(Reader reader = new FileReader(jsonFilePath)) { - Type listType = new TypeToken>() { - }.getType(); - return gson.fromJson(reader, listType); -// if file does not exist returns an empty list - } catch (FileNotFoundException e) { - return new LinkedList<>(); - } catch (IOException e) { - e.printStackTrace(); - return new LinkedList<>(); - } - } + private void writeDataFromSelfAssessmentToFile() { try(Writer writer = new FileWriter(jsonFilePath)){ - gson.toJson(listOfSelfAssesementInput, writer); + gson.toJson(userDetailsInput, writer); } catch (IOException e) { e.printStackTrace(); } diff --git a/src/main/resources/selfAssessmentData.json b/src/main/resources/selfAssessmentData.json index b0cb9b8..8183e16 100644 --- a/src/main/resources/selfAssessmentData.json +++ b/src/main/resources/selfAssessmentData.json @@ -1,10 +1,10 @@ [ { - "userID": "5fb8270e-a490-4d98-8386-e6fd08a55dd2" , - "firstName": "What is your first Name", - "lastName": "What is your last Name", - "yearOfBirth": 0, - "contactNumber": "What is your contactNumber", + "userID": "Jane7" , + "firstName": "Janes", + "lastName": "Does", + "yearOfBirth": 1234, + "contactNumber": "999", "answer1": false, "answer2": false, "answer3": false, diff --git a/src/main/resources/selfAssessmentQuestions.json b/src/main/resources/selfAssessmentQuestions.json new file mode 100644 index 0000000..a52b178 --- /dev/null +++ b/src/main/resources/selfAssessmentQuestions.json @@ -0,0 +1,10 @@ +[ + { + "question 1": "Do you need physical care and support due to difficulties managing with any of the following; personal care, accessing the community, getting in and out of bed, drink and meal prep?" , + "question 2": "Do you have any difficulties ascending and / or descending the stairs? ", + "question 3": "Do you have any difficulties accessing your bathing facilities?", + "question 4": "Do you have difficulties accessing your property? ", + "question 5": "Do you have difficulties transferring on and off the bed, chair, toilet, sofa?" + } + +] \ No newline at end of file diff --git a/src/test/java/com/cbfacademy/apiassessment/SelfAssessmentUserDetailsTest.java b/src/test/java/com/cbfacademy/apiassessment/SelfAssessmentUserDetailsTest.java index 421b829..c49b2a3 100644 --- a/src/test/java/com/cbfacademy/apiassessment/SelfAssessmentUserDetailsTest.java +++ b/src/test/java/com/cbfacademy/apiassessment/SelfAssessmentUserDetailsTest.java @@ -1,8 +1,7 @@ package com.cbfacademy.apiassessment; import static org.junit.jupiter.api.Assertions.assertEquals; -import static org.junit.jupiter.api.Assertions.assertNull; -import static org.junit.jupiter.api.Assertions.assertTrue; + import java.util.UUID; @@ -13,7 +12,7 @@ public class SelfAssessmentUserDetailsTest { UUID testUUID = UUID.randomUUID(); - SelfAssessmentUserDetails userDetails = new SelfAssessmentUserDetails(testUUID, "Jane", "Doe", 2000, "07590673402", false, false, true, true, true); + SelfAssessmentUserDetails userDetails = new SelfAssessmentUserDetails("123", "Jane", "Doe", 2000, "07590673402", false, false, true, true, true); // Below I am testing the get() method for returning the values; firstName, lastName, yearOfBirth, answer1, answer2, answer3 , answer 4 , answer 5. @@ -21,10 +20,8 @@ public class SelfAssessmentUserDetailsTest { @DisplayName("return userID when getuserID is used") public void testGetUserID() { - UUID userID = userDetails.getUserID(); - - assertNull(userID); - assertTrue(userID instanceof UUID); + String userID = userDetails.getUserID(); + assertEquals("123", userID); } @Test From 96ab51adfce231178734d4056e1df3d230ce8310 Mon Sep 17 00:00:00 2001 From: Chella Date: Sat, 18 Nov 2023 21:49:56 +0000 Subject: [PATCH 22/36] POSTMAPPING request working but not saving2json --- .../apiassessment/SelfAssessmentController.java | 14 +++++++++++++- .../apiassessment/SelfAssessmentServiceForAPI.java | 6 ++++-- 2 files changed, 17 insertions(+), 3 deletions(-) diff --git a/src/main/java/com/cbfacademy/apiassessment/SelfAssessmentController.java b/src/main/java/com/cbfacademy/apiassessment/SelfAssessmentController.java index 2b3def7..16dd1a7 100644 --- a/src/main/java/com/cbfacademy/apiassessment/SelfAssessmentController.java +++ b/src/main/java/com/cbfacademy/apiassessment/SelfAssessmentController.java @@ -10,6 +10,8 @@ import org.springframework.http.ResponseEntity; // import org.springframework.web.bind.annotation.DeleteMapping; import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; // import org.springframework.web.bind.annotation.PathVariable; // import org.springframework.web.bind.annotation.PostMapping; // import org.springframework.web.bind.annotation.PutMapping; @@ -40,13 +42,23 @@ public ResponseEntity > retrieveSelfAssessmentQuestions(){ } // sends request to retreive the json file with self assessment data - @GetMapping("/selfAssessmentQuestions/selfAssessmentData") + @GetMapping("/selfAssessmentData") public ResponseEntity > retrieveSelfAssessmentData(){ LinkedList selfAssessment = selfAssessmentService.retrieveSelfAssessment(); return ResponseEntity.ok(selfAssessment); } +// // post request to add users details + + @PostMapping("/selfAssessmentData/addUser") + public ResponseEntity addUserDetails(@RequestBody SelfAssessmentUserDetails userDetails) { + selfAssessmentService.createUserSelfAssessment(userDetails); + return ResponseEntity.ok("Self Assessment added successfully"); + } + + + // creates the user self assessment // @PostMapping("/selfAssessment") // public ResponseEntity createUserSelfAssessment(@RequestMapping SelfAssessmentUserDetails answersFromUser) { diff --git a/src/main/java/com/cbfacademy/apiassessment/SelfAssessmentServiceForAPI.java b/src/main/java/com/cbfacademy/apiassessment/SelfAssessmentServiceForAPI.java index de373eb..fbb1f6b 100644 --- a/src/main/java/com/cbfacademy/apiassessment/SelfAssessmentServiceForAPI.java +++ b/src/main/java/com/cbfacademy/apiassessment/SelfAssessmentServiceForAPI.java @@ -26,10 +26,12 @@ public LinkedList retrieveSelfAssessment() { return programmeFunctions.retrieveSelfAssessment(); } - public void createUserSelfAssessment(SelfAssessmentUserDetails answerFromUser) { - programmeFunctions.add(answerFromUser); + public void createUserSelfAssessment(SelfAssessmentUserDetails userDetails) { + programmeFunctions.add(userDetails); } + + // public void updateUserSelfAssessment(UUID id, Scanner input) { // programmeFunctions.update(id, input); // } From 380f39a2f087b90dcebea22eb8c6a47f63d4d199 Mon Sep 17 00:00:00 2001 From: Chella Date: Sat, 18 Nov 2023 22:09:04 +0000 Subject: [PATCH 23/36] working get request and post mapping --- .../SelfAssessmentController.java | 26 ++++++------ .../SelfAssessmentUserProgrammeFunctions.java | 42 ++++++++----------- 2 files changed, 31 insertions(+), 37 deletions(-) diff --git a/src/main/java/com/cbfacademy/apiassessment/SelfAssessmentController.java b/src/main/java/com/cbfacademy/apiassessment/SelfAssessmentController.java index 16dd1a7..837f337 100644 --- a/src/main/java/com/cbfacademy/apiassessment/SelfAssessmentController.java +++ b/src/main/java/com/cbfacademy/apiassessment/SelfAssessmentController.java @@ -6,6 +6,7 @@ // import javax.swing.RepaintManager; import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.http.HttpStatus; // import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; // import org.springframework.web.bind.annotation.DeleteMapping; @@ -51,21 +52,20 @@ public ResponseEntity > retrieveSelfAssess // // post request to add users details - @PostMapping("/selfAssessmentData/addUser") - public ResponseEntity addUserDetails(@RequestBody SelfAssessmentUserDetails userDetails) { - selfAssessmentService.createUserSelfAssessment(userDetails); - return ResponseEntity.ok("Self Assessment added successfully"); - } + // @PostMapping("/selfAssessmentData/addUser") + // public ResponseEntity addUserDetails(@RequestBody SelfAssessmentUserDetails userDetails) { + // selfAssessmentService.createUserSelfAssessment(userDetails); + // return ResponseEntity.ok("Self Assessment added successfully"); + // } - - -// creates the user self assessment -// @PostMapping("/selfAssessment") -// public ResponseEntity createUserSelfAssessment(@RequestMapping SelfAssessmentUserDetails answersFromUser) { -// selfAssessmentService.createUserSelfAssessment(answersFromUser); -// return ResponseEntity.ok().build(); -// } + + @PostMapping("/selfAssessmentData/addUser") + public ResponseEntity createUserDetails(@RequestBody SelfAssessmentUserDetails userDetails) { + selfAssessmentService.createUserSelfAssessment(userDetails); + return ResponseEntity.status(HttpStatus.CREATED).build(); + } + // // sends request to retreive json file with useful information to answers to the questions // @GetMapping("/selfAssessment") diff --git a/src/main/java/com/cbfacademy/apiassessment/SelfAssessmentUserProgrammeFunctions.java b/src/main/java/com/cbfacademy/apiassessment/SelfAssessmentUserProgrammeFunctions.java index ea56406..92b7085 100644 --- a/src/main/java/com/cbfacademy/apiassessment/SelfAssessmentUserProgrammeFunctions.java +++ b/src/main/java/com/cbfacademy/apiassessment/SelfAssessmentUserProgrammeFunctions.java @@ -27,17 +27,17 @@ public class SelfAssessmentUserProgrammeFunctions { private LinkedList questions; private LinkedList userDetailsInput; - private String jsonFilePath; + private String jsonFilePathQuestions; private String jsonFilePathUserDetails; private final Gson gson; public SelfAssessmentUserProgrammeFunctions() { try { - jsonFilePath = ResourceUtils.getFile("classpath:selfAssessmentQuestions.json").getAbsolutePath(); + jsonFilePathQuestions = ResourceUtils.getFile("classpath:selfAssessmentQuestions.json").getAbsolutePath(); jsonFilePathUserDetails = ResourceUtils.getFile("classpath:selfAssessmentData.json").getAbsolutePath(); } catch (FileNotFoundException e) { - jsonFilePath = "selfAssessmentQuestions.json"; + jsonFilePathQuestions = "selfAssessmentQuestions.json"; jsonFilePathUserDetails = "selfAssessmentData.json"; } @@ -57,10 +57,10 @@ public LinkedList retrieveSelfAssessment() { return userDetailsInput; } - public void add(SelfAssessmentUserDetails recordOfDetails) { + public void add(SelfAssessmentUserDetails recoUserDetails) { - if (!find(recordOfDetails.getUserID())) { - userDetailsInput.add(recordOfDetails); + if (!find(recoUserDetails.getUserID())) { + userDetailsInput.add(recoUserDetails); writeDataFromSelfAssessmentToFile(); } else { @@ -69,21 +69,13 @@ public void add(SelfAssessmentUserDetails recordOfDetails) { } public boolean find(String userID) { - - for(SelfAssessmentUserDetails l : userDetailsInput) { - - if (l.getUserID().equals(userID)) { - - System.out.println(l); - return true; - } - } - return false; + return userDetailsInput.stream().anyMatch(l -> l.getUserID().equals(userID)); } + // code below is reading data from the JSON file and returning as a list private LinkedList readDataFromFile() { - try(Reader reader = new FileReader(jsonFilePath)) { + try(Reader reader = new FileReader(jsonFilePathQuestions)) { Type listType = new TypeToken>() { }.getType(); return gson.fromJson(reader, listType); @@ -110,6 +102,14 @@ private LinkedList readUserDetailsDataFromFile() { } } + + private void writeDataFromSelfAssessmentToFile() { + try(Writer writer = new FileWriter(jsonFilePathUserDetails)){ + gson.toJson(userDetailsInput, writer); + } catch (IOException e) { + e.printStackTrace(); + } + } // public void delete (UUID recUserID) { @@ -188,13 +188,7 @@ private LinkedList readUserDetailsDataFromFile() { - private void writeDataFromSelfAssessmentToFile() { - try(Writer writer = new FileWriter(jsonFilePath)){ - gson.toJson(userDetailsInput, writer); - } catch (IOException e) { - e.printStackTrace(); - } - } + } From 0994cfb755a72e4512404d1b63e404936e12f6e4 Mon Sep 17 00:00:00 2001 From: Chella Date: Sat, 18 Nov 2023 22:15:56 +0000 Subject: [PATCH 24/36] success message added to @PostMapping req --- .../cbfacademy/apiassessment/SelfAssessmentController.java | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/cbfacademy/apiassessment/SelfAssessmentController.java b/src/main/java/com/cbfacademy/apiassessment/SelfAssessmentController.java index 837f337..16611d8 100644 --- a/src/main/java/com/cbfacademy/apiassessment/SelfAssessmentController.java +++ b/src/main/java/com/cbfacademy/apiassessment/SelfAssessmentController.java @@ -60,9 +60,10 @@ public ResponseEntity > retrieveSelfAssess @PostMapping("/selfAssessmentData/addUser") - public ResponseEntity createUserDetails(@RequestBody SelfAssessmentUserDetails userDetails) { + public ResponseEntity createUserDetails(@RequestBody SelfAssessmentUserDetails userDetails) { selfAssessmentService.createUserSelfAssessment(userDetails); - return ResponseEntity.status(HttpStatus.CREATED).build(); + String successMessage = "Self Assessment added successfully"; + return ResponseEntity.status(HttpStatus.CREATED).body(successMessage); } From fec52f9531599a3acf2397fcee0bb2f9bf8b6f78 Mon Sep 17 00:00:00 2001 From: Chella Date: Sun, 19 Nov 2023 00:14:20 +0000 Subject: [PATCH 25/36] success mesage returning on all requests --- .../SelfAssessmentController.java | 28 +++- .../SelfAssessmentServiceForAPI.java | 9 ++ .../SelfAssessmentUserProgramme.java | 151 +----------------- .../SelfAssessmentUserProgrammeFunctions.java | 123 +++++--------- 4 files changed, 78 insertions(+), 233 deletions(-) diff --git a/src/main/java/com/cbfacademy/apiassessment/SelfAssessmentController.java b/src/main/java/com/cbfacademy/apiassessment/SelfAssessmentController.java index 16611d8..ab48844 100644 --- a/src/main/java/com/cbfacademy/apiassessment/SelfAssessmentController.java +++ b/src/main/java/com/cbfacademy/apiassessment/SelfAssessmentController.java @@ -9,9 +9,12 @@ import org.springframework.http.HttpStatus; // import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.DeleteMapping; // import org.springframework.web.bind.annotation.DeleteMapping; import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.PutMapping; import org.springframework.web.bind.annotation.RequestBody; // import org.springframework.web.bind.annotation.PathVariable; // import org.springframework.web.bind.annotation.PostMapping; @@ -66,7 +69,30 @@ public ResponseEntity createUserDetails(@RequestBody SelfAssessmentUserD return ResponseEntity.status(HttpStatus.CREATED).body(successMessage); } - + @PutMapping("/selfAssessmentData/userDetails/{userID}") + public ResponseEntity updateUserDetails(@PathVariable String userID, @RequestBody SelfAssessmentUserDetails userDetails) { + boolean updated = selfAssessmentService.updateUserSelfAssessment(userID, userDetails); + if (updated) { + String successMessage = "Self Assessment updated successfully"; + return ResponseEntity.ok(successMessage); + } else { + String errorMessage = "Self Assessment not found for userID: " + userID; + return ResponseEntity.status(HttpStatus.NOT_FOUND).body(errorMessage); + } + } + + @DeleteMapping("/selfAssessmentData/userDetails/{userID}") + public ResponseEntity deleteUserDetails(@PathVariable String userID) { + boolean deleted = selfAssessmentService.deleteUserSelfAssessment(userID); + if (deleted) { + String successMessage = "Self Assessment deleted successfully"; + return ResponseEntity.ok(successMessage); + } else { + String errorMessage = "Self Assessment not found for userID: " + userID; + return ResponseEntity.status(HttpStatus.NOT_FOUND).body(errorMessage); + } + } + // // sends request to retreive json file with useful information to answers to the questions // @GetMapping("/selfAssessment") diff --git a/src/main/java/com/cbfacademy/apiassessment/SelfAssessmentServiceForAPI.java b/src/main/java/com/cbfacademy/apiassessment/SelfAssessmentServiceForAPI.java index fbb1f6b..3ef1d82 100644 --- a/src/main/java/com/cbfacademy/apiassessment/SelfAssessmentServiceForAPI.java +++ b/src/main/java/com/cbfacademy/apiassessment/SelfAssessmentServiceForAPI.java @@ -30,6 +30,15 @@ public void createUserSelfAssessment(SelfAssessmentUserDetails userDetails) { programmeFunctions.add(userDetails); } + public boolean updateUserSelfAssessment(String userID, SelfAssessmentUserDetails userDetails) { + return programmeFunctions.updateUserDetails(userID, userDetails); + } + + public boolean deleteUserSelfAssessment(String userID) { + + return programmeFunctions.deleteUserDetails(userID); + } + // public void updateUserSelfAssessment(UUID id, Scanner input) { diff --git a/src/main/java/com/cbfacademy/apiassessment/SelfAssessmentUserProgramme.java b/src/main/java/com/cbfacademy/apiassessment/SelfAssessmentUserProgramme.java index aec4236..af21136 100644 --- a/src/main/java/com/cbfacademy/apiassessment/SelfAssessmentUserProgramme.java +++ b/src/main/java/com/cbfacademy/apiassessment/SelfAssessmentUserProgramme.java @@ -17,156 +17,7 @@ public class SelfAssessmentUserProgramme { public static void main(String[] args) { - SpringApplication.run(SelfAssessmentUserProgramme.class , args); - - -// SelfAssessmentUserProgrammeFunctions userProgramme = new SelfAssessmentUserProgrammeFunctions(); - -// SelfAssessmentUserDetails userRecord = new SelfAssessmentUserDetails(); - -// try (Scanner input = new Scanner(System.in)) { -// int option = 0; - -// do { -// SelfAssessmentProgrammeMenuInterface(); -// option = input.nextInt(); - -// switch (option) { - -// case 1: - -// System.out.print("Press any key to generate your userID "); -// input.nextLine(); -// input.nextLine(); -// UUID userID = userRecord.getUserID(); -// System.out.print("Your user ID is *make note of this!* = " + userID); -// input.nextLine(); - -// System.out.print("What is your first name? "); - -// String firstName = input.nextLine(); - -// System.out.print("What is your last name? "); - -// String lastName = input.nextLine(); - -// System.out.print("What is your year of birth? "); - -// int yearOfBirth = input.nextInt(); - -// System.out.print("What is your contact number? "); - -// String contactNumber = input.nextLine(); -// input.nextLine(); - -// System.out.println("Do you need physical care and support due to difficulties managing with any of the following; personal care, accessing the community, getting in and out of bed, drink and meal prep? "); - -// boolean answer1 = input.nextBoolean(); - -// System.out.println("Do you have any difficulties ascending and / or descending the stairs? "); -// boolean answer2 = input.nextBoolean(); - -// System.out.println("Do you have any difficulties accessing your bathing facilities? "); -// boolean answer3 = input.nextBoolean(); - - -// System.out.println("Do you have difficulties accessing your property? "); -// boolean answer4 = input.nextBoolean(); - -// System.out.println("Do you have difficulties transferring on and off the bed, chair, toilet, sofa? "); -// boolean answer5 = input.nextBoolean(); - -// userRecord = new SelfAssessmentUserDetails(userID, firstName, lastName, yearOfBirth, contactNumber, answer1, answer2, answer3, answer4, answer5); - -// userProgramme.add(userRecord); -// System.out.println(userRecord.toString()); - -// break; - -// case 2: - -// System.out.print("What is your user ID?"); -// String uuidInput = input.nextLine(); -// try { -// UUID deleteRecord = UUID.fromString(uuidInput); -// userProgramme.delete(deleteRecord); -// } - -// catch (IllegalArgumentException e) { -// System.out.println("Invalid userID"); - -// } - - -// break; - -// case 3: - -// System.out.print("What is your your user name? "); -// String uuidIDUpdate = input.nextLine(); -// try { -// UUID updateRecod = UUID.fromString(uuidIDUpdate); -// userProgramme.update(updateRecod, input); -// } - -// catch (IllegalArgumentException e) { -// System.out.println("Invalid userID"); - -// } - - -// case 4: - -// System.out.print("What is your user name?"); -// String uuidInputFindRecord = input.nextLine(); - -// try { -// UUID findRecord = UUID.fromString(uuidInputFindRecord); -// userProgramme.find(findRecord); -// } - -// catch (IllegalArgumentException e) { -// System.out.println("Invalid userID"); -// } - -// break; -// // display method working in interface. -// case 5: -// userProgramme.display(); -// break; - -// case 6: -// System.out.println("End of Self Assessment. Thank you for your time"); -// System.exit(0); - -// break; - -// default: -// System.out.println(" Invalid input please select options 1 to 6"); -// break; - -// } -// } - -// while (option != 6); -// } -// } - -// public static void SelfAssessmentProgrammeMenuInterface() { - -// // Printing statements displaying menu on console - -// System.out.println("Please choose an option below"); -// System.out.println("1: Complete Self Assessment"); -// System.out.println("2: Delete Users Self Assessment"); -// System.out.println("3: Update Self Assessment"); -// System.out.println("4: Search User"); -// System.out.println("5: Display list of completed Self Assessments"); -// System.out.println("6: Exit program"); -// System.out.print("Enter your selection : "); -// } - - + SpringApplication.run(SelfAssessmentUserProgramme.class , args); } } diff --git a/src/main/java/com/cbfacademy/apiassessment/SelfAssessmentUserProgrammeFunctions.java b/src/main/java/com/cbfacademy/apiassessment/SelfAssessmentUserProgrammeFunctions.java index 92b7085..9c809b8 100644 --- a/src/main/java/com/cbfacademy/apiassessment/SelfAssessmentUserProgrammeFunctions.java +++ b/src/main/java/com/cbfacademy/apiassessment/SelfAssessmentUserProgrammeFunctions.java @@ -9,6 +9,7 @@ import java.io.Reader; import java.io.Writer; import java.lang.reflect.Type; +import java.util.Iterator; import java.util.LinkedList; @@ -79,7 +80,7 @@ private LinkedList readDataFromFile() { Type listType = new TypeToken>() { }.getType(); return gson.fromJson(reader, listType); -// if file does not exist returns an empty list + // if file does not exist returns an empty list } catch (FileNotFoundException e) { return new LinkedList<>(); } catch (IOException e) { @@ -93,7 +94,7 @@ private LinkedList readUserDetailsDataFromFile() { Type listType2 = new TypeToken>() { }.getType(); return gson.fromJson(reader2, listType2); -// if file does not exist returns an empty list + // if file does not exist returns an empty list } catch (FileNotFoundException e) { return new LinkedList<>(); } catch (IOException e) { @@ -110,90 +111,48 @@ private void writeDataFromSelfAssessmentToFile() { e.printStackTrace(); } } + + public boolean updateUserDetails(String userID, SelfAssessmentUserDetails userDetails) { + for(SelfAssessmentUserDetails user : userDetailsInput) { + // Update the user details + user.setFirstName(userDetails.getFirstName()); + user.setLastName(userDetails.getLastName()); + user.setYearOfBirth(userDetails.getYearOfBirth()); + user.setContactNumber(userDetails.getContactNumber()); + user.setAnswer1(userDetails.getAnswer1()); + user.setAnswer2(userDetails.getAnswer2()); + user.setAnswer3(userDetails.getAnswer3()); + user.setAnswer4(userDetails.getAnswer4()); + user.setAnswer5(userDetails.getAnswer5()); + writeDataFromSelfAssessmentToFile(); + return true; + } + return false; + + } + + public boolean deleteUserDetails(String userID) { + // Iterator method allows to iterate over the elements in the userDetailsInput (list), contains there methods within the Iterator Class; hasNext() , next() , remove() to traverse LinkedList + Iterator iterator = userDetailsInput.iterator(); + while (iterator.hasNext()) { + SelfAssessmentUserDetails user = iterator.next(); + if (user.getUserID().equals(userID)) { + iterator.remove();; + writeDataFromSelfAssessmentToFile();; + return true; + } + } + return false; + } + + } - // public void delete (UUID recUserID) { - - // SelfAssessmentUserDetails recordDelete = null; - - // for(SelfAssessmentUserDetails l : listOfSelfAssesementInput) { - // if (l.getUserID().equals(recUserID)){ - // recordDelete = l; - // } - // } - // if (recordDelete == null) { - // System.out.println("Invalid userID , please try again"); - // } else { - // listOfSelfAssesementInput.remove(recordDelete); - // System.out.println("Self Assessment User Record Deleted "); - // writeDataFromSelfAssessmentToFile(); - // } - // } - - // public SelfAssessmentUserDetails findRecord(UUID userID) { - // for (SelfAssessmentUserDetails l : listOfSelfAssesementInput) { - // if (l.getUserID().equals(userID)) { - // return l; - // } - // } - // return null; - // } - - // public void update (UUID id, Scanner input) { - // if (find(id)) { - // SelfAssessmentUserDetails userRecord = findRecord(id); - - // System.out.print("Do you need physical care and support due to difficulties managing with any of the following; personal care, accessing the community, getting in and out of bed, drink and meal prep? "); - // boolean answer1 = input.nextBoolean(); - - // System.out.print("Do you have any difficulties ascending and / or descending the stairs? "); - // boolean answer2 = input.nextBoolean(); - - // System.out.print("Do you have any difficulties accessing your bathing facilities? "); - // boolean answer3 = input.nextBoolean(); - - // System.out.print("Do you have difficulties accessing your property?"); - // boolean answer4 = input.nextBoolean(); - - // System.out.print("What is the your new answer to Question 5?"); - // boolean answer5 = input.nextBoolean(); - - // userRecord.setAnswer1(answer1); - // userRecord.setAnswer2(answer2); - // userRecord.setAnswer3(answer3); - // userRecord.setAnswer4(answer4); - // userRecord.setAnswer5(answer5); - // System.out.println("Self Asssessment User Record Updated Succesfully"); - // writeDataFromSelfAssessmentToFile(); - // } else { - // System.out.println("Self assessment user record not found"); - // } - // } - - // public void display() { - // if (listOfSelfAssesementInput.isEmpty()) { - // System.out.println("No records found"); - // } - // for (SelfAssessmentUserDetails userRecord : listOfSelfAssesementInput) { - // System.out.println(userRecord.toString()); - // } - // } - - // public void displayAsJsonArray(){ - // if(SelfAssessmentUserDetails userRecord : listOfSelfAssesementInput) { - // JsonObject jsonRecord = new JsonObject(); - // jsonRecord.addProperty(jsonFilePath, jsonFilePath); - // } - // } - - - - - - -} + + + From c3b61a9d34a27d1cb5d1c6b484ee51a7d70da87d Mon Sep 17 00:00:00 2001 From: Chella Date: Sun, 19 Nov 2023 00:27:50 +0000 Subject: [PATCH 26/36] update methodi is now working --- .../apiassessment/SelfAssessmentUserProgrammeFunctions.java | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/cbfacademy/apiassessment/SelfAssessmentUserProgrammeFunctions.java b/src/main/java/com/cbfacademy/apiassessment/SelfAssessmentUserProgrammeFunctions.java index 9c809b8..47034ad 100644 --- a/src/main/java/com/cbfacademy/apiassessment/SelfAssessmentUserProgrammeFunctions.java +++ b/src/main/java/com/cbfacademy/apiassessment/SelfAssessmentUserProgrammeFunctions.java @@ -114,7 +114,8 @@ private void writeDataFromSelfAssessmentToFile() { public boolean updateUserDetails(String userID, SelfAssessmentUserDetails userDetails) { for(SelfAssessmentUserDetails user : userDetailsInput) { - // Update the user details + // if userID provided == userID within json file then update the user details + if (user.getUserID().equals(userID)) { user.setFirstName(userDetails.getFirstName()); user.setLastName(userDetails.getLastName()); user.setYearOfBirth(userDetails.getYearOfBirth()); @@ -127,8 +128,9 @@ public boolean updateUserDetails(String userID, SelfAssessmentUserDetails userDe writeDataFromSelfAssessmentToFile(); return true; } + } + // returns false if no match is found after the loop return false; - } public boolean deleteUserDetails(String userID) { From 87d4eaf8a3cb76a4ee455d437fad605a202098f0 Mon Sep 17 00:00:00 2001 From: Chella Date: Sun, 19 Nov 2023 02:45:23 +0000 Subject: [PATCH 27/36] both controllers working, all requests working --- .../apiassessment/SelfAssessmentResults.html | 47 ++++++++++++++ .../SelfAssessmentResultsController.java | 63 +++++++++++++++++++ .../SelfAssessmentServiceForAPI.java | 16 ++--- .../SelfAssessmentServiceInterface.java | 16 ----- .../SelfAssessmentUserDetails.java | 61 +++++++++--------- .../SelfAssessmentUserProgrammeFunctions.java | 39 +++++++++--- src/main/resources/selfAssessmentData.json | 3 +- .../SelfAssessmentUserDetailsTest.java | 36 +++-------- 8 files changed, 190 insertions(+), 91 deletions(-) create mode 100644 src/main/java/com/cbfacademy/apiassessment/SelfAssessmentResults.html create mode 100644 src/main/java/com/cbfacademy/apiassessment/SelfAssessmentResultsController.java delete mode 100644 src/main/java/com/cbfacademy/apiassessment/SelfAssessmentServiceInterface.java diff --git a/src/main/java/com/cbfacademy/apiassessment/SelfAssessmentResults.html b/src/main/java/com/cbfacademy/apiassessment/SelfAssessmentResults.html new file mode 100644 index 0000000..2e89302 --- /dev/null +++ b/src/main/java/com/cbfacademy/apiassessment/SelfAssessmentResults.html @@ -0,0 +1,47 @@ + + + + + + + SelfAssessment Results + + +

Useful Information based on your answers

+ + + + + diff --git a/src/main/java/com/cbfacademy/apiassessment/SelfAssessmentResultsController.java b/src/main/java/com/cbfacademy/apiassessment/SelfAssessmentResultsController.java new file mode 100644 index 0000000..98e23c7 --- /dev/null +++ b/src/main/java/com/cbfacademy/apiassessment/SelfAssessmentResultsController.java @@ -0,0 +1,63 @@ +package com.cbfacademy.apiassessment; + +import java.util.Map; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +@RestController +@RequestMapping("api/selfAssessmentResults") +public class SelfAssessmentResultsController { + + @Autowired + private SelfAssessmentServiceForAPI selfAssessmentService; + + @GetMapping("/{userID}") + public ResponseEntity getResults(@PathVariable String userID) { + // Retrieve user's answers + Map userAnswers = selfAssessmentService.getUserAnswers(userID); + + // Generate content based on answers + String content = generateContent(userAnswers); + + return ResponseEntity.ok(content); + } + + + + private String generateContent(Map answers) { + // Logic to map answers to content + // Example: If answer1 is true, include a link + StringBuilder contentBuilder = new StringBuilder(); + if (!answers.get("answer1")) { + contentBuilder.append("Here is a useful link if you need physical care and support : [Find your local council to access Adult Social Care](https://www.gov.uk/apply-needs-assessment-social-services)\n"); + } + if (!answers.get("answer2")) { + contentBuilder.append("Here is a useful link if you are struggling with getting up and down the stairs (You can also try fitting a second stair rail): [Stair lift comparison website](https://www.mobilitycompare.co.uk/stairlifts/?show-form=true&msclkid=0cd3dda3797b131283eab8fa099456b0&utm_source=bing&utm_medium=cpc&utm_campaign=Stairlifts%20Generic&utm_term=stairlifts%20uk&utm_content=Core)\n"); + } + + if (!answers.get("answer3")) { + contentBuilder.append("Here is a useful link if you are struggling with accessing your bathing facilities: [Link to bathroom aids](https://www.careco.co.uk/bathroom/)\n"); + } + + if (!answers.get("answer4")) { + contentBuilder.append("Here is a useful link if you are struggling with accessing your property in any way: [How to ensure safe access link](https://livingmadeeasy.org.uk/dlf-factsheets/adapting-your-home-access-into-and-around-your-home)\n"); + } + + if (!answers.get("answer5")) { + contentBuilder.append("Here is a useful link if you are struggling with getting on and off your; bed, chair, toilet (Explore the bed rails , raisers and toileting equipment section): [Care Co link](https://www.careco.co.uk/furniture/furniture-accessories/furniture-raisers/)\n"); + } + + return contentBuilder.toString(); + } +} + + + + + + diff --git a/src/main/java/com/cbfacademy/apiassessment/SelfAssessmentServiceForAPI.java b/src/main/java/com/cbfacademy/apiassessment/SelfAssessmentServiceForAPI.java index 3ef1d82..c3377b2 100644 --- a/src/main/java/com/cbfacademy/apiassessment/SelfAssessmentServiceForAPI.java +++ b/src/main/java/com/cbfacademy/apiassessment/SelfAssessmentServiceForAPI.java @@ -2,6 +2,7 @@ import java.util.LinkedList; +import java.util.Map; import org.springframework.stereotype.Service; @@ -23,7 +24,7 @@ public LinkedList retrieveQuestions() { } public LinkedList retrieveSelfAssessment() { - return programmeFunctions.retrieveSelfAssessment(); + return programmeFunctions.retrieveSelfAssessments(); } public void createUserSelfAssessment(SelfAssessmentUserDetails userDetails) { @@ -39,16 +40,11 @@ public boolean deleteUserSelfAssessment(String userID) { return programmeFunctions.deleteUserDetails(userID); } + public Map getUserAnswers(String userID) { + SelfAssessmentUserDetails userDetails = programmeFunctions.getUserDetails(userID); - - // public void updateUserSelfAssessment(UUID id, Scanner input) { - // programmeFunctions.update(id, input); - // } - - // public void deleteUser(UUID id) { - // programmeFunctions.delete(id); - // } - + return userDetails.getAnswers(); + } diff --git a/src/main/java/com/cbfacademy/apiassessment/SelfAssessmentServiceInterface.java b/src/main/java/com/cbfacademy/apiassessment/SelfAssessmentServiceInterface.java deleted file mode 100644 index 01180a3..0000000 --- a/src/main/java/com/cbfacademy/apiassessment/SelfAssessmentServiceInterface.java +++ /dev/null @@ -1,16 +0,0 @@ - -package com.cbfacademy.apiassessment; - -// create interface for self assessment service for api class . - -// can we implement self assessment functions in here? - -// public interface SelfAssessmentServiceInterface { - -// public LinkedList getSelfAssessment() { -// r - - -// } - - diff --git a/src/main/java/com/cbfacademy/apiassessment/SelfAssessmentUserDetails.java b/src/main/java/com/cbfacademy/apiassessment/SelfAssessmentUserDetails.java index c320131..81be3ca 100644 --- a/src/main/java/com/cbfacademy/apiassessment/SelfAssessmentUserDetails.java +++ b/src/main/java/com/cbfacademy/apiassessment/SelfAssessmentUserDetails.java @@ -1,13 +1,16 @@ package com.cbfacademy.apiassessment; +import java.util.HashMap; +import java.util.Map; + +import com.fasterxml.jackson.annotation.JsonIgnore; // class containing getters and setters for to take input of values public class SelfAssessmentUserDetails { private String userID; - private String firstName; - private String lastName; + private String name; private int yearOfBirth; private String contactNumber; private Boolean answer1; @@ -23,24 +26,22 @@ public class SelfAssessmentUserDetails { public SelfAssessmentUserDetails() {} - public SelfAssessmentUserDetails(String userID, String firstName, String lastName, int yearOfBirth, String contactNumber, boolean answer1, boolean answer2, boolean answer3, boolean answer4, boolean answer5) { + public SelfAssessmentUserDetails(String userID, String name, int yearOfBirth, String contactNumber, boolean answer1, boolean answer2, boolean answer3, boolean answer4, boolean answer5) { // this.userID = userID set as UUID ? this.uuid = uuid.randomid this.userID = UUID.randomUUID(); // randomUUID method. change - this.userID = "123"; - this.firstName = "firstName"; - this.lastName = "lastName"; - this.yearOfBirth = 1998; - this.contactNumber = "contactNumber"; - this.answer1 = false; - this.answer2 = false; - this.answer3 = false; - this.answer4 = false; - this.answer5 = false; + this.userID = userID; + this.name = name; + this.yearOfBirth = yearOfBirth; + this.contactNumber = contactNumber; + this.answer1 = answer1; + this.answer2 = answer2; + this.answer3 = answer3; + this.answer4 = answer4; + this.answer5 = answer5; } - public String getUserID() { return userID; @@ -52,23 +53,14 @@ public String getUserID() { // get method - public String getFirstName() { - return firstName; + public String getName() { + return name; } // set method to allow value of string to be passed as firstName // contructor for method to allow string to be inputted as value - public void setFirstName(String firstName) { - this.firstName = firstName; - } - - - public String getLastName() { - return lastName; + public void setName(String name) { + this.name = name; } - public void setLastName(String lastName) { - this.lastName = lastName; - } - public int getYearOfBirth() { return yearOfBirth; @@ -130,10 +122,23 @@ public void setAnswer5(boolean answer5) { } + @JsonIgnore + public Map getAnswers() { + Map answers = new HashMap<>(); + answers.put("answer1", this.answer1); + answers.put("answer2", this.answer2); + answers.put("answer3", this.answer3); + answers.put("answer4", this.answer4); + answers.put("answer5", this.answer5); + + return answers; + } + + // toString merthod to return list of values inputted when called @Override public String toString() { - return "Self assessment details - { " + userID + firstName + " , " + lastName + " , " + yearOfBirth + " , " + contactNumber + " , " + answer1 + " , " + answer2 + " , " + answer3 + " , " + answer4 + " , " + answer5 + " }"; + return "Self assessment details - { " + userID + " , " + name + " , " + yearOfBirth + " , " + contactNumber + " , " + answer1 + " , " + answer2 + " , " + answer3 + " , " + answer4 + " , " + answer5 + " }"; } diff --git a/src/main/java/com/cbfacademy/apiassessment/SelfAssessmentUserProgrammeFunctions.java b/src/main/java/com/cbfacademy/apiassessment/SelfAssessmentUserProgrammeFunctions.java index 47034ad..ea548ac 100644 --- a/src/main/java/com/cbfacademy/apiassessment/SelfAssessmentUserProgrammeFunctions.java +++ b/src/main/java/com/cbfacademy/apiassessment/SelfAssessmentUserProgrammeFunctions.java @@ -9,9 +9,10 @@ import java.io.Reader; import java.io.Writer; import java.lang.reflect.Type; +import java.util.Collections; import java.util.Iterator; import java.util.LinkedList; - +import java.util.Map; import org.springframework.stereotype.Component; import org.springframework.util.ResourceUtils; @@ -54,7 +55,7 @@ public LinkedList retrieveSelfAssessmentQuestions() { return questions; } - public LinkedList retrieveSelfAssessment() { + public LinkedList retrieveSelfAssessments() { return userDetailsInput; } @@ -62,7 +63,7 @@ public void add(SelfAssessmentUserDetails recoUserDetails) { if (!find(recoUserDetails.getUserID())) { userDetailsInput.add(recoUserDetails); - writeDataFromSelfAssessmentToFile(); + writeDataToSelfAssessmentFile(); } else { System.out.println("Self Assessment Record already exists"); @@ -104,7 +105,7 @@ private LinkedList readUserDetailsDataFromFile() { } - private void writeDataFromSelfAssessmentToFile() { + private void writeDataToSelfAssessmentFile() { try(Writer writer = new FileWriter(jsonFilePathUserDetails)){ gson.toJson(userDetailsInput, writer); } catch (IOException e) { @@ -116,8 +117,7 @@ public boolean updateUserDetails(String userID, SelfAssessmentUserDetails userDe for(SelfAssessmentUserDetails user : userDetailsInput) { // if userID provided == userID within json file then update the user details if (user.getUserID().equals(userID)) { - user.setFirstName(userDetails.getFirstName()); - user.setLastName(userDetails.getLastName()); + user.setName(userDetails.getName()); user.setYearOfBirth(userDetails.getYearOfBirth()); user.setContactNumber(userDetails.getContactNumber()); user.setAnswer1(userDetails.getAnswer1()); @@ -125,7 +125,7 @@ public boolean updateUserDetails(String userID, SelfAssessmentUserDetails userDe user.setAnswer3(userDetails.getAnswer3()); user.setAnswer4(userDetails.getAnswer4()); user.setAnswer5(userDetails.getAnswer5()); - writeDataFromSelfAssessmentToFile(); + writeDataToSelfAssessmentFile(); return true; } } @@ -140,14 +140,37 @@ public boolean deleteUserDetails(String userID) { SelfAssessmentUserDetails user = iterator.next(); if (user.getUserID().equals(userID)) { iterator.remove();; - writeDataFromSelfAssessmentToFile();; + writeDataToSelfAssessmentFile();; return true; } } return false; } + public SelfAssessmentUserDetails getUserDetails(String userID) { + // Logic to retrieve user details based on userID + for (SelfAssessmentUserDetails user : userDetailsInput) { + if (user.getUserID().equals(userID)) { + return user; + } + } + return null; + + } + + public Map getUserAnswers(String userID) { + SelfAssessmentUserDetails userDetails = getUserDetails(userID); + + if (userDetails != null) { + // Assuming getAnswers returns a Map + return userDetails.getAnswers(); + } else { + // Handle the case when user details are not found + return Collections.emptyMap(); // Or throw an exception } + } + + } diff --git a/src/main/resources/selfAssessmentData.json b/src/main/resources/selfAssessmentData.json index 8183e16..f296681 100644 --- a/src/main/resources/selfAssessmentData.json +++ b/src/main/resources/selfAssessmentData.json @@ -1,8 +1,7 @@ [ { "userID": "Jane7" , - "firstName": "Janes", - "lastName": "Does", + "name": "Jane Doe", "yearOfBirth": 1234, "contactNumber": "999", "answer1": false, diff --git a/src/test/java/com/cbfacademy/apiassessment/SelfAssessmentUserDetailsTest.java b/src/test/java/com/cbfacademy/apiassessment/SelfAssessmentUserDetailsTest.java index c49b2a3..712dbcd 100644 --- a/src/test/java/com/cbfacademy/apiassessment/SelfAssessmentUserDetailsTest.java +++ b/src/test/java/com/cbfacademy/apiassessment/SelfAssessmentUserDetailsTest.java @@ -12,7 +12,7 @@ public class SelfAssessmentUserDetailsTest { UUID testUUID = UUID.randomUUID(); - SelfAssessmentUserDetails userDetails = new SelfAssessmentUserDetails("123", "Jane", "Doe", 2000, "07590673402", false, false, true, true, true); + SelfAssessmentUserDetails userDetails = new SelfAssessmentUserDetails("123", "Jane Doe", 2000, "07590673402", false, false, true, true, true); // Below I am testing the get() method for returning the values; firstName, lastName, yearOfBirth, answer1, answer2, answer3 , answer 4 , answer 5. @@ -26,19 +26,11 @@ public void testGetUserID() { @Test @DisplayName("returns firstName when get firstName is used") - public void testGetFirstName() { - String firstName = userDetails.getFirstName(); - assertEquals("Jane", firstName); + public void testGetName() { + String name = userDetails.getName(); + assertEquals("Jane Doe", name); } - - @Test - @DisplayName("return lastName when getLastName is used") - public void testGetLastName() { - - String lastName = userDetails.getLastName(); - assertEquals("Doe", lastName); - } @Test @DisplayName("return yearOfBirth when getYearOfBirth is used") @@ -106,22 +98,12 @@ public void testGetAnswer5() { @Test @DisplayName("sets value of first name when setFirstName is used") - public void testSetFirstName() { - - userDetails.setFirstName("Chella"); - - String firstName = userDetails.getFirstName(); - assertEquals("Chella", firstName); - } + public void testSetName() { + userDetails.setName("Chella"); - @Test - @DisplayName("sets value of last name when setLastName is used") - public void testSetLastName() { - - userDetails.setLastName("Johnson"); - String lastName = userDetails.getLastName(); - assertEquals("Johnson", lastName); + String name = userDetails.getName(); + assertEquals("Chella", name); } @Test @@ -193,7 +175,7 @@ public void testSetAnswer5() { @Test @DisplayName("tests the toString method to return the values inputted when called") public void testToString() { - String expected = "Self assessment details - {" + testUUID + "Jane , Doe , 2000 , 07590673402 , false , false , true , true , true }"; + String expected = "Self assessment details - {" + " 123 , Jane Doe , 2000 , 07590673402 , false , false , true , true , true }"; String actual = userDetails.toString(); assertEquals(expected, actual); From 0759248bf2fd38380b171945a3fa86c68de108ce Mon Sep 17 00:00:00 2001 From: Chella Date: Sun, 19 Nov 2023 03:31:00 +0000 Subject: [PATCH 28/36] algorithm inputted, push all to main --- .../apiassessment/SearchingAlgorithm.java | 20 +++++++++ .../SelfAssessmentController.java | 45 ++++--------------- .../SelfAssessmentResultsController.java | 16 +++++++ .../SelfAssessmentServiceForAPI.java | 18 +++++--- .../SelfAssessmentUserProgrammeFunctions.java | 7 +-- src/main/resources/selfAssessmentData.json | 14 +++++- 6 files changed, 71 insertions(+), 49 deletions(-) create mode 100644 src/main/java/com/cbfacademy/apiassessment/SearchingAlgorithm.java diff --git a/src/main/java/com/cbfacademy/apiassessment/SearchingAlgorithm.java b/src/main/java/com/cbfacademy/apiassessment/SearchingAlgorithm.java new file mode 100644 index 0000000..84e6a70 --- /dev/null +++ b/src/main/java/com/cbfacademy/apiassessment/SearchingAlgorithm.java @@ -0,0 +1,20 @@ +package com.cbfacademy.apiassessment; + +import java.util.List; + +import org.springframework.stereotype.Component; + +// method is taking in a list of SelfAssessmentUserDetails as input and using Java streams to filter users born <= 1957 and return false +// count function used to count matching users + +@Component +public class SearchingAlgorithm { + + public long countOver65sReturningFalseToAnswer1 (List userDetailsList) { + return userDetailsList.stream() + .filter(user -> user.getYearOfBirth() <= 1957). + filter(user -> !user.getAnswer1()) + .count(); + } + +} diff --git a/src/main/java/com/cbfacademy/apiassessment/SelfAssessmentController.java b/src/main/java/com/cbfacademy/apiassessment/SelfAssessmentController.java index ab48844..194944e 100644 --- a/src/main/java/com/cbfacademy/apiassessment/SelfAssessmentController.java +++ b/src/main/java/com/cbfacademy/apiassessment/SelfAssessmentController.java @@ -52,25 +52,16 @@ public ResponseEntity > retrieveSelfAssess return ResponseEntity.ok(selfAssessment); } - -// // post request to add users details - - // @PostMapping("/selfAssessmentData/addUser") - // public ResponseEntity addUserDetails(@RequestBody SelfAssessmentUserDetails userDetails) { - // selfAssessmentService.createUserSelfAssessment(userDetails); - // return ResponseEntity.ok("Self Assessment added successfully"); - // } - @PostMapping("/selfAssessmentData/addUser") - public ResponseEntity createUserDetails(@RequestBody SelfAssessmentUserDetails userDetails) { - selfAssessmentService.createUserSelfAssessment(userDetails); - String successMessage = "Self Assessment added successfully"; - return ResponseEntity.status(HttpStatus.CREATED).body(successMessage); + public ResponseEntity createUserDetails(@RequestBody SelfAssessmentUserDetails userDetails) { + selfAssessmentService.createUserSelfAssessment(userDetails); + String successMessage = "Self Assessment added successfully"; + return ResponseEntity.status(HttpStatus.CREATED).body(successMessage); } @PutMapping("/selfAssessmentData/userDetails/{userID}") - public ResponseEntity updateUserDetails(@PathVariable String userID, @RequestBody SelfAssessmentUserDetails userDetails) { + public ResponseEntity updateUserDetails(@PathVariable String userID, @RequestBody SelfAssessmentUserDetails userDetails) { boolean updated = selfAssessmentService.updateUserSelfAssessment(userID, userDetails); if (updated) { String successMessage = "Self Assessment updated successfully"; @@ -81,35 +72,17 @@ public ResponseEntity updateUserDetails(@PathVariable String userID, @Re } } - @DeleteMapping("/selfAssessmentData/userDetails/{userID}") - public ResponseEntity deleteUserDetails(@PathVariable String userID) { + @DeleteMapping("/selfAssessmentData/userDetails/{userID}") + public ResponseEntity deleteUserDetails(@PathVariable String userID) { boolean deleted = selfAssessmentService.deleteUserSelfAssessment(userID); if (deleted) { String successMessage = "Self Assessment deleted successfully"; - return ResponseEntity.ok(successMessage); + return ResponseEntity.ok(successMessage); } else { String errorMessage = "Self Assessment not found for userID: " + userID; - return ResponseEntity.status(HttpStatus.NOT_FOUND).body(errorMessage); + return ResponseEntity.status(HttpStatus.NOT_FOUND).body(errorMessage); } } - -// // sends request to retreive json file with useful information to answers to the questions -// @GetMapping("/selfAssessment") - - - - -// // allows user to update there self assessment following having access to the useful information -// @PutMapping("") -// public ResponseEntity updateUserSelfAssessment(@PathVariable UUID id, @RequestBody SelfAssessmentUserDetails updateDetails) { -// selfAssessmentService.updateUserSelfAssessment(id, updateDetails); -// return ResponseEntity.ok().build(); -// } - - -// // allows user to delete self assessment with there details -// @DeleteMapping("") - } diff --git a/src/main/java/com/cbfacademy/apiassessment/SelfAssessmentResultsController.java b/src/main/java/com/cbfacademy/apiassessment/SelfAssessmentResultsController.java index 98e23c7..714bcfb 100644 --- a/src/main/java/com/cbfacademy/apiassessment/SelfAssessmentResultsController.java +++ b/src/main/java/com/cbfacademy/apiassessment/SelfAssessmentResultsController.java @@ -54,10 +54,26 @@ private String generateContent(Map answers) { return contentBuilder.toString(); } + + @GetMapping("/over65s") + public ResponseEntity algorithmGetOver65sAnswer1() { + // Call the service to get the count using the new algorithm + long count = selfAssessmentService.getOver65sAnswer1(); + // Return the count in the response + return ResponseEntity.ok(count); + + } + + + + + } + + diff --git a/src/main/java/com/cbfacademy/apiassessment/SelfAssessmentServiceForAPI.java b/src/main/java/com/cbfacademy/apiassessment/SelfAssessmentServiceForAPI.java index c3377b2..2c70054 100644 --- a/src/main/java/com/cbfacademy/apiassessment/SelfAssessmentServiceForAPI.java +++ b/src/main/java/com/cbfacademy/apiassessment/SelfAssessmentServiceForAPI.java @@ -2,6 +2,7 @@ import java.util.LinkedList; +import java.util.List; import java.util.Map; import org.springframework.stereotype.Service; @@ -13,10 +14,13 @@ public class SelfAssessmentServiceForAPI { - private final SelfAssessmentUserProgrammeFunctions programmeFunctions; + private final SelfAssessmentUserProgrammeFunctions programmeFunctions; + private final SearchingAlgorithm searchingAlgorithm; - public SelfAssessmentServiceForAPI(SelfAssessmentUserProgrammeFunctions programmeFunctions) { + + public SelfAssessmentServiceForAPI(SelfAssessmentUserProgrammeFunctions programmeFunctions, SearchingAlgorithm searchingAlgorithm) { this.programmeFunctions = programmeFunctions; + this.searchingAlgorithm = searchingAlgorithm; } public LinkedList retrieveQuestions() { @@ -45,14 +49,16 @@ public Map getUserAnswers(String userID) { return userDetails.getAnswers(); } - - - - + public long getOver65sAnswer1() { + List allUsers = programmeFunctions.retrieveSelfAssessments(); + return searchingAlgorithm.countOver65sReturningFalseToAnswer1(allUsers); + } } + + diff --git a/src/main/java/com/cbfacademy/apiassessment/SelfAssessmentUserProgrammeFunctions.java b/src/main/java/com/cbfacademy/apiassessment/SelfAssessmentUserProgrammeFunctions.java index ea548ac..773b981 100644 --- a/src/main/java/com/cbfacademy/apiassessment/SelfAssessmentUserProgrammeFunctions.java +++ b/src/main/java/com/cbfacademy/apiassessment/SelfAssessmentUserProgrammeFunctions.java @@ -170,16 +170,11 @@ public Map getUserAnswers(String userID) { } } - } +} - - - - - diff --git a/src/main/resources/selfAssessmentData.json b/src/main/resources/selfAssessmentData.json index f296681..05cfbd0 100644 --- a/src/main/resources/selfAssessmentData.json +++ b/src/main/resources/selfAssessmentData.json @@ -2,13 +2,25 @@ { "userID": "Jane7" , "name": "Jane Doe", - "yearOfBirth": 1234, + "yearOfBirth": 1934, "contactNumber": "999", "answer1": false, "answer2": false, "answer3": false, "answer4": false, "answer5": false + }, + + { + "userID": "John7" , + "name": "John Doe", + "yearOfBirth": 1930, + "contactNumber": "111", + "answer1": false, + "answer2": false, + "answer3": false, + "answer4": false, + "answer5": false } ] From ea0875e5a7c4ce3313a52162b887ca993f277a7e Mon Sep 17 00:00:00 2001 From: Chella Date: Sun, 19 Nov 2023 15:44:09 +0000 Subject: [PATCH 29/36] Testing programme functions class --- .../SelfAssessmentController.java | 4 +- .../SelfAssessmentUserProgrammeFunctions.java | 3 - src/main/resources/selfAssessmentData.json | 6 +- .../SelfAssessmentUserDetailsTest.java | 5 +- ...fAssessmentUserProgrammeFunctionsTest.java | 107 ++++++++++++++++-- 5 files changed, 106 insertions(+), 19 deletions(-) diff --git a/src/main/java/com/cbfacademy/apiassessment/SelfAssessmentController.java b/src/main/java/com/cbfacademy/apiassessment/SelfAssessmentController.java index 194944e..a25ec23 100644 --- a/src/main/java/com/cbfacademy/apiassessment/SelfAssessmentController.java +++ b/src/main/java/com/cbfacademy/apiassessment/SelfAssessmentController.java @@ -52,7 +52,7 @@ public ResponseEntity > retrieveSelfAssess return ResponseEntity.ok(selfAssessment); } - +// sends request to create a user self assessment following input into body @PostMapping("/selfAssessmentData/addUser") public ResponseEntity createUserDetails(@RequestBody SelfAssessmentUserDetails userDetails) { selfAssessmentService.createUserSelfAssessment(userDetails); @@ -60,6 +60,7 @@ public ResponseEntity createUserDetails(@RequestBody SelfAssessmentUserD return ResponseEntity.status(HttpStatus.CREATED).body(successMessage); } +// request to update user, takes in param userID , update json file in body @PutMapping("/selfAssessmentData/userDetails/{userID}") public ResponseEntity updateUserDetails(@PathVariable String userID, @RequestBody SelfAssessmentUserDetails userDetails) { boolean updated = selfAssessmentService.updateUserSelfAssessment(userID, userDetails); @@ -72,6 +73,7 @@ public ResponseEntity updateUserDetails(@PathVariable String userID, @Re } } +// @DeleteMapping("/selfAssessmentData/userDetails/{userID}") public ResponseEntity deleteUserDetails(@PathVariable String userID) { boolean deleted = selfAssessmentService.deleteUserSelfAssessment(userID); diff --git a/src/main/java/com/cbfacademy/apiassessment/SelfAssessmentUserProgrammeFunctions.java b/src/main/java/com/cbfacademy/apiassessment/SelfAssessmentUserProgrammeFunctions.java index 773b981..e930659 100644 --- a/src/main/java/com/cbfacademy/apiassessment/SelfAssessmentUserProgrammeFunctions.java +++ b/src/main/java/com/cbfacademy/apiassessment/SelfAssessmentUserProgrammeFunctions.java @@ -46,9 +46,6 @@ public SelfAssessmentUserProgrammeFunctions() { gson = new GsonBuilder().setPrettyPrinting().create(); questions = readDataFromFile(); userDetailsInput = readUserDetailsDataFromFile(); - - - } public LinkedList retrieveSelfAssessmentQuestions() { diff --git a/src/main/resources/selfAssessmentData.json b/src/main/resources/selfAssessmentData.json index 05cfbd0..e7d9b07 100644 --- a/src/main/resources/selfAssessmentData.json +++ b/src/main/resources/selfAssessmentData.json @@ -17,10 +17,10 @@ "yearOfBirth": 1930, "contactNumber": "111", "answer1": false, - "answer2": false, + "answer2": true, "answer3": false, - "answer4": false, - "answer5": false + "answer4": true, + "answer5": true } ] diff --git a/src/test/java/com/cbfacademy/apiassessment/SelfAssessmentUserDetailsTest.java b/src/test/java/com/cbfacademy/apiassessment/SelfAssessmentUserDetailsTest.java index 712dbcd..4099ccc 100644 --- a/src/test/java/com/cbfacademy/apiassessment/SelfAssessmentUserDetailsTest.java +++ b/src/test/java/com/cbfacademy/apiassessment/SelfAssessmentUserDetailsTest.java @@ -3,15 +3,12 @@ import static org.junit.jupiter.api.Assertions.assertEquals; -import java.util.UUID; - import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Test; -@DisplayName(value = "The Self Assessment Methods should ") +@DisplayName(value = "The Self Assessment User Details class should:") public class SelfAssessmentUserDetailsTest { - UUID testUUID = UUID.randomUUID(); SelfAssessmentUserDetails userDetails = new SelfAssessmentUserDetails("123", "Jane Doe", 2000, "07590673402", false, false, true, true, true); // Below I am testing the get() method for returning the values; firstName, lastName, yearOfBirth, answer1, answer2, answer3 , answer 4 , answer 5. diff --git a/src/test/java/com/cbfacademy/apiassessment/SelfAssessmentUserProgrammeFunctionsTest.java b/src/test/java/com/cbfacademy/apiassessment/SelfAssessmentUserProgrammeFunctionsTest.java index 3aab552..f649b21 100644 --- a/src/test/java/com/cbfacademy/apiassessment/SelfAssessmentUserProgrammeFunctionsTest.java +++ b/src/test/java/com/cbfacademy/apiassessment/SelfAssessmentUserProgrammeFunctionsTest.java @@ -1,23 +1,114 @@ package com.cbfacademy.apiassessment; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertFalse; +import static org.junit.jupiter.api.Assertions.assertNotNull; +import static org.junit.jupiter.api.Assertions.assertThrows; +import static org.junit.jupiter.api.Assertions.assertTrue; +import static org.mockito.ArgumentMatchers.booleanThat; -public class SelfAssessmentUserProgrammeFunctionsTest { +import java.io.FileNotFoundException; +import java.io.IOException; +import java.io.Reader; +import java.io.StringReader; +import java.util.LinkedList; - SelfAssessmentUserProgrammeFunctions programmeFunctions = new SelfAssessmentUserProgrammeFunctions(); - +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; - // @Test - // @DisplayName("Testing Add method to check if user details exists if not add it to user detail record") - // public void testAddMethodFunctonForValidInput() { +import com.google.gson.Gson; - +@DisplayName(value = "The Self Assessment Programmes function class should:") +public class SelfAssessmentUserProgrammeFunctionsTest { + private SelfAssessmentUserProgrammeFunctions functions; + SelfAssessmentUserDetails userDetails = new SelfAssessmentUserDetails("TestUser", "Test User", 1990, "123456", true, false, true, false, true); + +// with the @BeforeEach annotation line 13 will be initialised before each test + @BeforeEach + + public void setUp() { + functions = new SelfAssessmentUserProgrammeFunctions(); + } + + @Test + @DisplayName("Test the retrieveSelfAssessmentQuestions method does not return null value") + public void testRetrieveSelfAssessmentQuestions() { + LinkedList questions = functions.retrieveSelfAssessmentQuestions(); + assertNotNull(questions); + } + + @Test + @DisplayName("Test the retrieveSelfAssessment method does not return null value") + public void testRetrieveSelfAssessment() { + LinkedList userDetails = functions.retrieveSelfAssessments(); + assertNotNull(userDetails); + } + + @Test + @DisplayName("Test the add method adds user details") + public void testAdd() { + // create an instance of the user detail class + functions.add(userDetails); + LinkedList userDetailsList = functions.retrieveSelfAssessments(); + // + assertTrue(userDetailsList.stream().anyMatch(user -> user.getUserID().equals("TestUser"))); + } + + @Test + @DisplayName("Test the find method correctly identifies the added user") + public void testFind() { + functions.add(userDetails); + assertTrue(functions.find("TestUser")); + assertFalse(functions.find("FakeUserID")); + + } + + @Test + @DisplayName("Test the readDataFromFile method correctly reads data from json file") + public void testReadDataFromFile(){ + + + } + + + @Test + @DisplayName("Test the delete method correctly delete user based on usertID") + public void testDeleteUserDetails() { + functions.add(userDetails); + boolean deleted = functions.deleteUserDetails("TestUser"); + assertTrue(deleted); + } + + @Test + @DisplayName("Test the readsUserDetailDataFromFile methods including if file not found and if IO exception is thrown ") + public void testReadUserDetailsDataFromFile() { + + String jsonFilePathUserDetails = "selfAssessmentData.json"; + LinkedList expectedUserDetails = new LinkedList<>(); + String json = new Gson().toJson(expectedUserDetails); + Reader reader = new StringReader(json); + + LinkedList result = functions.readUserDetailsDataFromFile(); + assertEquals(expectedUserDetails, result); + // Arrange for FileNotFoundException + reader = new StringReader("fakeFile.json"); // An empty string simulates a FileNotFoundException + // Assert for FileNotFoundException + assertThrows(FileNotFoundException.class, () -> functions.readUserDetailsDataFromFile(reader)); + // Arrange for IOException + reader = new StringReader(""); // An empty string simulates an IOException + // Assert for IOException + assertThrows(IOException.class, () -> functions.readUserDetailsDataFromFile(reader)); + } + +} + - // } From 4b0c81612c790c00da8776a595459add621efa84 Mon Sep 17 00:00:00 2001 From: Chella Date: Sun, 19 Nov 2023 20:13:18 +0000 Subject: [PATCH 30/36] tests mostly complete for programme functions --- .../SelfAssessmentUserProgrammeFunctions.java | 69 +++++------ ...fAssessmentUserProgrammeFunctionsTest.java | 110 ++++++++++++------ 2 files changed, 108 insertions(+), 71 deletions(-) diff --git a/src/main/java/com/cbfacademy/apiassessment/SelfAssessmentUserProgrammeFunctions.java b/src/main/java/com/cbfacademy/apiassessment/SelfAssessmentUserProgrammeFunctions.java index e930659..e65cd6b 100644 --- a/src/main/java/com/cbfacademy/apiassessment/SelfAssessmentUserProgrammeFunctions.java +++ b/src/main/java/com/cbfacademy/apiassessment/SelfAssessmentUserProgrammeFunctions.java @@ -88,7 +88,7 @@ private LinkedList readDataFromFile() { } private LinkedList readUserDetailsDataFromFile() { - try(Reader reader2 = new FileReader(jsonFilePathUserDetails)) { + try(Reader reader2 = new FileReader(jsonFilePathUserDetails)) { Type listType2 = new TypeToken>() { }.getType(); return gson.fromJson(reader2, listType2); @@ -98,51 +98,48 @@ private LinkedList readUserDetailsDataFromFile() { } catch (IOException e) { e.printStackTrace(); return new LinkedList<>(); + } } + private void writeDataToSelfAssessmentFile() { + try(Writer writer = new FileWriter(jsonFilePathUserDetails)){ + gson.toJson(userDetailsInput, writer); + } catch (IOException e) { + e.printStackTrace(); + } } - private void writeDataToSelfAssessmentFile() { - try(Writer writer = new FileWriter(jsonFilePathUserDetails)){ - gson.toJson(userDetailsInput, writer); - } catch (IOException e) { - e.printStackTrace(); - } - } - - public boolean updateUserDetails(String userID, SelfAssessmentUserDetails userDetails) { - for(SelfAssessmentUserDetails user : userDetailsInput) { + public boolean updateUserDetails(String userID, SelfAssessmentUserDetails userDetails) { + for(SelfAssessmentUserDetails user : userDetailsInput) { // if userID provided == userID within json file then update the user details - if (user.getUserID().equals(userID)) { - user.setName(userDetails.getName()); - user.setYearOfBirth(userDetails.getYearOfBirth()); - user.setContactNumber(userDetails.getContactNumber()); - user.setAnswer1(userDetails.getAnswer1()); - user.setAnswer2(userDetails.getAnswer2()); - user.setAnswer3(userDetails.getAnswer3()); - user.setAnswer4(userDetails.getAnswer4()); - user.setAnswer5(userDetails.getAnswer5()); - writeDataToSelfAssessmentFile(); - return true; - } - } + if (user.getUserID().equals(userID)) { + user.setName(userDetails.getName()); + user.setYearOfBirth(userDetails.getYearOfBirth()); + user.setContactNumber(userDetails.getContactNumber()); + user.setAnswer1(userDetails.getAnswer1()); + user.setAnswer2(userDetails.getAnswer2()); + user.setAnswer3(userDetails.getAnswer3()); + user.setAnswer4(userDetails.getAnswer4()); + user.setAnswer5(userDetails.getAnswer5()); + writeDataToSelfAssessmentFile(); + return true; + } + } return false; // returns false if no match is found after the loop - return false; - } + } - public boolean deleteUserDetails(String userID) { + public boolean deleteUserDetails(String userID) { // Iterator method allows to iterate over the elements in the userDetailsInput (list), contains there methods within the Iterator Class; hasNext() , next() , remove() to traverse LinkedList - Iterator iterator = userDetailsInput.iterator(); - while (iterator.hasNext()) { + Iterator iterator = userDetailsInput.iterator(); + while (iterator.hasNext()) { SelfAssessmentUserDetails user = iterator.next(); - if (user.getUserID().equals(userID)) { + if (user.getUserID().equals(userID)) { iterator.remove();; - writeDataToSelfAssessmentFile();; + writeDataToSelfAssessmentFile(); return true; + } + } return false; } - } - return false; - } public SelfAssessmentUserDetails getUserDetails(String userID) { // Logic to retrieve user details based on userID @@ -150,10 +147,8 @@ public SelfAssessmentUserDetails getUserDetails(String userID) { if (user.getUserID().equals(userID)) { return user; } + } return null; } - return null; - - } public Map getUserAnswers(String userID) { SelfAssessmentUserDetails userDetails = getUserDetails(userID); diff --git a/src/test/java/com/cbfacademy/apiassessment/SelfAssessmentUserProgrammeFunctionsTest.java b/src/test/java/com/cbfacademy/apiassessment/SelfAssessmentUserProgrammeFunctionsTest.java index f649b21..0416860 100644 --- a/src/test/java/com/cbfacademy/apiassessment/SelfAssessmentUserProgrammeFunctionsTest.java +++ b/src/test/java/com/cbfacademy/apiassessment/SelfAssessmentUserProgrammeFunctionsTest.java @@ -3,21 +3,16 @@ import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertFalse; import static org.junit.jupiter.api.Assertions.assertNotNull; -import static org.junit.jupiter.api.Assertions.assertThrows; import static org.junit.jupiter.api.Assertions.assertTrue; -import static org.mockito.ArgumentMatchers.booleanThat; -import java.io.FileNotFoundException; -import java.io.IOException; -import java.io.Reader; -import java.io.StringReader; + import java.util.LinkedList; +import java.util.Map; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Test; -import com.google.gson.Gson; @DisplayName(value = "The Self Assessment Programmes function class should:") @@ -63,17 +58,8 @@ public void testFind() { functions.add(userDetails); assertTrue(functions.find("TestUser")); assertFalse(functions.find("FakeUserID")); - - } - - @Test - @DisplayName("Test the readDataFromFile method correctly reads data from json file") - public void testReadDataFromFile(){ - - } - @Test @DisplayName("Test the delete method correctly delete user based on usertID") public void testDeleteUserDetails() { @@ -83,30 +69,76 @@ public void testDeleteUserDetails() { } @Test - @DisplayName("Test the readsUserDetailDataFromFile methods including if file not found and if IO exception is thrown ") - public void testReadUserDetailsDataFromFile() { + @DisplayName("Test getUserDetails method returns list of selfAssesment input") + public void testGetUserDetails() { + // Arrange: Create a sample user + functions.retrieveSelfAssessments().add(userDetails); - String jsonFilePathUserDetails = "selfAssessmentData.json"; - LinkedList expectedUserDetails = new LinkedList<>(); - String json = new Gson().toJson(expectedUserDetails); - Reader reader = new StringReader(json); - - LinkedList result = functions.readUserDetailsDataFromFile(); - assertEquals(expectedUserDetails, result); - // Arrange for FileNotFoundException - reader = new StringReader("fakeFile.json"); // An empty string simulates a FileNotFoundException - // Assert for FileNotFoundException - assertThrows(FileNotFoundException.class, () -> functions.readUserDetailsDataFromFile(reader)); - // Arrange for IOException - reader = new StringReader(""); // An empty string simulates an IOException - // Assert for IOException - assertThrows(IOException.class, () -> functions.readUserDetailsDataFromFile(reader)); + // Act: Call the method + SelfAssessmentUserDetails actualUser = functions.getUserDetails("TestUser"); + + // Assert: Check if the returned user matches the expected user + assertEquals(userDetails, actualUser); } + @Test + @DisplayName("Test getUserAnswers method returns list of users answers") + public void testGetUserAnswers() { + // Arrange: Create a sample user + functions.retrieveSelfAssessments().add(userDetails); + + // Act: Call the method + Map actualAnswers = functions.getUserAnswers("TestUser"); + + // Assert: Check if the returned answers match the expected answers + assertEquals(userDetails.getAnswers(), actualAnswers); + } + + @Test + @DisplayName("Test updateUserDetails method updates user if userID does not exist ") + public void testUpdateUserDetails() { + SelfAssessmentUserDetails existingUser = new SelfAssessmentUserDetails("UserID3", "Alice Johnson", 1985, "789", true, false, true, false, true); + functions.retrieveSelfAssessments().add(existingUser); + + // Arrange: Create updated details + SelfAssessmentUserDetails updatedDetails = new SelfAssessmentUserDetails("UserID3", "Alice Smith", 1985, "789", false, true, false, true, false); + + // Act: Call the method to update user details + boolean result = functions.updateUserDetails("UserID3", updatedDetails); + + // Assert: Check if the update was successful + assertTrue(result); + + // Assert: Check if the user details are updated + LinkedList userList = functions.retrieveSelfAssessments(); + SelfAssessmentUserDetails updatedUser = userList.stream().filter(user -> user.getUserID().equals("UserID3")).findFirst().orElse(null); + assertNotNull(updatedUser); + assertEquals("Alice Smith", updatedUser.getName()); + assertFalse(updatedUser.getAnswer1()); + } + + + } + // cant create tests from methods to readfilefromjson and writefiletojson + + // @Test + // @DisplayName("Test the readDataFromFile method correctly reads data from json file") + // public void testReadDataFromFile(){ + // } + + // @Test + // @DisplayName("Test readUserDetailsDataFromFile method with different scenarios") + // public void testReadUserDetailsDataFromFile(){ + // } + // @Test + // @DisplayName("Test write data to self assessment file") + // public void testWriteDataToSelfAssessmentFile() throws IOException { + // } + @@ -115,6 +147,17 @@ public void testReadUserDetailsDataFromFile() { + + + + + + + + + + + @@ -124,4 +167,3 @@ public void testReadUserDetailsDataFromFile() { -} From efbfeb1073ef3c788d70ad88dacde82284e9ec44 Mon Sep 17 00:00:00 2001 From: Chella Johnson <128637059+chellacodes@users.noreply.github.com> Date: Sun, 19 Nov 2023 21:27:49 +0000 Subject: [PATCH 31/36] Create README2.md --- README2.md | 56 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 56 insertions(+) create mode 100644 README2.md diff --git a/README2.md b/README2.md new file mode 100644 index 0000000..a726c6d --- /dev/null +++ b/README2.md @@ -0,0 +1,56 @@ +# Activities of Daily Living Self Assessment + +A Spring Boot API for managing self assessment user detail and return + +## Description + +An in-depth paragraph about your project and overview of use. + +## Getting Started + +### Dependencies + +* Describe any prerequisites, libraries, OS version, etc., needed before installing program. +* ex. Windows 10 + +### Installing + +* How/where to download your program +* Any modifications needed to be made to files/folders + +### Executing program + +* How to run the program +* Step-by-step bullets +``` +code blocks for commands +``` + +## Help + +Any advise for common problems or issues. +``` +command to run if program contains helper info +``` + +## Authors + +Contributors names and contact info + +ex. Chella Johnson / [@chellacodes] + +## Version History + +* 0.2 + * Various bug fixes and optimizations + * See [commit change]() or See [release history]() +* 0.1 + * Initial Release + +## License + +This project is licensed under the [NAME HERE] License - see the LICENSE.md file for details + +## Acknowledgments + +Shoud out Coding Black Females for giving me the knowledge and inspiration to complete this project From 2de6d724ade10f6e83681d415e4616b5b7b074a3 Mon Sep 17 00:00:00 2001 From: Chella Johnson <128637059+chellacodes@users.noreply.github.com> Date: Sun, 19 Nov 2023 22:37:47 +0000 Subject: [PATCH 32/36] Update README2.md --- README2.md | 55 ++++++++++++++++++++++++++---------------------------- 1 file changed, 26 insertions(+), 29 deletions(-) diff --git a/README2.md b/README2.md index a726c6d..d8deeb8 100644 --- a/README2.md +++ b/README2.md @@ -1,51 +1,48 @@ # Activities of Daily Living Self Assessment -A Spring Boot API for managing self assessment user detail and return +A Spring Boot API for managing self assessment user details and returning useful information based on the input. ## Description -An in-depth paragraph about your project and overview of use. +The SelfAssessmentAPI is an API that provides a platform for users to perform self-assessments based on a set of questions. The project includes classes for managing user details, a service for program functions, and controllers for handling HTTP requests. The API allows users to perform CRUD operations on self-assessment data. It includes features like user creation, updating, and retrieving useful information based on results. -## Getting Started +### Class structure -### Dependencies +SelfAssessmentUserDetails.java -* Describe any prerequisites, libraries, OS version, etc., needed before installing program. -* ex. Windows 10 +This class represents the details of a user performing a self-assessment. It includes attributes such as userID, name, yearOfBirth, contactNumber, and answers to specific assessment questions. The class also provides methods for retrieving and updating user details. -### Installing +SelfAssessmentUserProgrammeFunctions.java -* How/where to download your program -* Any modifications needed to be made to files/folders +This class contains methods for program functions related to the Self Assessment Programme. It handles the storage and retrieval of self-assessment questions and user details using JSON files. The class includes methods for adding, updating, and deleting user details. -### Executing program +## Controllers -* How to run the program -* Step-by-step bullets -``` -code blocks for commands -``` +SelfAssessmentController.java -## Help +This class is a REST controller that handles HTTP requests related to self-assessment questions and user details. It includes endpoints for retrieving questions, retrieving user details, adding a new user assessment, updating user details, and deleting user details. -Any advise for common problems or issues. -``` -command to run if program contains helper info -``` +SelfAssessmentResultsController.java -## Authors +The SelfAssessmentResultsController class is another REST controller responsible for handling requests related to self-assessment results. It includes an endpoint for retrieving results based on a user's ID and a specialized endpoint for obtaining the count of users over 65 who answered a specific question. -Contributors names and contact info +## Service -ex. Chella Johnson / [@chellacodes] +SelfAssessmentServiceForAPI.java -## Version History +This class serves as the service layer for the SelfAssessmentAPI, containing methods utilized by the controller class. It orchestrates the communication between the controller, program functions, and the searching algorithm. -* 0.2 - * Various bug fixes and optimizations - * See [commit change]() or See [release history]() -* 0.1 - * Initial Release +## Algorithm + +SearchingAlgorithm.java + +This class provides a method to count the number of users over the age of 65 who answered a specific question negatively. This class is designed to work with a list of SelfAssessmentUserDetails objects. The countOver65sReturningFalseToAnswer1 takes a list of user details as input, uses Java streams to filter users born in or before 1957 who answered a specific question (answer1) with false. The method then returns the count of matching users. + +## Programme + +SelfAssessmentUserProgramme.java + +This is the ## License From c02be704eb1796aa9fc80219fdebec6a5e1d4cba Mon Sep 17 00:00:00 2001 From: Chella Johnson <128637059+chellacodes@users.noreply.github.com> Date: Sun, 19 Nov 2023 22:42:24 +0000 Subject: [PATCH 33/36] Update README2.md --- README2.md | 26 +++++++++++++++----------- 1 file changed, 15 insertions(+), 11 deletions(-) diff --git a/README2.md b/README2.md index d8deeb8..e5aff2a 100644 --- a/README2.md +++ b/README2.md @@ -6,17 +6,25 @@ A Spring Boot API for managing self assessment user details and returning useful The SelfAssessmentAPI is an API that provides a platform for users to perform self-assessments based on a set of questions. The project includes classes for managing user details, a service for program functions, and controllers for handling HTTP requests. The API allows users to perform CRUD operations on self-assessment data. It includes features like user creation, updating, and retrieving useful information based on results. -### Class structure +## Class structure + +### Getters and Setters SelfAssessmentUserDetails.java This class represents the details of a user performing a self-assessment. It includes attributes such as userID, name, yearOfBirth, contactNumber, and answers to specific assessment questions. The class also provides methods for retrieving and updating user details. +Question.java + +This class represents a set of predefined questions for a self-assessment. It serves as a container for questions related to various aspects of an individual's physical care and accessibility. Each question is encapsulated as a private field with corresponding getter and setter methods. + +### Functions + SelfAssessmentUserProgrammeFunctions.java This class contains methods for program functions related to the Self Assessment Programme. It handles the storage and retrieval of self-assessment questions and user details using JSON files. The class includes methods for adding, updating, and deleting user details. -## Controllers +### Controllers SelfAssessmentController.java @@ -26,28 +34,24 @@ SelfAssessmentResultsController.java The SelfAssessmentResultsController class is another REST controller responsible for handling requests related to self-assessment results. It includes an endpoint for retrieving results based on a user's ID and a specialized endpoint for obtaining the count of users over 65 who answered a specific question. -## Service +### Service SelfAssessmentServiceForAPI.java This class serves as the service layer for the SelfAssessmentAPI, containing methods utilized by the controller class. It orchestrates the communication between the controller, program functions, and the searching algorithm. -## Algorithm +### Algorithm SearchingAlgorithm.java This class provides a method to count the number of users over the age of 65 who answered a specific question negatively. This class is designed to work with a list of SelfAssessmentUserDetails objects. The countOver65sReturningFalseToAnswer1 takes a list of user details as input, uses Java streams to filter users born in or before 1957 who answered a specific question (answer1) with false. The method then returns the count of matching users. -## Programme +### Programme SelfAssessmentUserProgramme.java -This is the - -## License - -This project is licensed under the [NAME HERE] License - see the LICENSE.md file for details +This class serves as the entry point for the SelfAssessmentAPI application. It uses the Spring Boot @SpringBootApplication annotation to bootstrap the application, making it executable. The class also includes the main method (public static void main(String[] args)) responsible for launching the Spring Boot application. ## Acknowledgments -Shoud out Coding Black Females for giving me the knowledge and inspiration to complete this project +Thank you Coding Black Females for giving me the knowledge and inspiration to complete this project From f3a75a33b16a3b427238252f273aff96cb472f4f Mon Sep 17 00:00:00 2001 From: Chella Date: Sun, 19 Nov 2023 22:44:23 +0000 Subject: [PATCH 34/36] FINAL COMMIT GOOD LUCK --- .../apiassessment/SelfAssessmentForm.html | 86 ------------------- .../SelfAssessmentServiceForAPI.java | 31 ------- src/main/resources/selfAssessmentData.json | 4 +- 3 files changed, 2 insertions(+), 119 deletions(-) delete mode 100644 src/main/java/com/cbfacademy/apiassessment/SelfAssessmentForm.html diff --git a/src/main/java/com/cbfacademy/apiassessment/SelfAssessmentForm.html b/src/main/java/com/cbfacademy/apiassessment/SelfAssessmentForm.html deleted file mode 100644 index acaf64c..0000000 --- a/src/main/java/com/cbfacademy/apiassessment/SelfAssessmentForm.html +++ /dev/null @@ -1,86 +0,0 @@ - - - Activites of Daily Living Self Assessment Form - - -

Activites of Daily Living Self Assessment Form

- -
- -
- - -
- - -
- - -

Survey Questions

-
    -
  1. Do you need physical care and support due to difficulties managing with any of the following; personal care, accessing the community, getting in and out of bed, drink and meal prep. - -
  2. - -
  3. Do you have any difficulties ascending and / or descending the stairs? - -
  4. - -
  5. Do you have any difficulties accessing your bathing facilities? - -
  6. - - -
  7. Do you have difficulties accessing your property? - -
  8. - - -
  9. Do you have difficulties transferring on and off the bed, chair, toilet, sofa? - -
  10. -
- - -
- - - - \ No newline at end of file diff --git a/src/main/java/com/cbfacademy/apiassessment/SelfAssessmentServiceForAPI.java b/src/main/java/com/cbfacademy/apiassessment/SelfAssessmentServiceForAPI.java index 2c70054..0e8df13 100644 --- a/src/main/java/com/cbfacademy/apiassessment/SelfAssessmentServiceForAPI.java +++ b/src/main/java/com/cbfacademy/apiassessment/SelfAssessmentServiceForAPI.java @@ -90,37 +90,6 @@ public long getOver65sAnswer1() { - - -// public SelfAssessmentServiceForAPI(SelfAssessmentUserProgrammeFunctions programmeFunctions) { -// this.programmeFunctions = programmeFunctions; -// } - -// public SelfAssessmentServiceForAPI() { -// listOfSelfAssesementInput = readDataFromFile(); -// gson = new GsonBuilder().setPrettyPrinting().create(); -// } - - -// public void createUserSelfAssessment(SelfAssessmentUserDetails recordOfDetails) { -// programmeFunctions.add(recordOfDetails); -// writeDataFromSelfAssessmentToFile(); -// } - - - - - -// public void deleteUser(UUID id) { -// programmeFunctions.delete(id); -// writeDataFromSelfAssessmentToFile(); -// } - -// public LinkedList getSelfAssessment() { -// return listOfSelfAssesementInput; -// } - -// } diff --git a/src/main/resources/selfAssessmentData.json b/src/main/resources/selfAssessmentData.json index e7d9b07..0523f63 100644 --- a/src/main/resources/selfAssessmentData.json +++ b/src/main/resources/selfAssessmentData.json @@ -3,7 +3,7 @@ "userID": "Jane7" , "name": "Jane Doe", "yearOfBirth": 1934, - "contactNumber": "999", + "contactNumber": "07497654321", "answer1": false, "answer2": false, "answer3": false, @@ -15,7 +15,7 @@ "userID": "John7" , "name": "John Doe", "yearOfBirth": 1930, - "contactNumber": "111", + "contactNumber": "07634608932", "answer1": false, "answer2": true, "answer3": false, From 021bec2f9025ee85bed04a6991cfcd71578f0cca Mon Sep 17 00:00:00 2001 From: Chella Johnson <128637059+chellacodes@users.noreply.github.com> Date: Sun, 19 Nov 2023 22:54:28 +0000 Subject: [PATCH 35/36] Update README2.md --- README2.md | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/README2.md b/README2.md index e5aff2a..7966db2 100644 --- a/README2.md +++ b/README2.md @@ -52,6 +52,10 @@ SelfAssessmentUserProgramme.java This class serves as the entry point for the SelfAssessmentAPI application. It uses the Spring Boot @SpringBootApplication annotation to bootstrap the application, making it executable. The class also includes the main method (public static void main(String[] args)) responsible for launching the Spring Boot application. -## Acknowledgments +### Link to published PostMan Documentation + +[PostMan Documentation](https://documenter.getpostman.com/view/31214081/2s9Ye8fuov#97f450c0-bbdb-4c7e-b719-cf71bc4944f3) + +### Acknowledgments Thank you Coding Black Females for giving me the knowledge and inspiration to complete this project From 1d1777a2b815da788e631bcccb0a5db5f0485e66 Mon Sep 17 00:00:00 2001 From: Chella Date: Sun, 19 Nov 2023 22:55:46 +0000 Subject: [PATCH 36/36] last last --- .../com/cbfacademy/apiassessment/SelfAssessmentController.java | 2 +- .../apiassessment/SelfAssessmentResultsController.java | 1 - 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/src/main/java/com/cbfacademy/apiassessment/SelfAssessmentController.java b/src/main/java/com/cbfacademy/apiassessment/SelfAssessmentController.java index a25ec23..ab461d6 100644 --- a/src/main/java/com/cbfacademy/apiassessment/SelfAssessmentController.java +++ b/src/main/java/com/cbfacademy/apiassessment/SelfAssessmentController.java @@ -73,7 +73,7 @@ public ResponseEntity updateUserDetails(@PathVariable String userID, @Re } } -// +// request to delete user, takes in param userID , updates json file in body @DeleteMapping("/selfAssessmentData/userDetails/{userID}") public ResponseEntity deleteUserDetails(@PathVariable String userID) { boolean deleted = selfAssessmentService.deleteUserSelfAssessment(userID); diff --git a/src/main/java/com/cbfacademy/apiassessment/SelfAssessmentResultsController.java b/src/main/java/com/cbfacademy/apiassessment/SelfAssessmentResultsController.java index 714bcfb..d09cbe6 100644 --- a/src/main/java/com/cbfacademy/apiassessment/SelfAssessmentResultsController.java +++ b/src/main/java/com/cbfacademy/apiassessment/SelfAssessmentResultsController.java @@ -31,7 +31,6 @@ public ResponseEntity getResults(@PathVariable String userID) { private String generateContent(Map answers) { // Logic to map answers to content - // Example: If answer1 is true, include a link StringBuilder contentBuilder = new StringBuilder(); if (!answers.get("answer1")) { contentBuilder.append("Here is a useful link if you need physical care and support : [Find your local council to access Adult Social Care](https://www.gov.uk/apply-needs-assessment-social-services)\n");