From 94e73b97b63d48988627e87e5e7dc6dc837aed4f Mon Sep 17 00:00:00 2001 From: Mikayla Dobson <93477693+innocuous-symmetry@users.noreply.github.com> Date: Wed, 25 Jan 2023 14:40:32 -0600 Subject: [PATCH] modified config, database seed connects to PG, imported sql scripts from previous version --- .DS_Store | Bin 0 -> 6148 bytes README.md | 5 + pom.xml | 20 ++-- src/.DS_Store | Bin 0 -> 6148 bytes src/main/.DS_Store | Bin 0 -> 6148 bytes src/main/java/.DS_Store | Bin 0 -> 6148 bytes src/main/java/com/.DS_Store | Bin 0 -> 6148 bytes src/main/java/com/innocuoussymmetry/.DS_Store | Bin 0 -> 6148 bytes .../com/innocuoussymmetry/recipin/.DS_Store | Bin 0 -> 6148 bytes .../recipin/RecipinApplication.java | 8 ++ .../recipin/controllers/UserController.java | 35 ++++++ .../recipin/models/AppList.java | 3 +- .../recipin/models/DBEntity.java | 14 --- .../recipin/models/Friendship.java | 11 +- .../recipin/models/GroceryList.java | 26 ++--- .../recipin/models/Ingredient.java | 11 +- .../recipin/models/Recipe.java | 14 ++- .../recipin/models/RecipeList.java | 9 +- .../recipin/models/User.java | 15 ++- .../recipin/repositories/.DS_Store | Bin 0 -> 6148 bytes .../recipin/repositories/DBSeed.java | 103 ++++++++++++++++++ .../repositories/DataSourceConfig.java | 22 ++++ .../recipin/repositories/UserRepository.java | 7 ++ .../recipin/repositories/sql/.DS_Store | Bin 0 -> 6148 bytes .../sql/create/createappusers.sql | 12 ++ .../sql/create/createcmp_recipecollection.sql | 5 + .../sql/create/createcmp_recipeingredient.sql | 7 ++ .../sql/create/createcmp_userfriendships.sql | 9 ++ .../create/createcmp_usersubscriptions.sql | 6 + .../sql/create/createcollection.sql | 9 ++ .../repositories/sql/create/createcourse.sql | 7 ++ .../repositories/sql/create/createcuisine.sql | 7 ++ .../sql/create/creategrocerylist.sql | 8 ++ .../sql/create/createingredient.sql | 7 ++ .../repositories/sql/create/createrecipe.sql | 11 ++ .../sql/create/createrecipecomments.sql | 7 ++ .../sql/derived/checksubscription.sql | 3 + .../repositories/sql/derived/friendships.sql | 13 +++ .../repositories/sql/derived/setupbrowser.sql | 5 + .../sql/get/allaccessiblerecipes.sql | 9 ++ .../sql/get/alloriginalrecipes.sql | 2 + .../repositories/sql/get/friendshipbyid.sql | 25 +++++ .../repositories/sql/get/getsubscriptions.sql | 13 +++ src/main/resources/application.properties | 3 +- 44 files changed, 415 insertions(+), 56 deletions(-) create mode 100644 .DS_Store create mode 100644 README.md create mode 100644 src/.DS_Store create mode 100644 src/main/.DS_Store create mode 100644 src/main/java/.DS_Store create mode 100644 src/main/java/com/.DS_Store create mode 100644 src/main/java/com/innocuoussymmetry/.DS_Store create mode 100644 src/main/java/com/innocuoussymmetry/recipin/.DS_Store create mode 100644 src/main/java/com/innocuoussymmetry/recipin/controllers/UserController.java delete mode 100644 src/main/java/com/innocuoussymmetry/recipin/models/DBEntity.java create mode 100644 src/main/java/com/innocuoussymmetry/recipin/repositories/.DS_Store create mode 100644 src/main/java/com/innocuoussymmetry/recipin/repositories/DBSeed.java create mode 100644 src/main/java/com/innocuoussymmetry/recipin/repositories/DataSourceConfig.java create mode 100644 src/main/java/com/innocuoussymmetry/recipin/repositories/UserRepository.java create mode 100644 src/main/java/com/innocuoussymmetry/recipin/repositories/sql/.DS_Store create mode 100644 src/main/java/com/innocuoussymmetry/recipin/repositories/sql/create/createappusers.sql create mode 100644 src/main/java/com/innocuoussymmetry/recipin/repositories/sql/create/createcmp_recipecollection.sql create mode 100644 src/main/java/com/innocuoussymmetry/recipin/repositories/sql/create/createcmp_recipeingredient.sql create mode 100644 src/main/java/com/innocuoussymmetry/recipin/repositories/sql/create/createcmp_userfriendships.sql create mode 100644 src/main/java/com/innocuoussymmetry/recipin/repositories/sql/create/createcmp_usersubscriptions.sql create mode 100644 src/main/java/com/innocuoussymmetry/recipin/repositories/sql/create/createcollection.sql create mode 100644 src/main/java/com/innocuoussymmetry/recipin/repositories/sql/create/createcourse.sql create mode 100644 src/main/java/com/innocuoussymmetry/recipin/repositories/sql/create/createcuisine.sql create mode 100644 src/main/java/com/innocuoussymmetry/recipin/repositories/sql/create/creategrocerylist.sql create mode 100644 src/main/java/com/innocuoussymmetry/recipin/repositories/sql/create/createingredient.sql create mode 100644 src/main/java/com/innocuoussymmetry/recipin/repositories/sql/create/createrecipe.sql create mode 100644 src/main/java/com/innocuoussymmetry/recipin/repositories/sql/create/createrecipecomments.sql create mode 100644 src/main/java/com/innocuoussymmetry/recipin/repositories/sql/derived/checksubscription.sql create mode 100644 src/main/java/com/innocuoussymmetry/recipin/repositories/sql/derived/friendships.sql create mode 100644 src/main/java/com/innocuoussymmetry/recipin/repositories/sql/derived/setupbrowser.sql create mode 100644 src/main/java/com/innocuoussymmetry/recipin/repositories/sql/get/allaccessiblerecipes.sql create mode 100644 src/main/java/com/innocuoussymmetry/recipin/repositories/sql/get/alloriginalrecipes.sql create mode 100644 src/main/java/com/innocuoussymmetry/recipin/repositories/sql/get/friendshipbyid.sql create mode 100644 src/main/java/com/innocuoussymmetry/recipin/repositories/sql/get/getsubscriptions.sql diff --git a/.DS_Store b/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..1bf784309d3da2fae794db1cef4c3f7747f709ad GIT binary patch literal 6148 zcmeHK%}T>S5Z<-bZYe?z3OxqA7L2We;w8lT0!H+pQWH}&7_%iw&7l->))(?gd>&_Z zH()Vm5jz9B-~8@oKgj+t#<(|+4j8i-V*(l?N2Ni~-5A<1$%q`s$Y)_9L$E%=nTh>% zz;AD{oMr4GEWdw$66b~EeDaM}dvmKJI-)1;{3luZMNrIhFUW4tx|A{rYdr|B;%Pat zcFts41aUgeR6!g~A?5ZuP9s@*a-K%Hs`Yh1bVYY!^%slbku$JI&S*KX7bio|509PY zvMYA?_D?S+&&f+F-!z>Z*jBP_u!eU~%xYf!EKOwk2%b8-&LSiRhyh}N7+7xx%()rDf#o){no8W_O+!G?zD8mu&`tphr|K4ZL%hypskB@k_cuE9zpL_oMM1=OY7JTbT~ z2fuCdT!WQHUCy|g8OAX)*N+#jW(U8m(iwL(QcnyJ1FHX7FetTf^%=vU={ ObP-U5P)7{>0s~(ltVwwQ literal 0 HcmV?d00001 diff --git a/README.md b/README.md new file mode 100644 index 0000000..bbc3ef0 --- /dev/null +++ b/README.md @@ -0,0 +1,5 @@ +# Recipin API + +This is my reworked REST API for my built-from-scratch recipe-sharing platform. + +I am rebuilding this API using Spring Boot connected to a PostgreSQL database. \ No newline at end of file diff --git a/pom.xml b/pom.xml index ac0a370..0b020a5 100644 --- a/pom.xml +++ b/pom.xml @@ -17,28 +17,30 @@ 17 + + org.springframework.boot + spring-boot-starter-data-jpa + org.springframework.boot spring-boot-starter-web + + org.hibernate.javax.persistence + hibernate-jpa-2.1-api + 1.0.0.Final + - org.springframework.boot - spring-boot-devtools + org.postgresql + postgresql runtime - true org.springframework.boot spring-boot-starter-test test - - javax.persistence - persistence-api - 1.0.2 - provided - diff --git a/src/.DS_Store b/src/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..3b57a97a255534f0c49537f6726ac0550ef8d2b4 GIT binary patch literal 6148 zcmeHK%}T>S5Z<-XrW7Fug&qT53&vJK@e*Qv0V8@)sR=0>Om|C@nnNk%tS{t~_&m<+ zZp31}ir5+0{pNQ!`$6`HF~);ga=@6w7_*@va#U6bx>traOfn+JG2$|x#F>o2elxMZ z4*2aB8?%U|Onm+Rc#@@g;d$?TqhW1sHSMO|w(r76S%yVa%<>?b-k^0UWfs?Z6knyI za_H=wNl`?p7)@0{nv5Xj_Bs`bECV?cNv>)`9k5$=Yv^?5^WKryb^Bg_(RJr1JkNDL4I!~ij{z6_W% z!EUcF1+;QvfEf6J0o)&4Xo$YSN~793pu_7k#w|n?(D5yS=o<75RvIA!!gVR2F6HKl z!F4(KU6bb2haa=_+?f;@|R1< zA_jS5Z-O0O({YS3Oz1(Ef`w`#Y?F51&ruHr6#0kG-gYaHiuHkSzpK}@p+ut z-H63{6|pn0`_1oe_JiyXV~qEw(LQ4iW6Xwz$Wd7#=w2DBnPfzcV}wOE4ig!I{bpi+ z9q`*N_Q(P@W5L(&564NI<*xhAYjta5vtc*vmVN6#$imNqe46!x$u(LRQYK-g2jOKr zDu&MXsZ8@APDc|}5Jw|Oxw(qdNEUrLO`}ZJ`Z{1Y?dH&F&*$Akw%&J*E91cX(H2m@KyO$9w9M63=jjv!1^*^ z&IG%)z7){Pi2-8Z2L^C|5YP}kgQZ5bbwG#LXN+5jD4^q80#O+B43-)p0>X7Epf2U+ ziNSR__=U;y43-*oIpb<(7{|<9Jzlt)9sEM2Gwx}mo){nomKmsP)4}uq41SrFkNo8l zvWNj<;GZ$Tt${!2!=lXD`fYi5)(U8M&`>b1LS5Z-O8O({YS3Oz1(Ef`w`#Y>3w1&ruHr6#6mFwK@GHHT8jSzpK}@p+ut z-GIfMMeGdhe)GGV{UH0p7~|d|I%Lddj9JhSIVv@R?%GhpBqMShBb$YZ48i&cXD0U7 z0l&S;9+_m*u=xJ{Nu1@5^T`{{*4B30YFl0F-hY;bp9lFO^Md&;T31pgVWkJ*bv!A? z_U^e%^B_(qb5#&W6G*wciPK0Ho?N6+rfPj1usT*}Z1Y{t)3Vl25K0<{XsxObPbjo)z$$WUY{}ELPP-_-x7$zplh(y2oVsjO96E$H%|<% z%fT;9o@=nwsLL5wGs8G$=IZgn)$HIGDxGmxBlW}pF|f`+Q=2xP{}=Gf)IRdpOUNPy zh=G5`0B?=_kq3)1XX}sU;aMx7JwQXjyb=`<(AO>jVBkK|Q$ZaUs6(D>u+)g7pkI{( P(nUZKLLD*i3k-Y#igHP3 literal 0 HcmV?d00001 diff --git a/src/main/java/com/.DS_Store b/src/main/java/com/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..a6801c1e0f2a51371b426c8f8b48055c4c328add GIT binary patch literal 6148 zcmeHKQA@)x5WZ~FbqryG!X6904y>Dk;!BzH4_MI$mD$>%#jY7^=NMzqXZ=I|5`T|( zNhXdd_#lGgE?mA#a+i=VCD#CeXph1@fEoZ;sDylP*cY^biU)#~qA7qNZ3_ z{sRMacAF4EfGl1m946E<2}f+ zm-*Q!ZTrJ3YMo0N2XosGE~4JJTiZI3N#;jMZ>R#Iu!k*ioZPZ&-67tJ6euSW* iQZf2cDz2j{!G4xg;Z%44 literal 0 HcmV?d00001 diff --git a/src/main/java/com/innocuoussymmetry/.DS_Store b/src/main/java/com/innocuoussymmetry/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..f182cdac90b7c3a6dbabf6ae1ae7ac2283a43958 GIT binary patch literal 6148 zcmeHK%}T>S5Z<-brW7Fug&qT53&vJK@e*Qv0V8@)sfh_1jMYb>kIiLK94iI z8?c&#ClNaXn{Rf0c6UC={xHV4I}7(1GZ|wBG(?U{gP^(5wWfm+xg2B4VwMJFJ`IwF zf&QWi*WO_ni`X5k{nPqI0G_vCn#6fw+wXj>)n4D|7#*W$+;|V7^a{V2<*uJyVeeds zB&c;ixQL^2Vs4#?wD99J%49+uMi6p+8K;2@sd!OTa$sG`rp6jxLHSbEvzMibNbkW@XVuY!!~iis z3=jjW#ehBsjNWRMP1O(Jc1wmc?kJ=$F+dC~Gtg396VLxs z_+=U&`O7KPBL;|pf5rfBkG-)AMd`EkTX}faTF`Exp%h7xC|*jPU%-kURAx(y7Hc!w&K<^}XZ=Ec5(E*=EOd+_p0llL0(Pe~fa822X80b>?p%m7C=OelUZ>_=a+hHgP}`Hq4mtYm`a zK(ha!0IuB@tXIs&ux{ViFJ?tJEyiIgLWp?}$7xcOj`P7A&DO?d+h`jd3i1b7XaA zv;L9Ovj@&#-m_;XeW)KEJM+0|?C$NKUW}g7=S;jRkvV*S(zZ2gyg_B<{9gP#OGWko zF?D{OMl@9H;j&n6DMU~FD92wrDN9Ov5!sY1DZp(1ST}3KM0a9R5 zfu?%2@cchteg9ufq9;;-6j&<-cx&hnJ(!X{TbCw>XRQr>4~~X$mEu getAllUsers() { + return userRepository.findAll(); + } + + @GetMapping("/{id}") + public User getUserById(Integer id) { + Optional maybe = userRepository.findById(id); + if (maybe.isEmpty()) { + return null; + } + + return maybe.get(); + } +} diff --git a/src/main/java/com/innocuoussymmetry/recipin/models/AppList.java b/src/main/java/com/innocuoussymmetry/recipin/models/AppList.java index a18f6ef..1b4f061 100644 --- a/src/main/java/com/innocuoussymmetry/recipin/models/AppList.java +++ b/src/main/java/com/innocuoussymmetry/recipin/models/AppList.java @@ -1,6 +1,7 @@ package com.innocuoussymmetry.recipin.models; -abstract class AppList extends DBEntity { +abstract class AppList { + private Integer id; private String name; private Integer ownerId; diff --git a/src/main/java/com/innocuoussymmetry/recipin/models/DBEntity.java b/src/main/java/com/innocuoussymmetry/recipin/models/DBEntity.java deleted file mode 100644 index 9de408e..0000000 --- a/src/main/java/com/innocuoussymmetry/recipin/models/DBEntity.java +++ /dev/null @@ -1,14 +0,0 @@ -package com.innocuoussymmetry.recipin.models; - -import javax.persistence.Column; -import javax.persistence.Entity; -import javax.persistence.GeneratedValue; -import javax.persistence.Id; - -@Entity -abstract class DBEntity { - @Id - @Column(name="id") - @GeneratedValue - private Integer id; -} diff --git a/src/main/java/com/innocuoussymmetry/recipin/models/Friendship.java b/src/main/java/com/innocuoussymmetry/recipin/models/Friendship.java index 780d63f..804da46 100644 --- a/src/main/java/com/innocuoussymmetry/recipin/models/Friendship.java +++ b/src/main/java/com/innocuoussymmetry/recipin/models/Friendship.java @@ -1,10 +1,15 @@ package com.innocuoussymmetry.recipin.models; -import javax.persistence.Column; -import javax.persistence.Table; +import jakarta.persistence.*; +@Entity @Table(name="friendships") -public class Friendship extends DBEntity { +public class Friendship { + @Id + @Column(name="name") + @GeneratedValue(strategy = GenerationType.IDENTITY) + private Integer id; + @Column(name="senderid") private Integer senderId; @Column(name="targetid") diff --git a/src/main/java/com/innocuoussymmetry/recipin/models/GroceryList.java b/src/main/java/com/innocuoussymmetry/recipin/models/GroceryList.java index d444b44..4007dcc 100644 --- a/src/main/java/com/innocuoussymmetry/recipin/models/GroceryList.java +++ b/src/main/java/com/innocuoussymmetry/recipin/models/GroceryList.java @@ -1,28 +1,18 @@ package com.innocuoussymmetry.recipin.models; -import javax.persistence.Column; -import javax.persistence.Table; +import jakarta.persistence.*; +@Entity @Table(name="grocerylist") class GroceryList extends AppList { + @Id + @Column(name="id") + @GeneratedValue(strategy = GenerationType.IDENTITY) + private Integer id; + @Column(name="name") private String name; + @Column(name="ownerid") private Integer ownerId; - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - public Integer getOwnerId() { - return ownerId; - } - - public void setOwnerId(Integer ownerId) { - this.ownerId = ownerId; - } } \ No newline at end of file diff --git a/src/main/java/com/innocuoussymmetry/recipin/models/Ingredient.java b/src/main/java/com/innocuoussymmetry/recipin/models/Ingredient.java index 8621c93..10d376a 100644 --- a/src/main/java/com/innocuoussymmetry/recipin/models/Ingredient.java +++ b/src/main/java/com/innocuoussymmetry/recipin/models/Ingredient.java @@ -1,10 +1,15 @@ package com.innocuoussymmetry.recipin.models; -import javax.persistence.Column; -import javax.persistence.Table; +import jakarta.persistence.*; +@Entity @Table(name="ingredient") -public class Ingredient extends DBEntity { +public class Ingredient { + @Id + @Column(name="id") + @GeneratedValue(strategy = GenerationType.IDENTITY) + private Integer id; + @Column(name="name") private String name; @Column(name="description") diff --git a/src/main/java/com/innocuoussymmetry/recipin/models/Recipe.java b/src/main/java/com/innocuoussymmetry/recipin/models/Recipe.java index c599918..cc3078e 100644 --- a/src/main/java/com/innocuoussymmetry/recipin/models/Recipe.java +++ b/src/main/java/com/innocuoussymmetry/recipin/models/Recipe.java @@ -1,18 +1,26 @@ package com.innocuoussymmetry.recipin.models; -import javax.persistence.Column; -import javax.persistence.Table; +import jakarta.persistence.*; import java.util.List; @Table(name="recipe") -public class Recipe extends DBEntity { +public class Recipe { + @Id + @Column(name="id") + @GeneratedValue(strategy = GenerationType.IDENTITY) + private Integer id; + @Column(name="name") private String name; + @Column(name="preptime") private String prepTime; + @Column(name="authoruserid") private Integer authorUserId; + @Column(name="description") private String description; + @Column(name="ingredientnames") private List ingredientNames; diff --git a/src/main/java/com/innocuoussymmetry/recipin/models/RecipeList.java b/src/main/java/com/innocuoussymmetry/recipin/models/RecipeList.java index 725e3bc..82d27d4 100644 --- a/src/main/java/com/innocuoussymmetry/recipin/models/RecipeList.java +++ b/src/main/java/com/innocuoussymmetry/recipin/models/RecipeList.java @@ -1,10 +1,15 @@ package com.innocuoussymmetry.recipin.models; -import javax.persistence.Column; -import javax.persistence.Table; +import jakarta.persistence.*; +@Entity @Table(name="recipelist") public class RecipeList extends AppList { + @Id + @Column(name="id") + @GeneratedValue(strategy = GenerationType.IDENTITY) + private Integer id; + @Column(name="ismainlist") private boolean isMainRecipeList; diff --git a/src/main/java/com/innocuoussymmetry/recipin/models/User.java b/src/main/java/com/innocuoussymmetry/recipin/models/User.java index 500fc79..dd1d5eb 100644 --- a/src/main/java/com/innocuoussymmetry/recipin/models/User.java +++ b/src/main/java/com/innocuoussymmetry/recipin/models/User.java @@ -1,19 +1,30 @@ package com.innocuoussymmetry.recipin.models; -import javax.persistence.*; +import jakarta.persistence.*; +@Entity @Table(name="users") -public class User extends DBEntity { +public class User { + @Id + @Column(name="id") + @GeneratedValue(strategy = GenerationType.IDENTITY) + private Integer id; + @Column(name="firstname") private String firstName; + @Column(name="lastname") private String lastName; + @Column(name="handle") private String handle; + @Column(name="email") private String email; + @Column(name="isadmin") private boolean isAdmin; + @Column(name="password") private String password; diff --git a/src/main/java/com/innocuoussymmetry/recipin/repositories/.DS_Store b/src/main/java/com/innocuoussymmetry/recipin/repositories/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..e635c28d8a8087ab754576e4c141810997adf081 GIT binary patch literal 6148 zcmeHK%}T>S5Z<-brW7Fug&r5Y7EDtQikA@U3mDOZN=-=7V9eGgHHT8jSzpK}@p+ut z-GIfMMeGdhe)GGV{UH0p7~}pT9x`S##w=)v9F+z^cVlSFBqMShBcDa7jKKPcW+wL6 z0l&S)a`wW~sQmu@X_6O?^U1eb?d_e8)vlLOmIb`93>4vJaLYcS7JnLU7~&aSfvi2-7O7$62Vn*nn! zSiQ}rfmTlp5CaVi;Qk<>A$kTYjcV(F4zJG`ZzH0Bj&BJ>VbC*JX@m#}*QJ2El$$38 z*X7_BCeJfiY1HM6tC?XOGjsiT;c9m93zg2er;&PMfEZY3pruV4&;N7yWf~v(>m_6n z1H`~TV}Q5E!PtjInX~oB^6;z`(C(q3U|xj^28qfQ3)CUcGgxWFQP8i- Q0qG*32%(M`_yq>O0EsP0i2wiq literal 0 HcmV?d00001 diff --git a/src/main/java/com/innocuoussymmetry/recipin/repositories/DBSeed.java b/src/main/java/com/innocuoussymmetry/recipin/repositories/DBSeed.java new file mode 100644 index 0000000..628ab6e --- /dev/null +++ b/src/main/java/com/innocuoussymmetry/recipin/repositories/DBSeed.java @@ -0,0 +1,103 @@ +package com.innocuoussymmetry.recipin.repositories; + +import org.hibernate.cfg.Environment; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.context.annotation.Configuration; +import org.springframework.context.annotation.PropertySource; +import org.springframework.stereotype.Component; + +import java.io.BufferedReader; +import java.io.File; +import java.io.FileReader; +import java.sql.*; +import java.awt.EventQueue; +import java.util.stream.Stream; + +@Configuration +@PropertySource("classpath:/resources/app.properties") +public class DBSeed { + private String constring; + private Connection conn; + + public DBSeed(String constring) { + this.constring = constring; + } + + + private void connect() { + try { + this.conn = DriverManager.getConnection(constring); + } catch (SQLException e) { + System.out.println(e); + } + } + + private void disconnect() { + try { + if (this.conn.isClosed()) { + return; + } + + this.conn.close(); + } catch (SQLException e) { + System.out.println(e); + } + } + + private void seed() { + this.connect(); + + try { + Statement statement = conn.createStatement(); + + String[] orderedPaths = { + "src/main/java/com/innocuoussymmetry/recipin/repositories/sql/create/createappusers.sql", + "src/main/java/com/innocuoussymmetry/recipin/repositories/sql/create/createingredient.sql", + "src/main/java/com/innocuoussymmetry/recipin/repositories/sql/create/createcollection.sql", + "src/main/java/com/innocuoussymmetry/recipin/repositories/sql/create/creategrocerylist.sql", + "src/main/java/com/innocuoussymmetry/recipin/repositories/sql/create/createcuisine.sql", + "src/main/java/com/innocuoussymmetry/recipin/repositories/sql/create/createcourse.sql", + "src/main/java/com/innocuoussymmetry/recipin/repositories/sql/create/createrecipe.sql", + "src/main/java/com/innocuoussymmetry/recipin/repositories/sql/create/createrecipecomments.sql", + "src/main/java/com/innocuoussymmetry/recipin/repositories/sql/create/createcmp_recipeingredient.sql", + "src/main/java/com/innocuoussymmetry/recipin/repositories/sql/create/createcmp_recipecollection.sql", + "src/main/java/com/innocuoussymmetry/recipin/repositories/sql/create/createcmp_usersubscriptions.sql", + "src/main/java/com/innocuoussymmetry/recipin/repositories/sql/create/createcmp_userfriendships.sql", + }; + File[] pathObjects = new File[orderedPaths.length]; + + int i = 0; + for (String path : orderedPaths) { + pathObjects[i] = new File(path); + i++; + } + + i = 0; + while (i < orderedPaths.length) { + String statementBody = ""; + + FileReader fr = new FileReader(pathObjects[i]); + BufferedReader br = new BufferedReader(fr); + var lines = br.lines().toArray(); + + for (var line : lines) { + statementBody += line + " "; + } + + statement.execute(statementBody); + i++; + } + + statement.close(); + } catch (Exception e) { + System.out.println(e); + } + + this.disconnect(); + } + + public static void main(String[] args) { + new DBSeed("jdbc:postgresql://localhost:5432/recipinV2?username=postgres&password=postgres").seed(); + } +} diff --git a/src/main/java/com/innocuoussymmetry/recipin/repositories/DataSourceConfig.java b/src/main/java/com/innocuoussymmetry/recipin/repositories/DataSourceConfig.java new file mode 100644 index 0000000..64f2cc9 --- /dev/null +++ b/src/main/java/com/innocuoussymmetry/recipin/repositories/DataSourceConfig.java @@ -0,0 +1,22 @@ +package com.innocuoussymmetry.recipin.repositories; + +import org.springframework.boot.jdbc.DataSourceBuilder; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; + +import javax.sql.*; + +@Configuration +public class DataSourceConfig { + + @Bean + public DataSource getDataSource() { + DataSourceBuilder dataSourceBuilder = DataSourceBuilder.create(); + dataSourceBuilder.driverClassName("org.postgresql.Driver"); + dataSourceBuilder.url("jdbc:postgresql://localhost:5432/recipinV2?username=postgres&password=postgres"); + dataSourceBuilder.username("postgres"); + dataSourceBuilder.password("postgres"); + return dataSourceBuilder.build(); + } + +} diff --git a/src/main/java/com/innocuoussymmetry/recipin/repositories/UserRepository.java b/src/main/java/com/innocuoussymmetry/recipin/repositories/UserRepository.java new file mode 100644 index 0000000..5c99bd5 --- /dev/null +++ b/src/main/java/com/innocuoussymmetry/recipin/repositories/UserRepository.java @@ -0,0 +1,7 @@ +package com.innocuoussymmetry.recipin.repositories; + +import com.innocuoussymmetry.recipin.models.*; +import org.springframework.data.repository.CrudRepository; + +public interface UserRepository extends CrudRepository { +} diff --git a/src/main/java/com/innocuoussymmetry/recipin/repositories/sql/.DS_Store b/src/main/java/com/innocuoussymmetry/recipin/repositories/sql/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..06c39e18770c3636984f4fe9621b79f483515f7c GIT binary patch literal 6148 zcmeHK%}T>S5Z-NTn^J@v6nb3nS}<)rC|*LWFJMFuDmAe|gE3p$)Er77XMG``#OHBl zcXJ2^youNu*!^bbXE*af_J=XXz13{Un9UfopdoTpY6Q)-u7(Ll