From df3a7c5836a752dbefe8da5495ccb01b0ab27530 Mon Sep 17 00:00:00 2001 From: Stuart Irwin Date: Sat, 10 Oct 2020 20:13:27 -0700 Subject: [PATCH 1/3] All tests passed --- pom.xml | 14 ++- .../CodingCompCsvUtil.java | 119 ++++++++++++++---- .../java/sf/codingcompetition2020/Pair.java | 15 +++ .../structures/Agent.java | 31 +++++ .../structures/Claim.java | 25 ++++ .../structures/Customer.java | 90 ++++++++++++- .../structures/Dependent.java | 4 + .../structures/Vendor.java | 27 +++- 8 files changed, 292 insertions(+), 33 deletions(-) create mode 100644 src/main/java/sf/codingcompetition2020/Pair.java diff --git a/pom.xml b/pom.xml index 21d55bf..c35e2ff 100644 --- a/pom.xml +++ b/pom.xml @@ -5,7 +5,19 @@ 4.0.0 coding-competition 1.0.0-SNAPSHOT - jar + + + + org.apache.maven.plugins + maven-compiler-plugin + + 8 + 8 + + + + + jar sf.codingcompetition2020 coding-competition diff --git a/src/main/java/sf/codingcompetition2020/CodingCompCsvUtil.java b/src/main/java/sf/codingcompetition2020/CodingCompCsvUtil.java index 58267da..c936ea2 100644 --- a/src/main/java/sf/codingcompetition2020/CodingCompCsvUtil.java +++ b/src/main/java/sf/codingcompetition2020/CodingCompCsvUtil.java @@ -1,20 +1,9 @@ package sf.codingcompetition2020; -import java.io.FileReader; -import java.io.Reader; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.Map.Entry; -import java.util.concurrent.atomic.AtomicInteger; -import java.util.stream.Collectors; - -import com.fasterxml.jackson.databind.DeserializationFeature; -import com.fasterxml.jackson.databind.MappingIterator; -import com.fasterxml.jackson.databind.ObjectReader; -import com.fasterxml.jackson.dataformat.csv.CsvMapper; -import com.fasterxml.jackson.dataformat.csv.CsvSchema; +import java.io.File; +import java.io.FileNotFoundException; +import java.util.*; +import java.util.function.Predicate; import sf.codingcompetition2020.structures.Agent; import sf.codingcompetition2020.structures.Claim; @@ -30,7 +19,42 @@ public class CodingCompCsvUtil { * @return -- List of entries being returned. */ public List readCsvFile(String filePath, Class classType) { - + return readCsvFile(filePath, classType, null); + } + + private List readCsvFile(String filePath, Class classType, Predicate filter) { + //Open file + File file = new File(filePath); + ArrayList list = new ArrayList<>(); + try { + //Skip first line + Scanner scan = new Scanner(file); + scan.nextLine(); + + while(scan.hasNextLine()) { + + //Build object + String[] values = scan.nextLine().split(","); + T ob = readLine(values, classType); + if(filter == null || filter.test(ob)) + list.add(ob); + } + } catch(FileNotFoundException e) { + System.out.println("File " + filePath + " not found"); + } + return list; + } + + private T readLine(String[] input, Class classType) { + if(classType == Agent.class) + return (T) new Agent(input); + if(classType == Claim.class) + return (T) new Claim(input); + if(classType == Customer.class) + return (T) new Customer(input); + if(classType == Vendor.class) + return (T) new Vendor(input); + throw new IllegalArgumentException("Invalid class type"); } @@ -40,8 +64,8 @@ public List readCsvFile(String filePath, Class classType) { * @param area -- The area from which the agents should be counted. * @return -- The number of agents in a given area */ - public int getAgentCountInArea(String filePath,String area) { - + public int getAgentCountInArea(String filePath, String area) { + return readCsvFile(filePath, Agent.class, agent -> agent.getArea().equals(area)).size(); } @@ -53,7 +77,7 @@ public int getAgentCountInArea(String filePath,String area) { * @return -- The number of agents in a given area */ public List getAgentsInAreaThatSpeakLanguage(String filePath, String area, String language) { - + return readCsvFile(filePath, Agent.class, agent -> agent.getArea().equals(area) && agent.getLanguage().equals(language)); } @@ -66,7 +90,13 @@ public List getAgentsInAreaThatSpeakLanguage(String filePath, String area * @return -- The number of customers that use a certain agent in a given area. */ public short countCustomersFromAreaThatUseAgent(Map csvFilePaths, String customerArea, String agentFirstName, String agentLastName) { - + List agents = readCsvFile(csvFilePaths.get("agentList"), Agent.class, + agent -> agent.getFirstName().equals(agentFirstName) && agent.getLastName().equals(agentLastName)); + if(agents.size() != 1) + return 0; + + return (short)readCsvFile(csvFilePaths.get("customerList"), Customer.class, + customer -> customer.getArea().equals(customerArea) && customer.getAgentId() == agents.get(0).getAgentId()).size(); } @@ -77,7 +107,9 @@ public short countCustomersFromAreaThatUseAgent(Map csvFilePaths, * @return -- List of customers retained for a given number of years, in ascending order of policy cost. */ public List getCustomersRetainedForYearsByPlcyCostAsc(String customerFilePath, short yearsOfService) { - + List customers = readCsvFile(customerFilePath, Customer.class, customer -> customer.getYearsOfService() == yearsOfService); + customers.sort(Comparator.comparingInt(customer -> Integer.parseInt(customer.getTotalMonthlyPremium().substring(1)))); + return customers; } @@ -88,7 +120,8 @@ public List getCustomersRetainedForYearsByPlcyCostAsc(String customerF * @return -- List of customers who’ve made an inquiry for a policy but have not signed up. */ public List getLeadsForInsurance(String filePath) { - + return readCsvFile(filePath, Customer.class, customer -> + !(customer.hasAutoPolicy() || customer.hasHomePolicy() || customer.hasRentersPolicy())); } @@ -103,7 +136,8 @@ b. Whether that vendor is in scope of the insurance (if inScope == false, return * @return -- List of vendors within a given area, filtered by scope and vendor rating. */ public List getVendorsWithGivenRatingThatAreInScope(String filePath, String area, boolean inScope, int vendorRating) { - + return readCsvFile(filePath, Vendor.class, + vendor -> vendor.getArea().equals(area) && vendor.getVendorRating() >= vendorRating && (!inScope || vendor.isInScope())); } @@ -117,7 +151,9 @@ public List getVendorsWithGivenRatingThatAreInScope(String filePath, Str * @return -- List of customers filtered by age, number of vehicles insured and the number of dependents. */ public List getUndisclosedDrivers(String filePath, int vehiclesInsured, int dependents) { - + return readCsvFile(filePath, Customer.class, + customer -> customer.getVehiclesInsured() > vehiclesInsured && customer.getDependents().size() <= dependents && + customer.getAge() >= 40 && customer.getAge() <= 50); } @@ -130,8 +166,30 @@ public List getUndisclosedDrivers(String filePath, int vehiclesInsured * @return -- Agent ID of agent with the given rank. */ public int getAgentIdGivenRank(String filePath, int agentRank) { - - } + List list = readCsvFile(filePath, Customer.class); + HashMap agents = new HashMap<>(); + + //Create map of agent ratings + for(Customer c : list) { + int agentId = c.getAgentId(); + if(agents.containsKey(agentId)) + agents.replace(agentId, agents.get(agentId).add(new Pair(c.getAgentRating(), 1))); + else + agents.put(agentId, new Pair(c.getAgentRating(), 1)); + } + + //Create new list + List agentsList = new ArrayList<>(); + for(int agentId : agents.keySet()) { + //Calculate avg rating + Pair p = agents.get(agentId); + agentsList.add(new Pair(agentId, 100 * p.first / p.second)); + } + + //Sort agents + agentsList.sort(Comparator.comparingInt(pair -> pair.second)); + return agentsList.get(agentsList.size() - agentRank).first; + } /* #10 @@ -141,7 +199,14 @@ public int getAgentIdGivenRank(String filePath, int agentRank) { * @return -- List of customers who’ve filed a claim within the last . */ public List getCustomersWithClaims(Map csvFilePaths, short monthsOpen) { - + List claims = readCsvFile(csvFilePaths.get("claimList"), Claim.class, claim -> claim.getMonthsOpen() <= monthsOpen); + List customers = readCsvFile(csvFilePaths.get("customerList"), Customer.class); + Set filteredCustomers = new HashSet<>(); + + for(Claim c : claims) + filteredCustomers.add(customers.get(c.getCustomerId() - 1)); + + return new ArrayList<>(filteredCustomers); } } diff --git a/src/main/java/sf/codingcompetition2020/Pair.java b/src/main/java/sf/codingcompetition2020/Pair.java new file mode 100644 index 0000000..838ada3 --- /dev/null +++ b/src/main/java/sf/codingcompetition2020/Pair.java @@ -0,0 +1,15 @@ +package sf.codingcompetition2020; + +public class Pair { + public final int first; + public final int second; + + public Pair(int first, int second) { + this.first = first; + this.second = second; + } + + public Pair add(Pair other) { + return new Pair(first + other.first, second + other.second); + } +} diff --git a/src/main/java/sf/codingcompetition2020/structures/Agent.java b/src/main/java/sf/codingcompetition2020/structures/Agent.java index e2e6f93..df272c8 100644 --- a/src/main/java/sf/codingcompetition2020/structures/Agent.java +++ b/src/main/java/sf/codingcompetition2020/structures/Agent.java @@ -8,4 +8,35 @@ public class Agent { private String firstName; private String lastName; + public Agent(String[] s) { + if(s.length != 5) + return; + + //Set values + agentId = Integer.parseInt(s[0]); + area = s[1]; + language = s[2]; + firstName = s[3]; + lastName = s[4]; + } + + public int getAgentId() { + return agentId; + } + + public String getArea() { + return area; + } + + public String getLanguage() { + return language; + } + + public String getFirstName() { + return firstName; + } + + public String getLastName() { + return lastName; + } } diff --git a/src/main/java/sf/codingcompetition2020/structures/Claim.java b/src/main/java/sf/codingcompetition2020/structures/Claim.java index 581140a..385a736 100644 --- a/src/main/java/sf/codingcompetition2020/structures/Claim.java +++ b/src/main/java/sf/codingcompetition2020/structures/Claim.java @@ -6,4 +6,29 @@ public class Claim { private boolean closed; private int monthsOpen; + public Claim(String[] s) { + if(s.length != 4) + return; + + claimId = Integer.parseInt(s[0]); + customerId = Integer.parseInt(s[1]); + closed = s[2].equals("true"); + monthsOpen = Integer.parseInt(s[3]); + } + + public int getClaimId() { + return claimId; + } + + public int getCustomerId() { + return customerId; + } + + public boolean isClosed() { + return closed; + } + + public int getMonthsOpen() { + return monthsOpen; + } } diff --git a/src/main/java/sf/codingcompetition2020/structures/Customer.java b/src/main/java/sf/codingcompetition2020/structures/Customer.java index f151906..8670967 100644 --- a/src/main/java/sf/codingcompetition2020/structures/Customer.java +++ b/src/main/java/sf/codingcompetition2020/structures/Customer.java @@ -3,10 +3,6 @@ import java.util.ArrayList; import java.util.List; -import com.fasterxml.jackson.core.JsonProcessingException; -import com.fasterxml.jackson.databind.JsonMappingException; -import com.fasterxml.jackson.databind.ObjectMapper; - public class Customer { private int customerId; private String firstName; @@ -23,5 +19,91 @@ public class Customer { private String totalMonthlyPremium; private short yearsOfService; private Integer vehiclesInsured; + + public Customer(String[] s) { + if(s.length < 15) + return; + + customerId = Integer.parseInt(s[0]); + firstName = s[1]; + lastName = s[2]; + age = Integer.parseInt(s[3]); + area = s[4]; + agentId = Integer.parseInt(s[5]); + agentRating = Short.parseShort(s[6]); + primaryLanguage = s[7]; + + int i = 0; + dependents = new ArrayList<>(); + if(s[8].length() > 0) { + do { + dependents.add(new Dependent(s[8 + i], s[9 + i])); + i += 2; + } while(s[8 + i].charAt(0) == '{'); + i--; + } + + homePolicy = s[9 + i].equals("true"); + autoPolicy = s[10 + i].equals("true"); + rentersPolicy = s[11 + i].equals("true"); + totalMonthlyPremium = s[12 + i]; + yearsOfService = Short.parseShort(s[13 + i]); + vehiclesInsured = Integer.parseInt(s[14 + i]); + } + + public int getCustomerId() { + return customerId; + } + + public String getFirstName() { + return firstName; + } + + public String getLastName() { + return lastName; + } + + public int getAge() { + return age; + } + + public String getArea() { + return area; + } + + public int getAgentId() { + return agentId; + } + + public short getAgentRating() { + return agentRating; + } + + public List getDependents() { + return dependents; + } + + public boolean hasHomePolicy() { + return homePolicy; + } + + public boolean hasAutoPolicy() { + return autoPolicy; + } + + public boolean hasRentersPolicy() { + return rentersPolicy; + } + + public String getTotalMonthlyPremium() { + return totalMonthlyPremium; + } + + public int getYearsOfService() { + return yearsOfService; + } + public Integer getVehiclesInsured() { + return vehiclesInsured; + } } diff --git a/src/main/java/sf/codingcompetition2020/structures/Dependent.java b/src/main/java/sf/codingcompetition2020/structures/Dependent.java index d4deb1a..be06e74 100644 --- a/src/main/java/sf/codingcompetition2020/structures/Dependent.java +++ b/src/main/java/sf/codingcompetition2020/structures/Dependent.java @@ -4,4 +4,8 @@ public class Dependent { private String firstName; private String lastName; + public Dependent(String first, String last) { + firstName = first.split(":")[1].replaceAll("[\"}]",""); + lastName = last.split(":")[1].replaceAll("[\"}]",""); + } } diff --git a/src/main/java/sf/codingcompetition2020/structures/Vendor.java b/src/main/java/sf/codingcompetition2020/structures/Vendor.java index 6b6fb76..33e9d2e 100644 --- a/src/main/java/sf/codingcompetition2020/structures/Vendor.java +++ b/src/main/java/sf/codingcompetition2020/structures/Vendor.java @@ -5,5 +5,30 @@ public class Vendor { private String area; private int vendorRating; private boolean inScope; - + + public Vendor(String[] s) { + if(s.length != 4) + return; + + vendorId = Integer.parseInt(s[0]); + area = s[1]; + vendorRating = Integer.parseInt(s[2]); + inScope = s[3].equals("true"); + } + + public int getVendorId() { + return vendorId; + } + + public String getArea() { + return area; + } + + public int getVendorRating() { + return vendorRating; + } + + public boolean isInScope() { + return inScope; + } } From d61996fc9c3a131eb01cdba5279ce9b66780b06c Mon Sep 17 00:00:00 2001 From: Stuart Irwin Date: Sat, 10 Oct 2020 20:30:53 -0700 Subject: [PATCH 2/3] Additional comments and updated feedback.txt --- feedback.txt | 4 ++-- .../structures/Claim.java | 1 + .../structures/Customer.java | 3 +++ .../structures/Dependent.java | 1 + .../structures/Vendor.java | 1 + .../CodingCompCsvUtil.class | Bin 3251 -> 12624 bytes .../structures/Agent.class | Bin 428 -> 1124 bytes .../structures/Claim.class | Bin 397 -> 1070 bytes .../structures/Customer.class | Bin 806 -> 3122 bytes .../structures/Dependent.class | Bin 384 -> 718 bytes .../structures/Vendor.class | Bin 419 -> 1110 bytes .../CodingCompCsvUtilTest.class | Bin 3972 -> 5226 bytes 12 files changed, 8 insertions(+), 2 deletions(-) diff --git a/feedback.txt b/feedback.txt index b931d50..a4b052d 100644 --- a/feedback.txt +++ b/feedback.txt @@ -1,5 +1,5 @@ -Your team (name of each individual participating): -How many JUnits were you able to get to pass? +Your team (name of each individual participating): Stuart Irwin +How many JUnits were you able to get to pass? 10 Document and describe any enhancements included to help the judges properly grade your submission. Step 1: diff --git a/src/main/java/sf/codingcompetition2020/structures/Claim.java b/src/main/java/sf/codingcompetition2020/structures/Claim.java index 385a736..af61687 100644 --- a/src/main/java/sf/codingcompetition2020/structures/Claim.java +++ b/src/main/java/sf/codingcompetition2020/structures/Claim.java @@ -10,6 +10,7 @@ public Claim(String[] s) { if(s.length != 4) return; + //Set values claimId = Integer.parseInt(s[0]); customerId = Integer.parseInt(s[1]); closed = s[2].equals("true"); diff --git a/src/main/java/sf/codingcompetition2020/structures/Customer.java b/src/main/java/sf/codingcompetition2020/structures/Customer.java index 8670967..0675d10 100644 --- a/src/main/java/sf/codingcompetition2020/structures/Customer.java +++ b/src/main/java/sf/codingcompetition2020/structures/Customer.java @@ -24,6 +24,7 @@ public Customer(String[] s) { if(s.length < 15) return; + //First set of values customerId = Integer.parseInt(s[0]); firstName = s[1]; lastName = s[2]; @@ -33,6 +34,7 @@ public Customer(String[] s) { agentRating = Short.parseShort(s[6]); primaryLanguage = s[7]; + //Variable number of dependents int i = 0; dependents = new ArrayList<>(); if(s[8].length() > 0) { @@ -43,6 +45,7 @@ public Customer(String[] s) { i--; } + //Other variables offset accordingly homePolicy = s[9 + i].equals("true"); autoPolicy = s[10 + i].equals("true"); rentersPolicy = s[11 + i].equals("true"); diff --git a/src/main/java/sf/codingcompetition2020/structures/Dependent.java b/src/main/java/sf/codingcompetition2020/structures/Dependent.java index be06e74..ce42ebb 100644 --- a/src/main/java/sf/codingcompetition2020/structures/Dependent.java +++ b/src/main/java/sf/codingcompetition2020/structures/Dependent.java @@ -5,6 +5,7 @@ public class Dependent { private String lastName; public Dependent(String first, String last) { + //Clean json data firstName = first.split(":")[1].replaceAll("[\"}]",""); lastName = last.split(":")[1].replaceAll("[\"}]",""); } diff --git a/src/main/java/sf/codingcompetition2020/structures/Vendor.java b/src/main/java/sf/codingcompetition2020/structures/Vendor.java index 33e9d2e..d6824e2 100644 --- a/src/main/java/sf/codingcompetition2020/structures/Vendor.java +++ b/src/main/java/sf/codingcompetition2020/structures/Vendor.java @@ -10,6 +10,7 @@ public Vendor(String[] s) { if(s.length != 4) return; + //Set values vendorId = Integer.parseInt(s[0]); area = s[1]; vendorRating = Integer.parseInt(s[2]); diff --git a/target/classes/sf/codingcompetition2020/CodingCompCsvUtil.class b/target/classes/sf/codingcompetition2020/CodingCompCsvUtil.class index 00daba9d49249e6950fa6b4b75732ac294bb504b..09b9782a9fdab7403c719cb4a386f3022619ae51 100644 GIT binary patch literal 12624 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 diff --git a/target/classes/sf/codingcompetition2020/structures/Agent.class b/target/classes/sf/codingcompetition2020/structures/Agent.class index 26bf31f236fb6fb54997543cc9d682faad0ab137..021e4f8efd3a5f783b531a0f54e8b5f78f4ce6f4 100644 GIT binary patch literal 1124 zcma)4%Wl&^6g`tTapE}inL?pJOG}Aus8hoZgoKbPMG9q6)D5eN>jszBiJS>P!-5}R zK_w~>i+%tf1)OnOiV`o_+}GT5&$-wB`Rm6yfG2otp^Ez!Hu0c}3YywD+PK^pdn%2S-cx~!PDgAPs2;}YQ0>YS#w=fk z+vtm1wWw1SpDROu*Gqcj@&FZ3RiDTr9ep%*2&_s zYnzn@dzZ#+^w*h@7dNm>EjJm@K>Q}SV4`B;77KzSZeIxX=>=;g_bZB@85A;Zy$v`+ z&$h=67qbQK;4UkA%YVVfmkIDnE_gK;T$%*0=7QI9!R1NtMlSeXF4&v|H*>-3*>W3y E0IfK^=>Px# delta 201 zcmaFDv4)xV)W2Q(7#J7~8N}Hcm?mFf)DdH6U}0ns$Vx0r)Xz!GOV{^L%1TWxnP?m? z%B-Oo#>l|poS%})#lXxUz{9}9z&mk8+~i4&64eZf42(cQ1_o9JCLm@5vX~gy892Z+ zCzR%b(%fL05vT)b0+8ebs?rD2j3E75+Zp&bg0%?(Nj9(`GlLM2%>z-uAj}{FntD0Cmt7`~Uy| diff --git a/target/classes/sf/codingcompetition2020/structures/Claim.class b/target/classes/sf/codingcompetition2020/structures/Claim.class index 1ce796d6b4bbd86e5fd9c0045b14f53408639028..0e79a6a159641868c701b2dd1320c2153ab92c40 100644 GIT binary patch literal 1070 zcma)4O>fgc5PcgvapF3pO`Fm}p&xuDHq;@slm<9)fx(C&yV*7sn3vnm@yV zKft9D1;n90fFA|SI*}S8ACRS)otb^}=8gB)@1Iuy_V8SXj{7!O zO9qdnd7@!ggUz71zT=G!2Mp|xL3fi_gd-lwM8WmLn9Is3RYqYT&f?=S52*6O3q0|X zVYU9Yd+vO6Y~Klnc27iJFl;wY7}QQU;0%?n7x34~sL!J}PT!|YwHvyQf8s=*jHgLe zoOv;W)s5fTZaAPOZa5lq;R!DcTFq9|jzyHXB8hlxcjUlrnu-w18T1V0o^agvN6t8H zuVJ0WA99fbr7)%5AgyJYnvq-d;?7hsT_DNw!qJRsy%#2t%U^j?hn{xZmEsL7p{e1i zffk+_Sb$-m41<KT8AWY6@Q{4e^Q{6pgSw9bDp6Sj8a6x;M*bb4GWa#9_ga#CRGNmS}d z7x_GBE>y`bQ}hW6-2@KI?_k!I_8IDhX(_EA$X!A)Ep>8IO)KB3=D(qE3C*+$lWg&V zkP24F?x0AvMEvq?FVI&;jn=tI+!k$gpEzrDV|Btt{w77li#4p%EVt-f0sBM1oQ9Hy z+mv9~z@6!!HhD(5y!jQ%7dqrp-a?vONqZZU3)9{VcQe82Ja{b=yooJpCs#Dftj&Wr TGQr!K%*A=|Rwj5S6?gA1#c#e4 delta 193 zcmZ3-(aX$x>ff$?3=9m03}WmIOp{kL>HujLMh1bb#Ii*FoW#6zegCAa)Z~(hW)7mv z8k%8@3@pz1DXClx%nbZI4BQMn6Q{&YPG*!SW>92c1PU@RurM$&urja#SxgMg^a1b`$PSdf`P5Xc581u9?=Vh{$>j0_?` Il8HeS06;<&`v3p{ diff --git a/target/classes/sf/codingcompetition2020/structures/Customer.class b/target/classes/sf/codingcompetition2020/structures/Customer.class index 844ea29474f5bc9dd328dee078d97b0567ad1de8..10fa7f9a502e4428d9b16bcb88f8628891905ac0 100644 GIT binary patch literal 3122 zcmbVNTXR!Y6#h<<=Cr3L7g{K{7Ajt76QB?U)N-*Ffk2?x)M5dJ)ATeskV`o^sa90H zAd30}oYB!4pB%>rnK4{shG)k|$9I2%{s2e(_D(~>VLzZRYwfl6{`OjXt#6(4>pwr= z1@H_$H?RRS22SC07Y1-fh}VR8U5K+noD;$_FpHd6%?V-am^WZzMi_Ym1vom+8;IjV zH;O0;Pq`Bnp%=uNi$b_URE6+_sEM$PV)cfOH+3v&Fmko3S1H+UdQO9u*3dQYxK;1C zRkAhoWX@ZQ)=1GR=SQ-h>y-1O8aj(sb3bV1c`9VNwxvO*QTD_&-EuW)c?9s%tcKWv z>y#{aDZ`s;5@gKT3wC*qh^mHoBTmh8iX$1P>M=@J*2$MGujVqqm~VSeraC{8tIYBG zT&1*NdyeN+%Bk(C?ITsst>px&I&z>HV00hvGYWjuo>e?nDSL(D(h1itIkl38=#p)@)rtA6?JhbwCKg+?3r?}Z52!N z%Dn9|czBOfcD#KW`i4%o9at{u@HA^UUYQdYW}LEpyjGgE-6?CfNKa3ulCz4_mg@+6 z*%|T*4$HRfk?JtM++gOR5!9>5fIE(cNY=A*7misAGKvo78_C;V6E8X&92zD?OnMKt zSh8|x_~A#91w56xPn9sOF~JsHEF@u!hO5DuXwzuYhM`Ctk-+^%GW(uptah%9Kji#B z42cx1>ftt$Fagp;c*ok95~n@+AX)mDhYCb?tT8lSEwo-F* z_CZH5A<}HbHZhbYcHu1@mrT5kcT8-=pozz@$;9JAJR!^{#p)>x>Uh`0WxQu%GlonI zV-r~*2U`|#%yq3LF?A*qNa}ds#0MDHu=PI;naJlu9al_zgsUb##wR2-htW21O*pn; z#Kd+Xb_kIYxjik?`4pd-{4DO&u;oz#HjBWIM(f)&F?-(5d6J%-r4_A> zX=+$C^e|fmt79!#woq|-(vYBKLkS~8+tO&vGsnGXm-Ajh!)8S&MR4XEZS_O6f={vL zIByRGZM{ZylShI?p4}H-p*6fLS@u^9-k7bioB*_4OKtK!u z!5Xdtf;du>J5rNAQj5uU2y4*IwTboULqGd9z=7Vt>TYD+2C<+0I>L%h z(mTZ|Kg%I^SlO!_?Q5LjFW8kYdHQ=+|2Ajt7mnO-oVY(YaDQ^to@bQ7My)Z5J+xSL z?8QEIVhUgJ{z3Ng1$tK^c#mlWbPVVi1OCPtZ3j=ii19|(7=ix|p6p;TgFkQ)kWUFq z=WZFwY#dk)rQrZxqK7Si037|4=TYOe(-)J_>eN~us`i_CHSy1vhI(3NC{3W zBX{~EA60^n;HaWth95kk1ZQxJJ@HpN>Q6hX0B?~UInLM3>Jr@9A&^=1gL2UAb8h6V`98Xm%S@1k;yyL%96a}CUSe)TW(DM8TUsn^n diff --git a/target/classes/sf/codingcompetition2020/structures/Dependent.class b/target/classes/sf/codingcompetition2020/structures/Dependent.class index 3ee505f7dda4d5aad7c64d98dd9748ea80a0698b..41b1be7620d6aa10735413f6c688cb461ca859b0 100644 GIT binary patch literal 718 zcmb7C%TC)s6g`s|>=>7adH2Pm1rkFsin>5hA)!`XMRWmTgIG+Q0R}mCWRKbLQC*Zu zEck$aRMq3qLe+H9YNR{&-nnznxo76v_uD%FZxOg~G4J51i)VQ5;Dv*irMpl=4U45& zvaxLAl|b!GXSq3$T_xbRF6EUBW0{`L2Ky%U|ci?{uQgp1@jtuyQcdI2N$p zryX`4Yw1KC6y3JUj$}LTW2KRdk7cII_-E2G7djURTlrZSr5zH8(r!-~ZFHJ6x0+jF zZn7dWMW*ubgX*cIqY^`sL;WcTSCSQQ57Q!x)JI(+jXo4^mg9LC#cKhvV`Ig`D%N=G zWcm7303PaSco>1_;R!r}H~+;$VEj?PPwh(;kxI2*%JAF4y|AR5_hQY0ziHVx8B~)~ zWvUm;NbSe5!1ljA!C)UO@%deTlL{9{?R%V-J5`}LW3=Op3RtLeUk|=Q1nYj~234!+ zTmH}uhQGiLHvUXGpZm=wXnkG=Y+47i1Plo2GqZT#5|fx>#O9bLG_|KUL$5-AmQe+B FKLE2%r<(u( delta 162 zcmX@d+Q7_v>ff$?3=9m048rUTOq2Z?4Vc*(SSHsqicT~!6=l}Y3}a+qan4UkG hZv-pj1(IxFL1qR%Ae#rGfPtSu0LWux5Cp3d0sw;C5CQ-I diff --git a/target/classes/sf/codingcompetition2020/structures/Vendor.class b/target/classes/sf/codingcompetition2020/structures/Vendor.class index fdbca9b6e0183e880547b8ff174552c31967ec4f..c5376733294d1ea42beb41740cbf68044d6d4917 100644 GIT binary patch literal 1110 zcma)5T~8B16g|^!yZu@qr)Uk5bR>7D4EPX)-hS_MUt0IWzn7*N-Crckr-)0#*vRiAo-MRHMa=mRb(0 z1>C|~6j(aeb=(%n?JKYC2lcjqs0(N^P*R}O*p>Uz>PoL;HN(L5I-3GUQu_*h`J^7=fuy3N*4{Wgmy8m_0F5B6FrcqLn1W=aj;k=<<>xKTVz zYT;YAFR#5KUUEj0U?RBdk1_LJ?1gdXs#~L`IAY^(3zra{Cl+L?n zvKRN)F)vW;s4ziB>eH1f_3O+%i7hBss^@iZ{J)@MAM$R$e(VIB(2GLT9|VrtawB!c zgkmi+)IbTgjtztNbk{%;hJi7R8<>DWgD6PpxM$!#9vGO!lz{pF@&zVOF6~8YS2NX5L_I9ZN+8%e>ix4=~_G80KW4c0!N h0nd#DFO6i*oMm1Z30}sv5zM)>;Kh;P>+yUy{s3|@%QpZ3 delta 195 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 From 414b7da80b1b952afbef34e14bccd25ecfa93588 Mon Sep 17 00:00:00 2001 From: Stuart Irwin Date: Sat, 10 Oct 2020 21:41:16 -0700 Subject: [PATCH 3/3] Added schemas for potential graphql server --- feedback.txt | 2 -- src/main/resources/schema.graphqls | 51 ++++++++++++++++++++++++++++++ 2 files changed, 51 insertions(+), 2 deletions(-) create mode 100644 src/main/resources/schema.graphqls diff --git a/feedback.txt b/feedback.txt index a4b052d..0c3b98d 100644 --- a/feedback.txt +++ b/feedback.txt @@ -2,8 +2,6 @@ Your team (name of each individual participating): Stuart Irwin How many JUnits were you able to get to pass? 10 Document and describe any enhancements included to help the judges properly grade your submission. - Step 1: - Step 2: Feedback for the coding competition? Things you would like to see in future events? diff --git a/src/main/resources/schema.graphqls b/src/main/resources/schema.graphqls new file mode 100644 index 0000000..05eb4b2 --- /dev/null +++ b/src/main/resources/schema.graphqls @@ -0,0 +1,51 @@ +type Agent { + agentId: ID! + area: String + language: String + firstName: String + lastName: String +} + +type Dependent { + firstName: String + lastName: String +} + +type Customer { + customerId: ID! + firstName: String + lastName: String + age: Int + area: String + agentId: Int + agentRating: Int + primaryLanguage: String + dependents: [Dependent] + homePolicy: Boolean + autoPolicy: Boolean + rentersPolicy: Boolean + totalMonthlyPremium: String + yearsOfService: Int + vehiclesInsured: Int +} + +type Claim { + claimId: ID! + customer: Customer + closed: Boolean + monthsOpen: Int +} + +type Vendor { + vendorId: ID! + area: String + vendorRating: Int + inScope: Boolean +} + +type Query { + agents: [Agent] + claims: [Claim] + customers: [Customer] + vendors: [Vendor] +} \ No newline at end of file