├── .metadata ├── .lock ├── defender.check ├── .plugins │ ├── org.eclipse.core.runtime │ │ └── .settings │ │ │ ├── Docker.prefs │ │ │ ├── Cloud Foundry.prefs │ │ │ ├── org.eclipse.core.resources.prefs │ │ │ ├── com.genuitec.eclipse.monitor.prefs │ │ │ ├── org.eclipse.urischeme.prefs │ │ │ ├── com.github.eclipsecolortheme.prefs │ │ │ ├── org.eclipse.epp.mpc.ui.prefs │ │ │ ├── org.eclipse.jsch.core.prefs │ │ │ ├── org.eclipse.ui.ide.prefs │ │ │ ├── org.springsource.ide.eclipse.commons.ui.prefs │ │ │ ├── com.genuitec.eclipse.codetogether.ui.prefs │ │ │ ├── org.springframework.ide.eclipse.imports.prefs │ │ │ ├── org.eclipse.e4.ui.css.swt.theme.prefs │ │ │ ├── org.eclipse.wst.sse.ui.prefs │ │ │ ├── jsonedit-core.prefs │ │ │ ├── winterwell.markdown.prefs │ │ │ ├── org.sourceforge.jsonedit-core.prefs │ │ │ ├── org.eclipse.egit.core.prefs │ │ │ ├── org.eclipse.team.cvs.ui.prefs │ │ │ ├── jp.gr.java_conf.ussiy.app.propedit.prefs │ │ │ ├── org.eclipse.cdt.dsf.ui.prefs │ │ │ ├── org.eclipse.ui.editors.prefs │ │ │ ├── org.chromium.debug.ui.prefs │ │ │ ├── org.nodeclipse.enide.editors.gradle.prefs │ │ │ ├── org.nodeclipse.enide.editors.jade.prefs │ │ │ ├── org.apache.ivyde.eclipse.prefs │ │ │ ├── org.eclipse.debug.ui.prefs │ │ │ ├── com.spket.xml.prefs │ │ │ ├── org.eclipse.jdt.ui.prefs │ │ │ ├── org.eclipse.wst.xsl.ui.prefs │ │ │ ├── com.genuitec.eclipse.sqlexplorer.prefs │ │ │ ├── org.eclipse.angularjs.ui.prefs │ │ │ ├── com.genuitec.eclipse.theming.ui.prefs │ │ │ ├── org.jboss.ide.eclipse.freemarker.prefs │ │ │ ├── de.walware.statet.base.ui.prefs │ │ │ ├── org.eclipse.datatools.sqltools.sqleditor.prefs │ │ │ ├── org.eclipse.ui.workbench.prefs │ │ │ ├── org.eclipse.wst.dtd.ui.prefs │ │ │ ├── org.eclipse.cdt.make.ui.prefs │ │ │ ├── net.sourceforge.texlipse.prefs │ │ │ ├── org.eclipse.mylyn.wikitext.ui.prefs │ │ │ ├── com.spket.js.prefs │ │ │ ├── net.sf.eclipsefp.haskell.ui.prefs │ │ │ ├── org.eclipse.jst.jsp.ui.prefs │ │ │ ├── com.palantir.typescript.prefs │ │ │ ├── org.dadacoalition.yedit.prefs │ │ │ ├── com.googlecode.goclipse.ui.prefs │ │ │ ├── org.eclipse.ant.ui.prefs │ │ │ ├── org.eclipse.wst.html.ui.prefs │ │ │ ├── org.python.pydev.prefs │ │ │ ├── eclihx.ui.prefs │ │ │ ├── com.wolfram.eclipse.MEET.prefs │ │ │ ├── com.dubture.twig.ui.prefs │ │ │ ├── com.puppetlabs.geppetto.module.dsl.Module.prefs │ │ │ ├── org.eclipse.e4.CSS.prefs │ │ │ ├── org.cfeclipse.cfml.prefs │ │ │ ├── org.sweetlemonade.eclipse.json.prefs │ │ │ ├── org.erlide.ui.prefs │ │ │ ├── org.eclipse.wst.css.ui.prefs │ │ │ ├── com.adobe.flexide.mxml.core.prefs │ │ │ ├── com.github.rustdt.ide.ui.prefs │ │ │ ├── org.eclipse.xtend.core.Xtend.prefs │ │ │ ├── net.vtst.ow.eclipse.less.Less.prefs │ │ │ ├── org.scala-ide.play2.prefs │ │ │ ├── com.adobe.flexide.css.core.prefs │ │ │ ├── org.epic.perleditor.prefs │ │ │ ├── com.adobe.flexide.as.core.prefs │ │ │ ├── org.eclipse.wst.jsdt.ui.prefs │ │ │ ├── com.axmor.eclipse.typescript.editor.prefs │ │ │ ├── com.puppetlabs.geppetto.pp.dsl.PP.prefs │ │ │ ├── org.cloudsmith.geppetto.pp.dsl.PP.prefs │ │ │ ├── org.eclipse.dltk.tcl.ui.prefs │ │ │ ├── com.google.eclipse.protobuf.Protobuf.prefs │ │ │ └── org.scala-ide.sdt.core.prefs │ ├── com.genuitec.eclipse.ui.common.platform │ │ ├── colors-org.eclipse.pde.spy.css-1231266899.css │ │ ├── colors-org.eclipse.buildship.ui-1231266899.css │ │ ├── splash-fix.css │ │ ├── colors-org.eclipse.epp.mpc.ui.css--1027399938.css │ │ ├── colors-org.eclipse.jdt.ui-326703266.css │ │ └── colors-org.eclipse.egit.ui-1849137576.css │ ├── org.eclipse.core.resources │ │ ├── .root │ │ │ └── .indexes │ │ │ │ └── properties.index │ │ ├── .safetable │ │ │ └── org.eclipse.core.resources │ │ └── .projects │ │ │ └── .org.eclipse.egit.core.cmp │ │ │ └── .location │ ├── org.eclipse.egit.core │ │ └── .org.eclipse.egit.core.cmp │ │ │ └── .project │ ├── org.eclipse.ui.workbench │ │ └── workingsets.xml │ ├── com.genuitec.eclipse.devstyle │ │ └── recent.json │ └── org.eclipse.m2e.logback.configuration │ │ └── logback.1.16.3.20211002-1029.xml └── version.ini ├── .gitignore ├── .gitattributes ├── ER Diagram └── E-Commerce API ER Diagram.jpeg ├── E-Commerce-Backend ├── src │ ├── main │ │ ├── java │ │ │ └── com │ │ │ │ └── masai │ │ │ │ ├── models │ │ │ │ ├── OrderStatusValues.java │ │ │ │ ├── ProductStatus.java │ │ │ │ ├── CategoryEnum.java │ │ │ │ ├── SessionDTO.java │ │ │ │ ├── ProductDTO.java │ │ │ │ ├── CartDTO.java │ │ │ │ ├── OrderDTO.java │ │ │ │ ├── SellerDTO.java │ │ │ │ ├── StateEnum.java │ │ │ │ ├── CreditCard.java │ │ │ │ ├── CustomerDTO.java │ │ │ │ ├── UserSession.java │ │ │ │ ├── CartItem.java │ │ │ │ ├── Cart.java │ │ │ │ ├── CustomerUpdateDTO.java │ │ │ │ ├── Seller.java │ │ │ │ ├── Order.java │ │ │ │ ├── Address.java │ │ │ │ ├── Product.java │ │ │ │ └── Customer.java │ │ │ │ ├── exception │ │ │ │ ├── OrderException.java │ │ │ │ ├── CustomerException.java │ │ │ │ ├── SellerException.java │ │ │ │ ├── LoginException.java │ │ │ │ ├── CartItemNotFound.java │ │ │ │ ├── SellerNotFoundException.java │ │ │ │ ├── CustomerNotFoundException.java │ │ │ │ ├── ErrorDetails.java │ │ │ │ ├── ProductNotFoundException.java │ │ │ │ ├── CategoryNotFoundException.java │ │ │ │ └── GlobalExceptionHandler.java │ │ │ │ ├── service │ │ │ │ ├── CartItemService.java │ │ │ │ ├── LoginLogoutService.java │ │ │ │ ├── CartService.java │ │ │ │ ├── ProductService.java │ │ │ │ ├── SellerService.java │ │ │ │ ├── OrderService.java │ │ │ │ ├── CustomerService.java │ │ │ │ ├── CartItemServiceImpl.java │ │ │ │ ├── ProductServiceImpl.java │ │ │ │ ├── SellerServiceImpl.java │ │ │ │ ├── CartServiceImpl.java │ │ │ │ └── LoginLogoutServiceImpl.java │ │ │ │ ├── repository │ │ │ │ ├── CartItemDao.java │ │ │ │ ├── AddressDao.java │ │ │ │ ├── SellerDao.java │ │ │ │ ├── CartDao.java │ │ │ │ ├── SessionDao.java │ │ │ │ ├── CustomerDao.java │ │ │ │ ├── ProductDao.java │ │ │ │ └── OrderDao.java │ │ │ │ ├── controller │ │ │ │ ├── ProductNotFound.java │ │ │ │ ├── CartController.java │ │ │ │ ├── LoginController.java │ │ │ │ ├── OrderController.java │ │ │ │ ├── SellerController.java │ │ │ │ ├── CustomerController.java │ │ │ │ └── ProductController.java │ │ │ │ └── ECommerceBackendApplication.java │ │ └── resources │ │ │ └── application.properties │ └── test │ │ └── java │ │ └── com │ │ └── masai │ │ └── ECommerceBackendApplicationTests.java ├── .mvn │ └── wrapper │ │ ├── maven-wrapper.jar │ │ └── maven-wrapper.properties ├── bin │ ├── .mvn │ │ └── wrapper │ │ │ ├── maven-wrapper.jar │ │ │ └── maven-wrapper.properties │ ├── .gitignore │ ├── src │ │ └── main │ │ │ └── resources │ │ │ └── application.properties │ └── pom.xml ├── .gitignore └── pom.xml └── README.md /.metadata/.lock: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | /.metadata/ 2 | -------------------------------------------------------------------------------- /.metadata/defender.check: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /.metadata/.plugins/org.eclipse.core.runtime/.settings/Docker.prefs: -------------------------------------------------------------------------------- 1 | eclipse.preferences.version=1 2 | runTargets-v2= 3 | -------------------------------------------------------------------------------- /.metadata/.plugins/org.eclipse.core.runtime/.settings/Cloud Foundry.prefs: -------------------------------------------------------------------------------- 1 | eclipse.preferences.version=1 2 | runTargets-v2= 3 | -------------------------------------------------------------------------------- /.gitattributes: -------------------------------------------------------------------------------- 1 | # Auto detect text files and perform LF normalization 2 | * text=auto 3 | 4 | *.css linguist-detectable=false 5 | -------------------------------------------------------------------------------- /.metadata/version.ini: -------------------------------------------------------------------------------- 1 | #Fri Jun 03 23:49:08 IST 2022 2 | org.eclipse.core.runtime=2 3 | org.eclipse.platform=4.23.0.v20220308-0310 4 | -------------------------------------------------------------------------------- /.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.core.resources.prefs: -------------------------------------------------------------------------------- 1 | eclipse.preferences.version=1 2 | version=1 3 | -------------------------------------------------------------------------------- /.metadata/.plugins/com.genuitec.eclipse.ui.common.platform/colors-org.eclipse.pde.spy.css-1231266899.css: -------------------------------------------------------------------------------- 1 | #css-spy { 2 | background-color: red; 3 | } 4 | -------------------------------------------------------------------------------- /.metadata/.plugins/org.eclipse.core.runtime/.settings/com.genuitec.eclipse.monitor.prefs: -------------------------------------------------------------------------------- 1 | eclipse.preferences.version=1 2 | last.upload.time=1654279370213 3 | -------------------------------------------------------------------------------- /.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.urischeme.prefs: -------------------------------------------------------------------------------- 1 | eclipse.preferences.version=1 2 | processedSchemes=,eclipse+mpc,eclipse+command 3 | -------------------------------------------------------------------------------- /ER Diagram/E-Commerce API ER Diagram.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/abinashpanigrahi/ECommerce-SpringBoot-Backend-Project/HEAD/ER Diagram/E-Commerce API ER Diagram.jpeg -------------------------------------------------------------------------------- /.metadata/.plugins/org.eclipse.core.runtime/.settings/com.github.eclipsecolortheme.prefs: -------------------------------------------------------------------------------- 1 | colorTheme=Darkest Dark 2 | colorThemeExplicit=true 3 | eclipse.preferences.version=1 4 | -------------------------------------------------------------------------------- /.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.epp.mpc.ui.prefs: -------------------------------------------------------------------------------- 1 | eclipse.preferences.version=1 2 | native-borders=false 3 | overriddenByCSS=,native-borders, 4 | -------------------------------------------------------------------------------- /.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.jsch.core.prefs: -------------------------------------------------------------------------------- 1 | eclipse.preferences.version=1 2 | org.eclipse.jsch.core.hasChangedDefaultWin32SshHome=true 3 | -------------------------------------------------------------------------------- /E-Commerce-Backend/src/main/java/com/masai/models/OrderStatusValues.java: -------------------------------------------------------------------------------- 1 | package com.masai.models; 2 | 3 | public enum OrderStatusValues { 4 | SUCCESS,PENDING,CANCELLED 5 | } 6 | -------------------------------------------------------------------------------- /.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.ui.ide.prefs: -------------------------------------------------------------------------------- 1 | eclipse.preferences.version=1 2 | platformState=1649334145334 3 | quickStart=false 4 | tipsAndTricks=true 5 | -------------------------------------------------------------------------------- /E-Commerce-Backend/.mvn/wrapper/maven-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/abinashpanigrahi/ECommerce-SpringBoot-Backend-Project/HEAD/E-Commerce-Backend/.mvn/wrapper/maven-wrapper.jar -------------------------------------------------------------------------------- /E-Commerce-Backend/src/main/java/com/masai/models/ProductStatus.java: -------------------------------------------------------------------------------- 1 | package com.masai.models; 2 | 3 | public enum ProductStatus { 4 | 5 | AVAILABLE,OUTOFSTOCK 6 | 7 | 8 | } 9 | -------------------------------------------------------------------------------- /.metadata/.plugins/org.eclipse.core.runtime/.settings/org.springsource.ide.eclipse.commons.ui.prefs: -------------------------------------------------------------------------------- 1 | eclipse.preferences.version=1 2 | egit.pref.fixed.core_autoIgnoreDerivedResources=true 3 | -------------------------------------------------------------------------------- /E-Commerce-Backend/bin/.mvn/wrapper/maven-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/abinashpanigrahi/ECommerce-SpringBoot-Backend-Project/HEAD/E-Commerce-Backend/bin/.mvn/wrapper/maven-wrapper.jar -------------------------------------------------------------------------------- /.metadata/.plugins/org.eclipse.core.runtime/.settings/com.genuitec.eclipse.codetogether.ui.prefs: -------------------------------------------------------------------------------- 1 | codetogether.main.view.displayed=true 2 | eclipse.preferences.version=1 3 | uuid=YKlErsKEQzdgIDWTR0Oqmy 4 | -------------------------------------------------------------------------------- /E-Commerce-Backend/src/main/java/com/masai/models/CategoryEnum.java: -------------------------------------------------------------------------------- 1 | package com.masai.models; 2 | 3 | 4 | public enum CategoryEnum { 5 | 6 | BOOKS,FASHION,ELECTRONICS,FURNITURE,GROCERIES 7 | 8 | } 9 | -------------------------------------------------------------------------------- /.metadata/.plugins/org.eclipse.core.runtime/.settings/org.springframework.ide.eclipse.imports.prefs: -------------------------------------------------------------------------------- 1 | eclipse.preferences.version=1 2 | org.springframework.ide.eclipse.imports.importStaticsInstanceScope=true 3 | -------------------------------------------------------------------------------- /.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.e4.ui.css.swt.theme.prefs: -------------------------------------------------------------------------------- 1 | darkestApplied=true 2 | eclipse.preferences.version=1 3 | enableddarkestdark=true 4 | themeid=com.genuitec.eclipse.themes.dark 5 | -------------------------------------------------------------------------------- /.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.wst.sse.ui.prefs: -------------------------------------------------------------------------------- 1 | content_assist_number_of_computers=6 2 | eclipse.preferences.version=1 3 | useAnnotationsPrefPage=true 4 | useQuickDiffPrefPage=true 5 | -------------------------------------------------------------------------------- /.metadata/.plugins/org.eclipse.core.resources/.root/.indexes/properties.index: -------------------------------------------------------------------------------- 1 | /org.eclipse.core.resourcescontentCacheState2contentCacheTimestamp 1649334145334org.eclipse.jdt.corestateVersionNumber37 -------------------------------------------------------------------------------- /.metadata/.plugins/com.genuitec.eclipse.ui.common.platform/colors-org.eclipse.buildship.ui-1231266899.css: -------------------------------------------------------------------------------- 1 | GradleProjectSettingsComposite, GradleDistributionGroup, AdvancedOptionsGroup { 2 | background-color:#49535a; 3 | color:#ebedef; 4 | } 5 | -------------------------------------------------------------------------------- /.metadata/.plugins/org.eclipse.core.resources/.safetable/org.eclipse.core.resources: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/abinashpanigrahi/ECommerce-SpringBoot-Backend-Project/HEAD/.metadata/.plugins/org.eclipse.core.resources/.safetable/org.eclipse.core.resources -------------------------------------------------------------------------------- /.metadata/.plugins/org.eclipse.core.resources/.projects/.org.eclipse.egit.core.cmp/.location: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/abinashpanigrahi/ECommerce-SpringBoot-Backend-Project/HEAD/.metadata/.plugins/org.eclipse.core.resources/.projects/.org.eclipse.egit.core.cmp/.location -------------------------------------------------------------------------------- /.metadata/.plugins/org.eclipse.core.runtime/.settings/jsonedit-core.prefs: -------------------------------------------------------------------------------- 1 | defaultColor=216,216,216 2 | eclipse.preferences.version=1 3 | nullColor=216,216,216 4 | overriddenByCSS=,defaultColor,nullColor,stringColor,valueColor, 5 | stringColor=255,198,0 6 | valueColor=190,214,255 7 | -------------------------------------------------------------------------------- /.metadata/.plugins/org.eclipse.core.runtime/.settings/winterwell.markdown.prefs: -------------------------------------------------------------------------------- 1 | Pref_Comment=199,221,12 2 | Pref_Default=216,216,216 3 | Pref_Header=204,223,50 4 | Pref_Link=217,229,119 5 | eclipse.preferences.version=1 6 | overriddenByCSS=,Pref_Default,Pref_Header,Pref_Comment,Pref_Link, 7 | -------------------------------------------------------------------------------- /E-Commerce-Backend/.mvn/wrapper/maven-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.8.4/apache-maven-3.8.4-bin.zip 2 | wrapperUrl=https://repo.maven.apache.org/maven2/org/apache/maven/wrapper/maven-wrapper/3.1.0/maven-wrapper-3.1.0.jar 3 | -------------------------------------------------------------------------------- /.metadata/.plugins/com.genuitec.eclipse.ui.common.platform/splash-fix.css: -------------------------------------------------------------------------------- 1 | #org-eclipse-ui-splash-progressText { 2 | color: #445F78; 3 | } 4 | 5 | #org-eclipse-ui-splash-progressPart { 6 | background-image: url('me-custom:/platform:/plugin/org.springframework.boot.ide.branding/splash.bmp'); 7 | } -------------------------------------------------------------------------------- /.metadata/.plugins/org.eclipse.core.runtime/.settings/org.sourceforge.jsonedit-core.prefs: -------------------------------------------------------------------------------- 1 | colorDefault=216,216,216 2 | colorNull=216,216,216 3 | colorString=255,198,0 4 | colorValue=190,214,255 5 | eclipse.preferences.version=1 6 | overriddenByCSS=,colorNull,colorDefault,colorValue,colorString, 7 | -------------------------------------------------------------------------------- /E-Commerce-Backend/bin/.mvn/wrapper/maven-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.8.4/apache-maven-3.8.4-bin.zip 2 | wrapperUrl=https://repo.maven.apache.org/maven2/org/apache/maven/wrapper/maven-wrapper/3.1.0/maven-wrapper-3.1.0.jar 3 | -------------------------------------------------------------------------------- /E-Commerce-Backend/src/main/java/com/masai/models/SessionDTO.java: -------------------------------------------------------------------------------- 1 | package com.masai.models; 2 | 3 | import lombok.*; 4 | 5 | 6 | @Data 7 | @NoArgsConstructor 8 | @AllArgsConstructor 9 | public class SessionDTO { 10 | 11 | private String token; 12 | 13 | private String message; 14 | } 15 | -------------------------------------------------------------------------------- /E-Commerce-Backend/src/main/java/com/masai/exception/OrderException.java: -------------------------------------------------------------------------------- 1 | package com.masai.exception; 2 | 3 | public class OrderException extends RuntimeException{ 4 | public OrderException() { 5 | 6 | } 7 | public OrderException(String message) { 8 | super(message); 9 | } 10 | 11 | } 12 | -------------------------------------------------------------------------------- /E-Commerce-Backend/src/main/java/com/masai/service/CartItemService.java: -------------------------------------------------------------------------------- 1 | package com.masai.service; 2 | 3 | import com.masai.models.CartDTO; 4 | import com.masai.models.CartItem; 5 | 6 | public interface CartItemService { 7 | 8 | public CartItem createItemforCart(CartDTO cartdto); 9 | 10 | } 11 | -------------------------------------------------------------------------------- /.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.egit.core.prefs: -------------------------------------------------------------------------------- 1 | GitRepositoriesView.GitDirectories=C\:\\Users\\LENOVO\\Desktop\\ECommerce-SpringBoot-Backend-Project\\.git; 2 | GitRepositoriesView.GitDirectories.relative=.git; 3 | core_autoIgnoreDerivedResources=false 4 | eclipse.preferences.version=1 5 | -------------------------------------------------------------------------------- /E-Commerce-Backend/src/main/java/com/masai/repository/CartItemDao.java: -------------------------------------------------------------------------------- 1 | package com.masai.repository; 2 | 3 | import org.springframework.data.jpa.repository.JpaRepository; 4 | 5 | import com.masai.models.CartItem; 6 | 7 | public interface CartItemDao extends JpaRepository{ 8 | 9 | } 10 | -------------------------------------------------------------------------------- /E-Commerce-Backend/src/main/java/com/masai/exception/CustomerException.java: -------------------------------------------------------------------------------- 1 | package com.masai.exception; 2 | 3 | public class CustomerException extends RuntimeException{ 4 | public CustomerException() { 5 | super(); 6 | } 7 | 8 | public CustomerException(String message) { 9 | super(message); 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /E-Commerce-Backend/src/main/java/com/masai/exception/SellerException.java: -------------------------------------------------------------------------------- 1 | package com.masai.exception; 2 | 3 | public class SellerException extends RuntimeException { 4 | 5 | public SellerException() { 6 | super(); 7 | } 8 | 9 | public SellerException(String message) { 10 | super(message); 11 | } 12 | 13 | } 14 | -------------------------------------------------------------------------------- /.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.team.cvs.ui.prefs: -------------------------------------------------------------------------------- 1 | eclipse.preferences.version=1 2 | overriddenByCSS=,pref_console_message_color,pref_console_command_color,pref_console_error_color, 3 | pref_console_command_color=199,221,12 4 | pref_console_error_color=210,82,82 5 | pref_console_message_color=216,216,216 6 | -------------------------------------------------------------------------------- /E-Commerce-Backend/src/main/java/com/masai/exception/LoginException.java: -------------------------------------------------------------------------------- 1 | package com.masai.exception; 2 | 3 | import lombok.NoArgsConstructor; 4 | 5 | @NoArgsConstructor 6 | public class LoginException extends RuntimeException{ 7 | 8 | 9 | public LoginException(String message) { 10 | super(message); 11 | } 12 | 13 | } 14 | -------------------------------------------------------------------------------- /.metadata/.plugins/org.eclipse.core.runtime/.settings/jp.gr.java_conf.ussiy.app.propedit.prefs: -------------------------------------------------------------------------------- 1 | backgroundColor=25,29,31 2 | commentColor=199,221,12 3 | eclipse.preferences.version=1 4 | keyColor=216,216,216 5 | overriddenByCSS=,separatorColor,backgroundColor,keyColor,commentColor,valueColor, 6 | separatorColor=216,216,216 7 | valueColor=255,198,0 8 | -------------------------------------------------------------------------------- /.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.cdt.dsf.ui.prefs: -------------------------------------------------------------------------------- 1 | disassembly.addressColor=63,209,63 2 | disassembly.codeBytesColor=218,29,67 3 | disassembly.functionOffsetsColor=218,29,67 4 | eclipse.preferences.version=1 5 | overriddenByCSS=,disassembly.addressColor,disassembly.codeBytesColor,disassembly.functionOffsetsColor, 6 | -------------------------------------------------------------------------------- /.metadata/.plugins/org.eclipse.egit.core/.org.eclipse.egit.core.cmp/.project: -------------------------------------------------------------------------------- 1 | 2 | 3 | .org.eclipse.egit.core.cmp 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.ui.editors.prefs: -------------------------------------------------------------------------------- 1 | AbstractTextEditor.Color.Background.SystemDefault=false 2 | AbstractTextEditor.Color.SelectionBackground.SystemDefault=false 3 | AbstractTextEditor.Color.SelectionForeground.SystemDefault=false 4 | STS4BootMarkerIndicationColor=54,81,25 5 | eclipse.preferences.version=1 6 | -------------------------------------------------------------------------------- /E-Commerce-Backend/src/test/java/com/masai/ECommerceBackendApplicationTests.java: -------------------------------------------------------------------------------- 1 | package com.masai; 2 | 3 | import org.junit.jupiter.api.Test; 4 | import org.springframework.boot.test.context.SpringBootTest; 5 | 6 | @SpringBootTest 7 | class ECommerceBackendApplicationTests { 8 | 9 | @Test 10 | void contextLoads() { 11 | } 12 | 13 | } 14 | -------------------------------------------------------------------------------- /E-Commerce-Backend/src/main/java/com/masai/controller/ProductNotFound.java: -------------------------------------------------------------------------------- 1 | package com.masai.controller; 2 | 3 | public class ProductNotFound extends RuntimeException{ 4 | 5 | public ProductNotFound() { 6 | // TODO Auto-generated constructor stub 7 | } 8 | public ProductNotFound(String message) { 9 | super(message); 10 | } 11 | 12 | } 13 | -------------------------------------------------------------------------------- /E-Commerce-Backend/src/main/java/com/masai/exception/CartItemNotFound.java: -------------------------------------------------------------------------------- 1 | package com.masai.exception; 2 | 3 | public class CartItemNotFound extends RuntimeException{ 4 | 5 | public CartItemNotFound() { 6 | // TODO Auto-generated constructor stub 7 | } 8 | 9 | public CartItemNotFound(String message) { 10 | super(message); 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /E-Commerce-Backend/src/main/java/com/masai/exception/SellerNotFoundException.java: -------------------------------------------------------------------------------- 1 | package com.masai.exception; 2 | 3 | public class SellerNotFoundException extends RuntimeException{ 4 | 5 | public SellerNotFoundException() { 6 | super(); 7 | } 8 | 9 | 10 | public SellerNotFoundException(String message) { 11 | super(message); 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /E-Commerce-Backend/src/main/java/com/masai/exception/CustomerNotFoundException.java: -------------------------------------------------------------------------------- 1 | package com.masai.exception; 2 | 3 | public class CustomerNotFoundException extends RuntimeException{ 4 | 5 | public CustomerNotFoundException() { 6 | super(); 7 | } 8 | 9 | public CustomerNotFoundException(String message) { 10 | super(message); 11 | } 12 | 13 | } 14 | -------------------------------------------------------------------------------- /.metadata/.plugins/org.eclipse.core.runtime/.settings/org.chromium.debug.ui.prefs: -------------------------------------------------------------------------------- 1 | color_comment=199,221,12 2 | color_doc=204,223,50 3 | color_keyword=141,203,226 4 | color_normal=216,216,216 5 | color_number=127,179,71 6 | color_string=255,198,0 7 | eclipse.preferences.version=1 8 | overriddenByCSS=,color_normal,color_string,color_number,color_comment,color_doc,color_keyword, 9 | -------------------------------------------------------------------------------- /E-Commerce-Backend/src/main/java/com/masai/exception/ErrorDetails.java: -------------------------------------------------------------------------------- 1 | package com.masai.exception; 2 | 3 | import java.time.LocalDateTime; 4 | import lombok.*; 5 | 6 | 7 | @NoArgsConstructor 8 | @AllArgsConstructor 9 | @Data 10 | public class ErrorDetails { 11 | private LocalDateTime timestamp; 12 | private String message; 13 | private String details; 14 | } 15 | -------------------------------------------------------------------------------- /E-Commerce-Backend/src/main/java/com/masai/repository/AddressDao.java: -------------------------------------------------------------------------------- 1 | package com.masai.repository; 2 | 3 | import org.springframework.data.jpa.repository.JpaRepository; 4 | import org.springframework.stereotype.Repository; 5 | 6 | import com.masai.models.Address; 7 | 8 | @Repository 9 | public interface AddressDao extends JpaRepository{ 10 | 11 | } 12 | -------------------------------------------------------------------------------- /.metadata/.plugins/org.eclipse.core.runtime/.settings/org.nodeclipse.enide.editors.gradle.prefs: -------------------------------------------------------------------------------- 1 | color_comment=199,221,12 2 | color_doc=204,223,50 3 | color_keyword=141,203,226 4 | color_normal=216,216,216 5 | color_number=127,179,71 6 | color_string=255,198,0 7 | eclipse.preferences.version=1 8 | overriddenByCSS=,color_normal,color_string,color_number,color_comment,color_doc,color_keyword, 9 | -------------------------------------------------------------------------------- /.metadata/.plugins/org.eclipse.core.runtime/.settings/org.nodeclipse.enide.editors.jade.prefs: -------------------------------------------------------------------------------- 1 | color_comment=199,221,12 2 | color_doc=204,223,50 3 | color_keyword=141,203,226 4 | color_normal=216,216,216 5 | color_number=127,179,71 6 | color_string=255,198,0 7 | eclipse.preferences.version=1 8 | overriddenByCSS=,color_normal,color_string,color_number,color_comment,color_doc,color_keyword, 9 | -------------------------------------------------------------------------------- /E-Commerce-Backend/src/main/java/com/masai/exception/ProductNotFoundException.java: -------------------------------------------------------------------------------- 1 | package com.masai.exception; 2 | 3 | public class ProductNotFoundException extends RuntimeException{ 4 | 5 | public ProductNotFoundException() { 6 | // TODO Auto-generated constructor stub 7 | } 8 | 9 | public ProductNotFoundException(String message){ 10 | super(message); 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /E-Commerce-Backend/src/main/java/com/masai/repository/SellerDao.java: -------------------------------------------------------------------------------- 1 | package com.masai.repository; 2 | 3 | import java.util.Optional; 4 | 5 | import org.springframework.data.jpa.repository.JpaRepository; 6 | 7 | import com.masai.models.Seller; 8 | 9 | public interface SellerDao extends JpaRepository { 10 | 11 | Optional findByMobile(String mobile); 12 | 13 | } 14 | -------------------------------------------------------------------------------- /.metadata/.plugins/org.eclipse.core.runtime/.settings/org.apache.ivyde.eclipse.prefs: -------------------------------------------------------------------------------- 1 | eclipse.preferences.version=1 2 | editor.color.default=216,216,216 3 | editor.color.procInstr=255,255,255 4 | editor.color.string=255,198,0 5 | editor.color.tag=255,255,255 6 | editor.color.xmlComment=199,221,12 7 | overriddenByCSS=,editor.color.string,editor.color.tag,editor.color.default,editor.color.procInstr,editor.color.xmlComment, 8 | -------------------------------------------------------------------------------- /.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.debug.ui.prefs: -------------------------------------------------------------------------------- 1 | eclipse.preferences.version=1 2 | org.eclipse.debug.ui.PREF_LAUNCH_PERSPECTIVES=\r\n\r\n 3 | preferredTargets=default,org.eclipse.lsp4e.debug.toggleBreakpointTarget\:default|org.eclipse.lsp4e.debug.toggleBreakpointTarget\:org.eclipse.lsp4e.debug.toggleBreakpointTarget| 4 | -------------------------------------------------------------------------------- /E-Commerce-Backend/src/main/java/com/masai/models/ProductDTO.java: -------------------------------------------------------------------------------- 1 | package com.masai.models; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Data; 5 | import lombok.NoArgsConstructor; 6 | 7 | @Data 8 | @AllArgsConstructor 9 | @NoArgsConstructor 10 | public class ProductDTO { 11 | 12 | private String prodName; 13 | private String manufaturer; 14 | private Double price; 15 | private Integer quantity; 16 | 17 | 18 | } 19 | -------------------------------------------------------------------------------- /.metadata/.plugins/org.eclipse.core.runtime/.settings/com.spket.xml.prefs: -------------------------------------------------------------------------------- 1 | eclipse.preferences.version=1 2 | overriddenByCSS=,xml_doctype,xml_task_tag,xml_tags,xml_default,xml_comments,xml_attr_value,xml_proc_instr,xml_cdata, 3 | xml_attr_value=255,198,0 4 | xml_cdata=216,216,216 5 | xml_comments=199,221,12 6 | xml_default=216,216,216 7 | xml_doctype=255,255,255 8 | xml_proc_instr=216,216,216 9 | xml_tags=190,214,255 10 | xml_task_tag=204,223,50 11 | -------------------------------------------------------------------------------- /.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.jdt.ui.prefs: -------------------------------------------------------------------------------- 1 | content_assist_lru_history= 2 | content_assist_number_of_computers=15 3 | eclipse.preferences.version=1 4 | org.eclipse.jdt.ui.formatterprofiles.version=22 5 | spelling_locale_initialized=true 6 | typefilter_migrated_2=true 7 | useAnnotationsPrefPage=true 8 | useQuickDiffPrefPage=true 9 | -------------------------------------------------------------------------------- /.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.wst.xsl.ui.prefs: -------------------------------------------------------------------------------- 1 | eclipse.preferences.version=1 2 | overriddenByCSS=,xsltagAttributeValue,xsltagBorder,xsltagName,xsltagAttributeName, 3 | xsltagAttributeName=\#BED6FF | null | null | null | null | null 4 | xsltagAttributeValue=\#FFC600 | null | null | null | null | null 5 | xsltagBorder=\#79ABFF | null | null | null | null | null 6 | xsltagName=\#BED6FF | null | null | null | null | null 7 | -------------------------------------------------------------------------------- /E-Commerce-Backend/src/main/java/com/masai/exception/CategoryNotFoundException.java: -------------------------------------------------------------------------------- 1 | package com.masai.exception; 2 | 3 | public class CategoryNotFoundException extends RuntimeException{ 4 | 5 | public CategoryNotFoundException() { 6 | // TODO Auto-generated constructor stub 7 | } 8 | 9 | 10 | public CategoryNotFoundException(String message) { 11 | super(message); 12 | // TODO Auto-generated constructor stub 13 | } 14 | 15 | } 16 | -------------------------------------------------------------------------------- /.metadata/.plugins/org.eclipse.core.runtime/.settings/com.genuitec.eclipse.sqlexplorer.prefs: -------------------------------------------------------------------------------- 1 | eclipse.preferences.version=1 2 | overriddenByCSS=,sql_columns,sql_default,sql_keyword,sql_multi_line_comment,sql_single_line_comment,sql_string,sql_table, 3 | sql_columns=171,115,255 4 | sql_default=210,215,218 5 | sql_keyword=141,203,226 6 | sql_multi_line_comment=199,221,12 7 | sql_single_line_comment=199,221,12 8 | sql_string=255,198,0 9 | sql_table=49,132,255 10 | -------------------------------------------------------------------------------- /.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.angularjs.ui.prefs: -------------------------------------------------------------------------------- 1 | angularExpression=\#FFC600 | null | null | null | null | null 2 | angularExpressionBorder=\#D8D8D8 | null | null | null | null | null 3 | directiveName=\#8DCBE2 | null | null | null | null | null 4 | directiveParameterName=\#BED6FF | null | null | null | null | null 5 | eclipse.preferences.version=1 6 | overriddenByCSS=,angularExpression,directiveName,angularExpressionBorder,directiveParameterName, 7 | -------------------------------------------------------------------------------- /.metadata/.plugins/org.eclipse.core.runtime/.settings/com.genuitec.eclipse.theming.ui.prefs: -------------------------------------------------------------------------------- 1 | applyBackground=false 2 | approved.defs.file.last.changed.time=1649720987000 3 | configurationInstallLocation=/C\:/Users/LENOVO/Desktop/spring-tool-suite-4-4.14.0.RELEASE-e4.23.0-win32.win32.x86_64.self-extracting/sts-4.14.0.RELEASE/ 4 | eclipse.preferences.version=1 5 | iconcolormode=primary 6 | last.download.attempt.time=1654280360482 7 | lastConfiguration=1654280348773 8 | newinstall=true 9 | workbench.theme=Dark Gray 10 | -------------------------------------------------------------------------------- /.metadata/.plugins/org.eclipse.core.runtime/.settings/org.jboss.ide.eclipse.freemarker.prefs: -------------------------------------------------------------------------------- 1 | color.comment=199,221,12 2 | color.directive=255,255,255 3 | color.interpolation=141,203,226 4 | color.oppositeRegion=65,65,4 5 | color.string=255,198,0 6 | color.text=216,216,216 7 | color.xmlComment=199,221,12 8 | color.xmlTag=121,171,255 9 | eclipse.preferences.version=1 10 | overriddenByCSS=,color.oppositeRegion,color.string,color.text,color.interpolation,color.xmlComment,color.xmlTag,color.directive,color.comment, 11 | -------------------------------------------------------------------------------- /E-Commerce-Backend/src/main/java/com/masai/models/CartDTO.java: -------------------------------------------------------------------------------- 1 | package com.masai.models; 2 | import javax.validation.constraints.*; 3 | 4 | import lombok.AllArgsConstructor; 5 | import lombok.Data; 6 | import lombok.NoArgsConstructor; 7 | 8 | 9 | @AllArgsConstructor 10 | @NoArgsConstructor 11 | @Data 12 | public class CartDTO { 13 | 14 | @NotNull 15 | private Integer productId; 16 | 17 | private String productName; 18 | 19 | private Double price; 20 | 21 | @Min(1) 22 | private Integer quantity; 23 | 24 | } 25 | -------------------------------------------------------------------------------- /.metadata/.plugins/org.eclipse.core.runtime/.settings/de.walware.statet.base.ui.prefs: -------------------------------------------------------------------------------- 1 | //editors/optionsParameters.background=25,29,31 2 | //editors/optionsParameters.foreground=216,216,216 3 | //editors/optionsProposals.background=25,29,31 4 | //editors/optionsProposals.foreground=216,216,216 5 | MatchingBrackets.color=65,65,4 6 | eclipse.preferences.version=1 7 | overriddenByCSS=,editors/optionsParameters.foreground,editors/optionsProposals.foreground,editors/optionsParameters.background,MatchingBrackets.color,editors/optionsProposals.background, 8 | -------------------------------------------------------------------------------- /E-Commerce-Backend/src/main/java/com/masai/repository/CartDao.java: -------------------------------------------------------------------------------- 1 | package com.masai.repository; 2 | 3 | import java.util.Map; 4 | 5 | import org.springframework.data.jpa.repository.JpaRepository; 6 | import org.springframework.stereotype.Repository; 7 | 8 | import com.masai.models.Cart; 9 | import com.masai.models.Product; 10 | 11 | @Repository 12 | public interface CartDao extends JpaRepository { 13 | 14 | // public Map findbyName(String productName); 15 | // public Cart findbyId(Integer cartId); 16 | } 17 | -------------------------------------------------------------------------------- /E-Commerce-Backend/src/main/java/com/masai/repository/SessionDao.java: -------------------------------------------------------------------------------- 1 | package com.masai.repository; 2 | 3 | import java.util.Optional; 4 | 5 | import org.springframework.data.jpa.repository.JpaRepository; 6 | import org.springframework.stereotype.Repository; 7 | 8 | import com.masai.models.UserSession; 9 | 10 | @Repository 11 | public interface SessionDao extends JpaRepository{ 12 | 13 | Optional findByToken(String token); 14 | 15 | Optional findByUserId(Integer userId); 16 | 17 | } 18 | -------------------------------------------------------------------------------- /E-Commerce-Backend/.gitignore: -------------------------------------------------------------------------------- 1 | HELP.md 2 | target/ 3 | !.mvn/wrapper/maven-wrapper.jar 4 | !**/src/main/**/target/ 5 | !**/src/test/**/target/ 6 | 7 | ### STS ### 8 | .apt_generated 9 | .classpath 10 | .factorypath 11 | .project 12 | .settings 13 | .springBeans 14 | .sts4-cache 15 | 16 | ### IntelliJ IDEA ### 17 | .idea 18 | *.iws 19 | *.iml 20 | *.ipr 21 | 22 | ### NetBeans ### 23 | /nbproject/private/ 24 | /nbbuild/ 25 | /dist/ 26 | /nbdist/ 27 | /.nb-gradle/ 28 | build/ 29 | !**/src/main/**/build/ 30 | !**/src/test/**/build/ 31 | 32 | ### VS Code ### 33 | .vscode/ 34 | -------------------------------------------------------------------------------- /.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.datatools.sqltools.sqleditor.prefs: -------------------------------------------------------------------------------- 1 | Double\ quoted\ string=0,0,0,0,0,255,198,0 2 | Identifier=0,0,0,0,0,255,255,255 3 | Keyword=0,0,0,0,0,141,203,226 4 | Multi-line\ comment=0,0,0,0,0,199,221,12 5 | Others=0,0,0,0,0,216,216,216 6 | Single\ quoted\ string=0,0,0,0,0,255,198,0 7 | Single-line\ comment=0,0,0,0,0,199,221,12 8 | Type=0,0,0,0,0,210,82,82 9 | eclipse.preferences.version=1 10 | overriddenByCSS=,Others,Type,Identifier,Keyword,Multi-line comment,Double quoted string,Single-line comment,Single quoted string, 11 | -------------------------------------------------------------------------------- /E-Commerce-Backend/bin/.gitignore: -------------------------------------------------------------------------------- 1 | HELP.md 2 | target/ 3 | !.mvn/wrapper/maven-wrapper.jar 4 | !**/src/main/**/target/ 5 | !**/src/test/**/target/ 6 | 7 | ### STS ### 8 | .apt_generated 9 | .classpath 10 | .factorypath 11 | .project 12 | .settings 13 | .springBeans 14 | .sts4-cache 15 | 16 | ### IntelliJ IDEA ### 17 | .idea 18 | *.iws 19 | *.iml 20 | *.ipr 21 | 22 | ### NetBeans ### 23 | /nbproject/private/ 24 | /nbbuild/ 25 | /dist/ 26 | /nbdist/ 27 | /.nb-gradle/ 28 | build/ 29 | !**/src/main/**/build/ 30 | !**/src/test/**/build/ 31 | 32 | ### VS Code ### 33 | .vscode/ 34 | -------------------------------------------------------------------------------- /.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.ui.workbench.prefs: -------------------------------------------------------------------------------- 1 | //org.eclipse.ui.commands/state/org.eclipse.ui.navigator.resources.nested.changeProjectPresentation/org.eclipse.ui.commands.radioState=false 2 | PLUGINS_NOT_ACTIVATED_ON_STARTUP=;org.eclipse.m2e.discovery; 3 | eclipse.preferences.version=1 4 | org.eclipse.ui.commands=\r\n 5 | org.eclipse.ui.workbench.ACTIVE_NOFOCUS_TAB_BG_START=37,41,45 6 | org.eclipse.ui.workbench.ACTIVE_TAB_BG_START=37,41,45 7 | org.eclipse.ui.workbench.INACTIVE_TAB_BG_START=53,60,65 8 | -------------------------------------------------------------------------------- /E-Commerce-Backend/src/main/java/com/masai/models/OrderDTO.java: -------------------------------------------------------------------------------- 1 | package com.masai.models; 2 | 3 | import javax.persistence.Embedded; 4 | import javax.validation.constraints.NotNull; 5 | 6 | import org.hibernate.validator.constraints.CreditCardNumber; 7 | 8 | import lombok.AllArgsConstructor; 9 | import lombok.Data; 10 | import lombok.NoArgsConstructor; 11 | import lombok.ToString; 12 | 13 | @NoArgsConstructor 14 | @AllArgsConstructor 15 | @Data 16 | @ToString 17 | public class OrderDTO { 18 | 19 | @NotNull 20 | @Embedded 21 | private CreditCard cardNumber; 22 | @NotNull 23 | private String addressType; 24 | } 25 | -------------------------------------------------------------------------------- /E-Commerce-Backend/src/main/java/com/masai/repository/CustomerDao.java: -------------------------------------------------------------------------------- 1 | package com.masai.repository; 2 | 3 | import java.util.Optional; 4 | 5 | import org.springframework.data.jpa.repository.JpaRepository; 6 | import org.springframework.stereotype.Repository; 7 | 8 | import com.masai.models.Customer; 9 | 10 | @Repository 11 | public interface CustomerDao extends JpaRepository{ 12 | 13 | Optional findByMobileNo(String mobileNo); 14 | 15 | Optional findByEmailId(String emailId); 16 | 17 | Optional findByMobileNoOrEmailId(String mobileNo, String emailId); 18 | 19 | } 20 | -------------------------------------------------------------------------------- /E-Commerce-Backend/bin/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | #changing the server port 2 | server.port=8009 3 | 4 | #db specific properties 5 | spring.datasource.url=jdbc:mysql://localhost:3306/ecommercedb 6 | spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver 7 | spring.datasource.username=root 8 | spring.datasource.password=anand 9 | 10 | 11 | #ORM s/w specific properties 12 | spring.jpa.hibernate.ddl-auto=update 13 | spring.jpa.show-sql=true 14 | 15 | 16 | spring.mvc.pathmatch.matching-strategy = ANT_PATH_MATCHER 17 | 18 | spring.mvc.throw-exception-if-no-handler-found=true 19 | spring.web.resources.add-mappings=false 20 | -------------------------------------------------------------------------------- /E-Commerce-Backend/src/main/java/com/masai/models/SellerDTO.java: -------------------------------------------------------------------------------- 1 | package com.masai.models; 2 | 3 | import javax.validation.constraints.NotNull; 4 | import javax.validation.constraints.Pattern; 5 | 6 | import lombok.*; 7 | 8 | 9 | @NoArgsConstructor 10 | @AllArgsConstructor 11 | @Data 12 | @ToString 13 | public class SellerDTO { 14 | 15 | 16 | @NotNull(message="Please enter your mobile Number") 17 | @Pattern(regexp="[6789]{1}[0-9]{9}", message="Enter a valid Mobile Number") 18 | private String mobile; 19 | 20 | 21 | @Pattern(regexp="[A-Za-z0-9!@#$%^&*_]{8,15}", message="Please Enter a valid Password") 22 | private String password; 23 | 24 | } 25 | -------------------------------------------------------------------------------- /.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.wst.dtd.ui.prefs: -------------------------------------------------------------------------------- 1 | dtdComment=\#C7DD0C | null | null | false | null | null 2 | dtdData=\#D8D8D8 | null | null | null | null | null 3 | dtdDefault=\#D8D8D8 | null | null | null | null | null 4 | dtdKeyword=\#8DCBE2 | null | null | null | null | null 5 | dtdString=\#FFC600 | null | null | null | null | null 6 | dtdSymbol=\#BED6FF | null | null | null | null | null 7 | dtdTag=\#BED6FF | null | null | null | null | null 8 | dtdTagName=\#BED6FF | null | null | null | null | null 9 | eclipse.preferences.version=1 10 | overriddenByCSS=,dtdKeyword,dtdTag,dtdString,dtdTagName,dtdDefault,dtdData,dtdSymbol,dtdComment, 11 | -------------------------------------------------------------------------------- /.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.cdt.make.ui.prefs: -------------------------------------------------------------------------------- 1 | eclipse.preferences.version=1 2 | org.eclipse.cdt.make.ui.editor.comment=199,221,12 3 | org.eclipse.cdt.make.ui.editor.default=216,216,216 4 | org.eclipse.cdt.make.ui.editor.function=255,255,255 5 | org.eclipse.cdt.make.ui.editor.keyword=141,203,226 6 | org.eclipse.cdt.make.ui.editor.macro_def=190,214,255 7 | org.eclipse.cdt.make.ui.editor.macro_ref=190,214,255 8 | overriddenByCSS=,org.eclipse.cdt.make.ui.editor.comment,org.eclipse.cdt.make.ui.editor.macro_ref,org.eclipse.cdt.make.ui.editor.macro_def,org.eclipse.cdt.make.ui.editor.default,org.eclipse.cdt.make.ui.editor.function,org.eclipse.cdt.make.ui.editor.keyword, 9 | -------------------------------------------------------------------------------- /E-Commerce-Backend/src/main/java/com/masai/service/LoginLogoutService.java: -------------------------------------------------------------------------------- 1 | package com.masai.service; 2 | 3 | import com.masai.models.CustomerDTO; 4 | import com.masai.models.SellerDTO; 5 | import com.masai.models.SessionDTO; 6 | import com.masai.models.UserSession; 7 | 8 | 9 | public interface LoginLogoutService { 10 | 11 | public UserSession loginCustomer(CustomerDTO customer); 12 | 13 | public SessionDTO logoutCustomer(SessionDTO session); 14 | 15 | public void checkTokenStatus(String token); 16 | 17 | public void deleteExpiredTokens(); 18 | 19 | 20 | public UserSession loginSeller(SellerDTO seller); 21 | 22 | public SessionDTO logoutSeller(SessionDTO session); 23 | 24 | 25 | } 26 | -------------------------------------------------------------------------------- /.metadata/.plugins/org.eclipse.core.runtime/.settings/net.sourceforge.texlipse.prefs: -------------------------------------------------------------------------------- 1 | cmd.TexColor=255,255,255 2 | com.TexColor=199,221,12 3 | crl.TexColor=121,171,255 4 | def.BibColor=216,216,216 5 | def.TexColor=216,216,216 6 | eclipse.preferences.version=1 7 | equ.TexColor=255,198,0 8 | key.BibColor=141,203,226 9 | num.TexColor=127,179,71 10 | overriddenByCSS=,spe.TexColor,cmd.TexColor,equ.TexColor,com.TexColor,num.TexColor,str.BibColor,key.BibColor,typ.BibColor,sqr.TexColor,def.TexColor,verb.TexColor,def.BibColor,crl.TexColor,slc.BibColor, 11 | slc.BibColor=199,221,12 12 | spe.TexColor=255,255,255 13 | sqr.TexColor=121,171,255 14 | str.BibColor=255,198,0 15 | typ.BibColor=210,82,82 16 | verb.TexColor=190,214,255 17 | -------------------------------------------------------------------------------- /.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.mylyn.wikitext.ui.prefs: -------------------------------------------------------------------------------- 1 | block-bc=font-family\: monospace; color\: \#569cd6; 2 | block-h1=font-size\: 120%; font-weight\: bold; color\: \#118bbd; 3 | block-h2=font-size\: 110%; font-weight\: bold; color\: \#118bbd; 4 | block-h3=font-size\: 105%; font-weight\: bold; color\: \#118bbd; 5 | block-h4=font-weight\: bold; color\: \#118bbd; 6 | block-h5=font-size\: 90%; font-weight\: bold; color\: \#118bbd; 7 | block-h6=font-size\: 80%; font-weight\: bold; color\: \#118bbd; 8 | eclipse.preferences.version=1 9 | overriddenByCSS=,block-bc,block-h1,block-h2,block-h3,block-h4,block-h5,block-h6,phrase-code, 10 | phrase-code=font-family\: monospace; color\: \#6d72f6; 11 | -------------------------------------------------------------------------------- /.metadata/.plugins/org.eclipse.ui.workbench/workingsets.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /.metadata/.plugins/org.eclipse.core.runtime/.settings/com.spket.js.prefs: -------------------------------------------------------------------------------- 1 | eclipse.preferences.version=1 2 | java_doc_default=204,223,50 3 | java_doc_keyword=217,229,119 4 | java_doc_link=217,229,119 5 | java_doc_tag=217,229,119 6 | js_default=216,216,216 7 | js_keyword=141,203,226 8 | js_keyword_return=141,203,226 9 | js_ml_comment=199,221,12 10 | js_operator=216,216,216 11 | js_regexp=255,198,0 12 | js_reserved=141,203,226 13 | js_sl_comment=199,221,12 14 | js_ssi=190,214,255 15 | js_string=255,198,0 16 | js_task_tag=217,229,119 17 | overriddenByCSS=,js_default,java_doc_default,java_doc_link,js_keyword_return,js_operator,js_string,js_regexp,js_reserved,js_ml_comment,js_ssi,java_doc_tag,js_sl_comment,js_task_tag,js_keyword,java_doc_keyword, 18 | -------------------------------------------------------------------------------- /.metadata/.plugins/org.eclipse.core.runtime/.settings/net.sf.eclipsefp.haskell.ui.prefs: -------------------------------------------------------------------------------- 1 | charColor=255,198,0 2 | commentColor=199,221,12 3 | conColor=210,82,82 4 | cppColor=255,255,255 5 | docColor=204,223,50 6 | eclipse.preferences.version=1 7 | functionColor=216,216,216 8 | keywordColor=141,203,226 9 | literateCommentColor=199,221,12 10 | overriddenByCSS=,conColor,thColor,sourceHoverBackgroundColor,symbolColor,keywordColor,literateCommentColor,varSymColor,varColor,functionColor,cppColor,docColor,charColor,commentColor,pragmaColor,stringColor, 11 | pragmaColor=199,221,12 12 | sourceHoverBackgroundColor=0,0,0 13 | stringColor=255,198,0 14 | symbolColor=216,216,216 15 | thColor=255,255,255 16 | varColor=216,216,216 17 | varSymColor=216,216,216 18 | -------------------------------------------------------------------------------- /.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.jst.jsp.ui.prefs: -------------------------------------------------------------------------------- 1 | SCRIPT_AREA_BORDER=\#D8D8D8 | null | null | null | null | null 2 | commentBorder=\#C7DD0C | null | null | false | null | null 3 | commentText=\#C7DD0C | null | null | false | null | null 4 | eclipse.preferences.version=1 5 | jsp_content=\#D8D8D8 | null | null | null | null | null 6 | overriddenByCSS=,SCRIPT_AREA_BORDER,tagBorder,tagAttributeValue,tagAttributeEquals,jsp_content,commentBorder,tagAttributeName,commentText, 7 | tagAttributeEquals=\#D8D8D8 | null | null | null | null | null 8 | tagAttributeName=\#8DCBE2 | null | null | null | null | null 9 | tagAttributeValue=\#FFC600 | null | null | null | null | null 10 | tagBorder=\#FFFFFF | null | null | null | null | null 11 | -------------------------------------------------------------------------------- /.metadata/.plugins/org.eclipse.core.runtime/.settings/com.palantir.typescript.prefs: -------------------------------------------------------------------------------- 1 | eclipse.preferences.version=1 2 | overriddenByCSS=,syntaxColoring.numberLiteral.color,syntaxColoring.operator.color,syntaxColoring.comment.color,syntaxColoring.keyword.color,syntaxColoring.regExpLiteral.color,syntaxColoring.stringLiteral.color,syntaxColoring.identifier.color,syntaxColoring.punctuation.color, 3 | syntaxColoring.comment.color=199,221,12 4 | syntaxColoring.identifier.color=216,216,216 5 | syntaxColoring.keyword.color=141,203,226 6 | syntaxColoring.numberLiteral.color=127,179,71 7 | syntaxColoring.operator.color=216,216,216 8 | syntaxColoring.punctuation.color=216,216,216 9 | syntaxColoring.regExpLiteral.color=255,198,0 10 | syntaxColoring.stringLiteral.color=255,198,0 11 | -------------------------------------------------------------------------------- /.metadata/.plugins/org.eclipse.core.runtime/.settings/org.dadacoalition.yedit.prefs: -------------------------------------------------------------------------------- 1 | colorAliasPreferences=216,216,216 2 | colorAnchorPreferences=216,216,216 3 | colorCommentPreference=199,221,12 4 | colorConstantPreferences=255,255,255 5 | colorDefaultPreference=216,216,216 6 | colorDocumentPreference=216,216,216 7 | colorFlowCharacterPreferences=216,216,216 8 | colorKeyPreference=255,255,255 9 | colorScalarPreference=255,198,0 10 | colorTagPropertyPreferences=216,216,216 11 | eclipse.preferences.version=1 12 | overriddenByCSS=,colorDocumentPreference,colorDefaultPreference,colorTagPropertyPreferences,colorKeyPreference,colorFlowCharacterPreferences,colorAliasPreferences,colorAnchorPreferences,colorCommentPreference,colorConstantPreferences,colorScalarPreference, 13 | -------------------------------------------------------------------------------- /E-Commerce-Backend/src/main/java/com/masai/service/CartService.java: -------------------------------------------------------------------------------- 1 | package com.masai.service; 2 | 3 | import java.util.List; 4 | 5 | import com.masai.controller.ProductNotFound; 6 | import com.masai.exception.CartItemNotFound; 7 | import com.masai.models.Cart; 8 | import com.masai.models.CartDTO; 9 | import com.masai.models.CartItem; 10 | 11 | 12 | 13 | 14 | public interface CartService { 15 | 16 | public Cart addProductToCart(CartDTO cart, String token) throws CartItemNotFound; 17 | public Cart getCartProduct(String token); 18 | public Cart removeProductFromCart(CartDTO cartDto,String token) throws ProductNotFound; 19 | // public Cart changeQuantity(Product product,Customer customer,Integer quantity); 20 | 21 | public Cart clearCart(String token); 22 | 23 | } 24 | -------------------------------------------------------------------------------- /E-Commerce-Backend/src/main/java/com/masai/models/StateEnum.java: -------------------------------------------------------------------------------- 1 | package com.masai.models; 2 | 3 | 4 | public enum StateEnum { 5 | ANDAMAN_AND_NICOBAR_ISLANDS, 6 | ANDHRA_PRADESH, 7 | ARUNACHAL_PRADESH, 8 | ASSAM, 9 | BIHAR, 10 | CHANDIGARH, 11 | CHHATTISGARH, 12 | GOA, 13 | GUJARAT, 14 | HARYANA, 15 | HIMACHAL_PRADESH, 16 | JHARKHAND, 17 | KARNATAKA, 18 | KERALA, 19 | MADHYA_PRADESH, 20 | MAHARASHTRA, 21 | MANIPUR, 22 | MEGHALAYA, 23 | MIZORAM, 24 | NAGALAND, 25 | ODISHA, 26 | PUNJAB, 27 | RAJASTHAN, 28 | SIKKIM, 29 | TAMIL_NADU, 30 | TELANGANA, 31 | TRIPURA, 32 | UTTAR_PRADESH, 33 | UTTARAKHAND, 34 | WEST_BENGAL, 35 | DADRA_AND_NAGAR_HAVELI, 36 | DAMAN_AND_DIU, 37 | DELHI, 38 | JAMMU_AND_KASHMIR, 39 | LADAKH, 40 | LAKSHADWEEP, 41 | PUDUCHERRY 42 | } 43 | -------------------------------------------------------------------------------- /E-Commerce-Backend/src/main/java/com/masai/models/CreditCard.java: -------------------------------------------------------------------------------- 1 | package com.masai.models; 2 | 3 | 4 | import javax.validation.constraints.NotNull; 5 | import javax.validation.constraints.Pattern; 6 | 7 | import lombok.AllArgsConstructor; 8 | import lombok.Data; 9 | import lombok.NoArgsConstructor; 10 | 11 | @AllArgsConstructor 12 | @NoArgsConstructor 13 | @Data 14 | public class CreditCard { 15 | 16 | @Pattern(regexp = "[0-9]{16,18}", message = "Invalid card number") 17 | @NotNull 18 | private String cardNumber; 19 | 20 | @Pattern(regexp = "[0-9]{2}/[0-9]{2,4}", message = "Invalid validity. Enter in MM/YY or MM/YYYY format") 21 | private String cardValidity; 22 | 23 | @Pattern(regexp = "[0-9]{3}", message = "Invalid CVV. Must be numeric 3 digits length.") 24 | private String cardCVV; 25 | 26 | } 27 | -------------------------------------------------------------------------------- /E-Commerce-Backend/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | #changing the server port 2 | server.port=8009 3 | 4 | #db specific properties 5 | spring.datasource.url=jdbc:mysql://localhost:3306/ecommercedb 6 | spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver 7 | spring.datasource.username=root 8 | spring.datasource.password=root 9 | 10 | 11 | 12 | #ORM s/w specific properties 13 | spring.jpa.hibernate.ddl-auto=update 14 | spring.jpa.show-sql=true 15 | 16 | 17 | #Swagger ui 18 | springdoc.swagger-ui.path=/swagger-ui.html 19 | springdoc.version=2.6.7 20 | 21 | #spring 22 | spring.mvc.throw-exception-if-no-handler-found=true 23 | spring.web.resources.add-mappings=false 24 | 25 | #To accept case insensitive enums in request body 26 | spring.jackson.mapper.ACCEPT_CASE_INSENSITIVE_ENUMS = true 27 | 28 | 29 | -------------------------------------------------------------------------------- /E-Commerce-Backend/src/main/java/com/masai/models/CustomerDTO.java: -------------------------------------------------------------------------------- 1 | package com.masai.models; 2 | 3 | import javax.validation.constraints.Email; 4 | import javax.validation.constraints.NotNull; 5 | import javax.validation.constraints.Pattern; 6 | 7 | import lombok.AllArgsConstructor; 8 | import lombok.Data; 9 | import lombok.NoArgsConstructor; 10 | 11 | 12 | @NoArgsConstructor 13 | @AllArgsConstructor 14 | @Data 15 | public class CustomerDTO { 16 | 17 | @NotNull 18 | @Pattern(regexp = "[6789][0-9]{9}", message = "Enter valid mobile number") 19 | private String mobileId; 20 | 21 | @NotNull(message = "Please enter the password") 22 | @Pattern(regexp = "[A-Za-z0-9!@#$%^&*_]{8,15}", message = "Password must be 8-15 characters in length and can include A-Z, a-z, 0-9, or special characters !@#$%^&*_") 23 | private String password; 24 | 25 | @Email 26 | private String emailId; 27 | 28 | } 29 | -------------------------------------------------------------------------------- /E-Commerce-Backend/src/main/java/com/masai/models/UserSession.java: -------------------------------------------------------------------------------- 1 | package com.masai.models; 2 | 3 | import java.time.LocalDateTime; 4 | 5 | import javax.persistence.Column; 6 | import javax.persistence.Entity; 7 | import javax.persistence.GeneratedValue; 8 | import javax.persistence.GenerationType; 9 | import javax.persistence.Id; 10 | 11 | import lombok.AllArgsConstructor; 12 | import lombok.Data; 13 | import lombok.NoArgsConstructor; 14 | 15 | @Data 16 | @NoArgsConstructor 17 | @AllArgsConstructor 18 | @Entity 19 | public class UserSession { 20 | 21 | @Id 22 | @GeneratedValue(strategy = GenerationType.AUTO) 23 | private Integer sessionId; 24 | 25 | @Column(unique = true) 26 | private String token; 27 | 28 | @Column(unique = true) 29 | private Integer userId; 30 | 31 | private String userType; 32 | 33 | private LocalDateTime sessionStartTime; 34 | 35 | private LocalDateTime sessionEndTime; 36 | 37 | } 38 | -------------------------------------------------------------------------------- /.metadata/.plugins/org.eclipse.core.runtime/.settings/com.googlecode.goclipse.ui.prefs: -------------------------------------------------------------------------------- 1 | eclipse.preferences.version=1 2 | overriddenByCSS=,syntax_highlighting_value,syntax_highlighting_text,syntax_highlighting_builtin_function,syntax_highlighting_keyword,syntax_highlighting_string,syntax_highlighting_character,syntax_highlighting_multiline_string,syntax_highlighting_comment,syntax_highlighting_primitive,syntax_highlighting_operator,syntax_highlighting_syntax_chars, 3 | syntax_highlighting_builtin_function=255,255,255 4 | syntax_highlighting_character=255,198,0 5 | syntax_highlighting_comment=199,221,12 6 | syntax_highlighting_keyword=141,203,226 7 | syntax_highlighting_multiline_string=255,198,0 8 | syntax_highlighting_operator=216,216,216 9 | syntax_highlighting_primitive=127,179,71 10 | syntax_highlighting_string=255,198,0 11 | syntax_highlighting_syntax_chars=216,216,216 12 | syntax_highlighting_text=216,216,216 13 | syntax_highlighting_value=127,179,71 14 | -------------------------------------------------------------------------------- /E-Commerce-Backend/src/main/java/com/masai/models/CartItem.java: -------------------------------------------------------------------------------- 1 | package com.masai.models; 2 | 3 | import javax.persistence.Entity; 4 | import javax.persistence.GeneratedValue; 5 | import javax.persistence.GenerationType; 6 | import javax.persistence.Id; 7 | import javax.persistence.OneToOne; 8 | 9 | import com.fasterxml.jackson.annotation.JsonIgnoreProperties; 10 | 11 | import lombok.AllArgsConstructor; 12 | import lombok.Getter; 13 | import lombok.NoArgsConstructor; 14 | import lombok.Setter; 15 | import lombok.ToString; 16 | 17 | @AllArgsConstructor 18 | @NoArgsConstructor 19 | @Getter 20 | @Setter 21 | @ToString 22 | @Entity 23 | public class CartItem { 24 | 25 | @Id 26 | @GeneratedValue(strategy = GenerationType.AUTO) 27 | private Integer cartItemId; 28 | 29 | 30 | @OneToOne 31 | @JsonIgnoreProperties(value={ 32 | "productId", 33 | "seller", 34 | "quantity" 35 | 36 | }) 37 | private Product cartProduct; 38 | 39 | private Integer cartItemQuantity; 40 | 41 | } 42 | -------------------------------------------------------------------------------- /.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.ant.ui.prefs: -------------------------------------------------------------------------------- 1 | eclipse.preferences.version=1 2 | org.eclipse.ant.ui.Color=203,78,78 3 | org.eclipse.ant.ui.commentsColor=199,221,12 4 | org.eclipse.ant.ui.constantStringsColor=255,198,0 5 | org.eclipse.ant.ui.debugColor=233,235,237 6 | org.eclipse.ant.ui.dtdColor=255,255,255 7 | org.eclipse.ant.ui.informationColor=121,171,255 8 | org.eclipse.ant.ui.processingInstructionsColor=216,216,216 9 | org.eclipse.ant.ui.tagsColor=255,255,255 10 | org.eclipse.ant.ui.textColor=216,216,216 11 | org.eclipse.ant.ui.verboseColor=209,151,217 12 | org.eclipse.ant.ui.warningColor=255,198,0 13 | overriddenByCSS=,org.eclipse.ant.ui.Color,org.eclipse.ant.ui.commentsColor,org.eclipse.ant.ui.constantStringsColor,org.eclipse.ant.ui.debugColor,org.eclipse.ant.ui.dtdColor,org.eclipse.ant.ui.informationColor,org.eclipse.ant.ui.processingInstructionsColor,org.eclipse.ant.ui.tagsColor,org.eclipse.ant.ui.textColor,org.eclipse.ant.ui.verboseColor,org.eclipse.ant.ui.warningColor, 14 | -------------------------------------------------------------------------------- /E-Commerce-Backend/src/main/java/com/masai/service/ProductService.java: -------------------------------------------------------------------------------- 1 | package com.masai.service; 2 | 3 | import java.util.List; 4 | 5 | import com.masai.models.CategoryEnum; 6 | import com.masai.models.Product; 7 | import com.masai.models.ProductDTO; 8 | import com.masai.models.ProductStatus; 9 | 10 | public interface ProductService { 11 | 12 | public Product addProductToCatalog(String token, Product product); 13 | 14 | public Product getProductFromCatalogById(Integer id); 15 | 16 | public String deleteProductFromCatalog(Integer id); 17 | 18 | public Product updateProductIncatalog(Product product); 19 | 20 | public List getAllProductsIncatalog(); 21 | 22 | public List getAllProductsOfSeller(Integer id); 23 | 24 | public List getProductsOfCategory(CategoryEnum catenum); 25 | 26 | public List getProductsOfStatus(ProductStatus status); 27 | 28 | 29 | 30 | public Product updateProductQuantityWithId(Integer id,ProductDTO prodDTO); 31 | 32 | } 33 | -------------------------------------------------------------------------------- /E-Commerce-Backend/src/main/java/com/masai/models/Cart.java: -------------------------------------------------------------------------------- 1 | package com.masai.models; 2 | 3 | 4 | import java.util.ArrayList; 5 | import java.util.List; 6 | 7 | import javax.persistence.CascadeType; 8 | import javax.persistence.Entity; 9 | import javax.persistence.GeneratedValue; 10 | import javax.persistence.GenerationType; 11 | import javax.persistence.Id; 12 | import javax.persistence.OneToMany; 13 | import javax.persistence.OneToOne; 14 | 15 | import com.fasterxml.jackson.annotation.JsonIgnore; 16 | 17 | import lombok.AllArgsConstructor; 18 | import lombok.Data; 19 | import lombok.NoArgsConstructor; 20 | 21 | 22 | @NoArgsConstructor 23 | @AllArgsConstructor 24 | @Data 25 | @Entity 26 | public class Cart { 27 | 28 | @Id 29 | @GeneratedValue(strategy = GenerationType.AUTO) 30 | private Integer cartId; 31 | 32 | @OneToMany(cascade = CascadeType.ALL) 33 | private List cartItems = new ArrayList<>(); 34 | 35 | private Double cartTotal; 36 | 37 | @OneToOne(cascade = CascadeType.ALL) 38 | @JsonIgnore 39 | private Customer customer; 40 | 41 | } 42 | 43 | 44 | 45 | 46 | 47 | 48 | -------------------------------------------------------------------------------- /E-Commerce-Backend/src/main/java/com/masai/service/SellerService.java: -------------------------------------------------------------------------------- 1 | package com.masai.service; 2 | 3 | import java.util.List; 4 | 5 | import com.masai.exception.SellerException; 6 | import com.masai.models.Seller; 7 | import com.masai.models.SellerDTO; 8 | import com.masai.models.SessionDTO; 9 | 10 | public interface SellerService { 11 | 12 | public Seller addSeller(Seller seller); 13 | 14 | public List getAllSellers() throws SellerException; 15 | 16 | public Seller getSellerById(Integer sellerId)throws SellerException; 17 | 18 | public Seller getSellerByMobile(String mobile, String token) throws SellerException; 19 | 20 | public Seller getCurrentlyLoggedInSeller(String token) throws SellerException; 21 | 22 | public SessionDTO updateSellerPassword(SellerDTO sellerDTO, String token) throws SellerException; 23 | 24 | public Seller updateSeller(Seller seller, String token)throws SellerException; 25 | 26 | public Seller updateSellerMobile(SellerDTO sellerdto, String token)throws SellerException; 27 | 28 | public Seller deleteSellerById(Integer sellerId, String token)throws SellerException; 29 | 30 | } 31 | -------------------------------------------------------------------------------- /.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.wst.html.ui.prefs: -------------------------------------------------------------------------------- 1 | commentBorder=\#C7DD0C | null | null | false | null | null 2 | commentText=\#C7DD0C | null | null | false | null | null 3 | declBoder=\#FFFFFF | null | null | null | null | null 4 | doctypeExternalId=\#FFFFFF | null | null | null | null | null 5 | doctypeExternalPubref=\#FFFFFF | null | null | null | null | null 6 | doctypeExtrenalSysref=\#FFFFFF | null | null | null | null | null 7 | doctypeName=\#FFFFFF | null | null | null | null | null 8 | eclipse.preferences.version=1 9 | entityReference=\#8DCBE2 | null | null | null | null | null 10 | overriddenByCSS=,doctypeExternalPubref,tagBorder,declBoder,doctypeExtrenalSysref,tagName,commentText,doctypeExternalId,doctypeName,tagAttributeValue,tagAttributeEquals,entityReference,commentBorder,tagAttributeName,xmlContent, 11 | tagAttributeEquals=\#D8D8D8 | null | null | null | null | null 12 | tagAttributeName=\#BED6FF | null | null | null | null | null 13 | tagAttributeValue=\#FFC600 | null | null | null | null | null 14 | tagBorder=\#79ABFF | null | null | null | null | null 15 | tagName=\#BED6FF | null | null | null | null | null 16 | xmlContent=\#D8D8D8 | null | null | null | null | null 17 | -------------------------------------------------------------------------------- /.metadata/.plugins/com.genuitec.eclipse.devstyle/recent.json: -------------------------------------------------------------------------------- 1 | {"lastUsed":1654281277014,"path":"C:\/Users\/LENOVO\/Desktop\/ECommerce-SpringBoot-Backend-Project","projectCount":1,"recentFiles":[{"path":"\/E-Commerce-Backend\/src\/main\/java\/com\/masai\/exception","parentWorkspace":"C:\/Users\/LENOVO\/Desktop\/ECommerce-SpringBoot-Backend-Project","name":"ErrorDetails.java","lastModified":1654280840973,"locationURI":"file:\/C:\/Users\/LENOVO\/Desktop\/ECommerce-SpringBoot-Backend-Project\/E-Commerce-Backend\/src\/main\/java\/com\/masai\/exception\/ErrorDetails.java"},{"path":"\/E-Commerce-Backend\/src\/main\/java\/com\/masai\/exception","parentWorkspace":"C:\/Users\/LENOVO\/Desktop\/ECommerce-SpringBoot-Backend-Project","name":"GlobalExceptionHandler.java","lastModified":1654280840973,"locationURI":"file:\/C:\/Users\/LENOVO\/Desktop\/ECommerce-SpringBoot-Backend-Project\/E-Commerce-Backend\/src\/main\/java\/com\/masai\/exception\/GlobalExceptionHandler.java"},{"path":"\/E-Commerce-Backend","parentWorkspace":"C:\/Users\/LENOVO\/Desktop\/ECommerce-SpringBoot-Backend-Project","name":"pom.xml","lastModified":1654280839373,"locationURI":"file:\/C:\/Users\/LENOVO\/Desktop\/ECommerce-SpringBoot-Backend-Project\/E-Commerce-Backend\/pom.xml"}]} -------------------------------------------------------------------------------- /.metadata/.plugins/org.eclipse.core.runtime/.settings/org.python.pydev.prefs: -------------------------------------------------------------------------------- 1 | BACKQUOTES_COLOR=216,216,216 2 | BACKQUOTES_STYLE=0 3 | CLASS_NAME_COLOR=210,82,82 4 | CLASS_NAME_STYLE=0 5 | CODE_COLOR=216,216,216 6 | CODE_STYLE=0 7 | COMMENT_COLOR=199,221,12 8 | COMMENT_STYLE=0 9 | DECORATOR_COLOR=255,255,255 10 | DECORATOR_STYLE=0 11 | EDITOR_MATCHING_BRACKETS_COLOR=216,216,216 12 | EDITOR_MATCHING_BRACKETS_STYLE=0 13 | FUNC_NAME_COLOR=255,255,255 14 | FUNC_NAME_STYLE=0 15 | KEYWORD_COLOR=141,203,226 16 | KEYWORD_STYLE=0 17 | NUMBER_COLOR=127,179,71 18 | NUMBER_STYLE=0 19 | OPERATORS_COLOR=216,216,216 20 | OPERATORS_STYLE=0 21 | PARENS_COLOR=216,216,216 22 | PARENS_STYLE=0 23 | SELF_COLOR=141,203,226 24 | SELF_STYLE=0 25 | STRING_COLOR=255,198,0 26 | STRING_STYLE=0 27 | eclipse.preferences.version=1 28 | overriddenByCSS=,STRING_COLOR,NUMBER_STYLE,COMMENT_COLOR,EDITOR_MATCHING_BRACKETS_COLOR,FUNC_NAME_COLOR,OPERATORS_COLOR,SELF_COLOR,PARENS_COLOR,CLASS_NAME_STYLE,CODE_COLOR,PARENS_STYLE,KEYWORD_COLOR,STRING_STYLE,EDITOR_MATCHING_BRACKETS_STYLE,CLASS_NAME_COLOR,BACKQUOTES_STYLE,NUMBER_COLOR,OPERATORS_STYLE,BACKQUOTES_COLOR,DECORATOR_COLOR,KEYWORD_STYLE,FUNC_NAME_STYLE,DECORATOR_STYLE,CODE_STYLE,SELF_STYLE,COMMENT_STYLE, 29 | -------------------------------------------------------------------------------- /E-Commerce-Backend/src/main/java/com/masai/service/OrderService.java: -------------------------------------------------------------------------------- 1 | package com.masai.service; 2 | 3 | import java.time.LocalDate; 4 | import java.util.List; 5 | 6 | import com.masai.exception.CustomerNotFoundException; 7 | import com.masai.exception.LoginException; 8 | import com.masai.exception.OrderException; 9 | import com.masai.models.Customer; 10 | import com.masai.models.Order; 11 | import com.masai.models.OrderDTO; 12 | 13 | public interface OrderService { 14 | public Order saveOrder(OrderDTO odto,String token) throws LoginException, OrderException; 15 | 16 | public Order getOrderByOrderId(Integer OrderId) throws OrderException; 17 | 18 | public List getAllOrders() throws OrderException; 19 | 20 | public Order cancelOrderByOrderId(Integer OrderId,String token) throws OrderException; 21 | 22 | public Order updateOrderByOrder(OrderDTO order,Integer OrderId,String token) throws OrderException,LoginException; 23 | 24 | public List getAllOrdersByDate(LocalDate date) throws OrderException; 25 | 26 | public Customer getCustomerByOrderid(Integer orderId) throws OrderException; 27 | 28 | //public Customer getCustomerIdByToken(String token) throws CustomerNotFoundException; 29 | 30 | 31 | 32 | } 33 | -------------------------------------------------------------------------------- /.metadata/.plugins/org.eclipse.core.runtime/.settings/eclihx.ui.prefs: -------------------------------------------------------------------------------- 1 | eclipse.preferences.version=1 2 | hx_editor_brace_color=216,216,216 3 | hx_editor_bracket_color=216,216,216 4 | hx_editor_comment_color=199,221,12 5 | hx_editor_conditional_compilation_color=141,203,226 6 | hx_editor_declare_keywords_color=141,203,226 7 | hx_editor_default_color=216,216,216 8 | hx_editor_haxe_doc_color=204,223,50 9 | hx_editor_keywords_color=141,203,226 10 | hx_editor_multiline_comment_color=199,221,12 11 | hx_editor_number_color=127,179,71 12 | hx_editor_regexpr_color=216,216,216 13 | hx_editor_string_color=255,198,0 14 | hx_editor_template_color=255,198,0 15 | hx_editor_type_color=210,82,82 16 | hxml_editor_comment_color=199,221,12 17 | hxml_editor_default_color=216,216,216 18 | hxml_editor_option_color=141,203,226 19 | overriddenByCSS=,hx_editor_comment_color,hx_editor_bracket_color,hx_editor_type_color,hx_editor_template_color,hx_editor_haxe_doc_color,hx_editor_default_color,hx_editor_string_color,hx_editor_conditional_compilation_color,hx_editor_declare_keywords_color,hx_editor_keywords_color,hxml_editor_comment_color,hxml_editor_default_color,hxml_editor_option_color,hx_editor_regexpr_color,hx_editor_number_color,hx_editor_brace_color,hx_editor_multiline_comment_color, 20 | -------------------------------------------------------------------------------- /E-Commerce-Backend/src/main/java/com/masai/ECommerceBackendApplication.java: -------------------------------------------------------------------------------- 1 | package com.masai; 2 | 3 | import org.springframework.beans.factory.annotation.Value; 4 | import org.springframework.boot.SpringApplication; 5 | import org.springframework.boot.autoconfigure.SpringBootApplication; 6 | import org.springframework.context.annotation.Bean; 7 | 8 | import io.swagger.v3.oas.models.Components; 9 | import io.swagger.v3.oas.models.OpenAPI; 10 | import io.swagger.v3.oas.models.info.Info; 11 | import io.swagger.v3.oas.models.info.License; 12 | import io.swagger.v3.oas.models.security.SecurityScheme; 13 | 14 | 15 | @SpringBootApplication 16 | public class ECommerceBackendApplication { 17 | 18 | public static void main(String[] args) { 19 | SpringApplication.run(ECommerceBackendApplication.class, args); 20 | } 21 | 22 | @Bean 23 | public OpenAPI customOpenAPI(@Value("${springdoc.version}") String appVersion) { 24 | return new OpenAPI() 25 | .components(new Components().addSecuritySchemes("basicScheme", 26 | new SecurityScheme().type(SecurityScheme.Type.HTTP).scheme("basic"))) 27 | .info(new Info().title("E-Commerce Application REST API").version(appVersion) 28 | .license(new License().name("Apache 2.0").url("http://springdoc.org"))); 29 | } 30 | 31 | } 32 | -------------------------------------------------------------------------------- /.metadata/.plugins/org.eclipse.core.runtime/.settings/com.wolfram.eclipse.MEET.prefs: -------------------------------------------------------------------------------- 1 | eclipse.preferences.version=1 2 | overriddenByCSS=,syntaxcolor.private.non.system.symbol,syntaxcolor.symbol.conflict.local,syntaxcolor.live.bracket.matching.color,syntaxcolor.public.non.system.symbols,syntaxcolor.live.bracket.matching.italic,syntaxcolor.live.bracket.matching.strikethrough,syntaxcolor.symbol.package,syntaxcolor.symbol.system,syntaxcolor.symbol.local,syntaxcolor.number.literal,syntaxcolor.live.bracket.matching.underline,syntaxcolor.live.bracket.matching.enabled,syntaxcolor.comment,syntaxcolor.string.literal,syntaxcolor.live.bracket.matching.bold, 3 | syntaxcolor.comment=199,221,12 4 | syntaxcolor.live.bracket.matching.bold=false 5 | syntaxcolor.live.bracket.matching.color=255,198,0 6 | syntaxcolor.live.bracket.matching.enabled=true 7 | syntaxcolor.live.bracket.matching.italic=false 8 | syntaxcolor.live.bracket.matching.strikethrough=false 9 | syntaxcolor.live.bracket.matching.underline=false 10 | syntaxcolor.number.literal=127,179,71 11 | syntaxcolor.private.non.system.symbol=190,214,255 12 | syntaxcolor.public.non.system.symbols=210,82,82 13 | syntaxcolor.string.literal=255,198,0 14 | syntaxcolor.symbol.conflict.local=210,82,82 15 | syntaxcolor.symbol.local=121,171,255 16 | syntaxcolor.symbol.package=190,214,255 17 | syntaxcolor.symbol.system=141,203,226 18 | -------------------------------------------------------------------------------- /.metadata/.plugins/org.eclipse.core.runtime/.settings/com.dubture.twig.ui.prefs: -------------------------------------------------------------------------------- 1 | codeStyleNormal=\#D8D8D8 | null | null | null | null | null 2 | eclipse.preferences.version=1 3 | editorBlocknameColor=\#8DCBE2 | null | null | null | null | null 4 | editorColorBoundarymaker=\#D8D8D8 | null | null | null | null | null 5 | editorColorComment=\#C7DD0C | null | null | false | null | null 6 | editorColorHeredoc=\#CCDF32 | null | null | false | null | null 7 | editorColorKeyword=\#8DCBE2 | null | null | null | null | null 8 | editorColorLineComment=\#C7DD0C | null | null | false | null | null 9 | editorColorNumber=\#7FB347 | null | null | null | null | null 10 | editorColorPHPDocComment=\#CCDF32 | null | null | false | null | null 11 | editorColorPhpdoc=\#CCDF32 | null | null | false | null | null 12 | editorColorString=\#FFC600 | null | null | null | null | null 13 | editorColorTask=\#CCDF32 | null | null | false | null | null 14 | editorColorVariable=\#79ABFF | null | null | null | null | null 15 | editorStmtColorBoundarymaker=\#D8D8D8 | null | null | null | null | null 16 | overriddenByCSS=,editorColorHeredoc,editorColorPhpdoc,codeStyleNormal,editorColorComment,editorColorTask,editorColorVariable,editorBlocknameColor,editorColorBoundarymaker,editorColorPHPDocComment,editorColorString,editorStmtColorBoundarymaker,editorColorKeyword,editorColorLineComment,editorColorNumber, 17 | -------------------------------------------------------------------------------- /.metadata/.plugins/org.eclipse.core.runtime/.settings/com.puppetlabs.geppetto.module.dsl.Module.prefs: -------------------------------------------------------------------------------- 1 | com.puppetlabs.geppetto.module.dsl.Module.syntaxColorer.tokenStyles.default.color=216,216,216 2 | com.puppetlabs.geppetto.module.dsl.Module.syntaxColorer.tokenStyles.deprecatedKey.color=210,82,82 3 | com.puppetlabs.geppetto.module.dsl.Module.syntaxColorer.tokenStyles.keyword.color=141,203,226 4 | com.puppetlabs.geppetto.module.dsl.Module.syntaxColorer.tokenStyles.number.color=127,179,71 5 | com.puppetlabs.geppetto.module.dsl.Module.syntaxColorer.tokenStyles.punctuation.color=216,216,216 6 | com.puppetlabs.geppetto.module.dsl.Module.syntaxColorer.tokenStyles.string.color=255,198,0 7 | com.puppetlabs.geppetto.module.dsl.Module.syntaxColorer.tokenStyles.task.color=204,223,50 8 | eclipse.preferences.version=1 9 | overriddenByCSS=,com.puppetlabs.geppetto.module.dsl.Module.syntaxColorer.tokenStyles.default.color,com.puppetlabs.geppetto.module.dsl.Module.syntaxColorer.tokenStyles.keyword.color,com.puppetlabs.geppetto.module.dsl.Module.syntaxColorer.tokenStyles.task.color,com.puppetlabs.geppetto.module.dsl.Module.syntaxColorer.tokenStyles.deprecatedKey.color,com.puppetlabs.geppetto.module.dsl.Module.syntaxColorer.tokenStyles.number.color,com.puppetlabs.geppetto.module.dsl.Module.syntaxColorer.tokenStyles.string.color,com.puppetlabs.geppetto.module.dsl.Module.syntaxColorer.tokenStyles.punctuation.color, 10 | -------------------------------------------------------------------------------- /E-Commerce-Backend/src/main/java/com/masai/models/CustomerUpdateDTO.java: -------------------------------------------------------------------------------- 1 | package com.masai.models; 2 | 3 | import java.util.HashMap; 4 | import java.util.Map; 5 | 6 | import javax.persistence.Column; 7 | import javax.validation.constraints.Email; 8 | import javax.validation.constraints.NotNull; 9 | import javax.validation.constraints.Pattern; 10 | 11 | import lombok.AllArgsConstructor; 12 | import lombok.Data; 13 | import lombok.NoArgsConstructor; 14 | import lombok.ToString; 15 | 16 | 17 | @NoArgsConstructor 18 | @AllArgsConstructor 19 | @Data 20 | @ToString 21 | public class CustomerUpdateDTO { 22 | 23 | @Pattern(regexp = "[A-Za-z.\\s]+", message = "Enter valid characters in first name") 24 | private String firstName; 25 | 26 | @Pattern(regexp = "[A-Za-z.\\s]+", message = "Enter valid characters in last name") 27 | private String lastName; 28 | 29 | @NotNull(message = "Please enter the mobile Number") 30 | @Pattern(regexp = "[6789]{1}[0-9]{9}", message = "Enter valid 10 digit mobile number") 31 | private String mobileNo; 32 | 33 | 34 | @Column(unique = true) 35 | @Email 36 | private String emailId; 37 | 38 | @Pattern(regexp = "[A-Za-z0-9!@#$%^&*_]{8,15}", message = "Password must be 8-15 characters in length and can include A-Z, a-z, 0-9, or special characters !@#$%^&*_") 39 | private String password; 40 | 41 | private Map address = new HashMap<>(); 42 | 43 | } 44 | -------------------------------------------------------------------------------- /E-Commerce-Backend/src/main/java/com/masai/repository/ProductDao.java: -------------------------------------------------------------------------------- 1 | package com.masai.repository; 2 | 3 | import java.util.List; 4 | 5 | import org.springframework.data.jpa.repository.JpaRepository; 6 | import org.springframework.data.jpa.repository.Query; 7 | import org.springframework.data.repository.query.Param; 8 | import org.springframework.stereotype.Repository; 9 | 10 | import com.masai.models.CategoryEnum; 11 | import com.masai.models.Product; 12 | import com.masai.models.ProductDTO; 13 | import com.masai.models.ProductStatus; 14 | 15 | 16 | @Repository 17 | public interface ProductDao extends JpaRepository { 18 | 19 | 20 | @Query("select new com.masai.models.ProductDTO(p.productName,p.manufacturer,p.price,p.quantity) " 21 | + "from Product p where p.category=:catenum") 22 | public List getAllProductsInACategory(@Param("catenum") CategoryEnum catenum); 23 | 24 | 25 | @Query("select new com.masai.models.ProductDTO(p.productName,p.manufacturer,p.price,p.quantity) " 26 | + "from Product p where p.status=:status") 27 | public List getProductsWithStatus(@Param("status") ProductStatus status); 28 | 29 | @Query("select new com.masai.models.ProductDTO(p.productName,p.manufacturer,p.price,p.quantity) " 30 | + "from Product p where p.seller.sellerId=:id") 31 | public List getProductsOfASeller(@Param("id") Integer id); 32 | 33 | 34 | } 35 | -------------------------------------------------------------------------------- /.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.e4.CSS.prefs: -------------------------------------------------------------------------------- 1 | eclipse.preferences.version=1 2 | org.eclipse.e4.CSS.syntaxColorer.tokenStyles.ClassID.color=255,255,255 3 | org.eclipse.e4.CSS.syntaxColorer.tokenStyles.Declaration.color=190,214,255 4 | org.eclipse.e4.CSS.syntaxColorer.tokenStyles.Element.color=210,82,82 5 | org.eclipse.e4.CSS.syntaxColorer.tokenStyles.comment.color=199,221,12 6 | org.eclipse.e4.CSS.syntaxColorer.tokenStyles.default.color=216,216,216 7 | org.eclipse.e4.CSS.syntaxColorer.tokenStyles.error.color=204,223,50 8 | org.eclipse.e4.CSS.syntaxColorer.tokenStyles.keyword.color=141,203,226 9 | org.eclipse.e4.CSS.syntaxColorer.tokenStyles.number.color=127,179,71 10 | org.eclipse.e4.CSS.syntaxColorer.tokenStyles.punctuation.color=216,216,216 11 | org.eclipse.e4.CSS.syntaxColorer.tokenStyles.string.color=255,198,0 12 | overriddenByCSS=,org.eclipse.e4.CSS.syntaxColorer.tokenStyles.Element.color,org.eclipse.e4.CSS.syntaxColorer.tokenStyles.number.color,org.eclipse.e4.CSS.syntaxColorer.tokenStyles.Declaration.color,org.eclipse.e4.CSS.syntaxColorer.tokenStyles.error.color,org.eclipse.e4.CSS.syntaxColorer.tokenStyles.punctuation.color,org.eclipse.e4.CSS.syntaxColorer.tokenStyles.keyword.color,org.eclipse.e4.CSS.syntaxColorer.tokenStyles.comment.color,org.eclipse.e4.CSS.syntaxColorer.tokenStyles.default.color,org.eclipse.e4.CSS.syntaxColorer.tokenStyles.string.color,org.eclipse.e4.CSS.syntaxColorer.tokenStyles.ClassID.color, 13 | -------------------------------------------------------------------------------- /E-Commerce-Backend/src/main/java/com/masai/repository/OrderDao.java: -------------------------------------------------------------------------------- 1 | package com.masai.repository; 2 | 3 | import java.time.LocalDate; 4 | import java.util.List; 5 | 6 | import org.springframework.data.jpa.repository.JpaRepository; 7 | import org.springframework.data.jpa.repository.Query; 8 | import org.springframework.data.repository.query.Param; 9 | import org.springframework.stereotype.Repository; 10 | 11 | import com.masai.exception.CustomerNotFoundException; 12 | import com.masai.exception.OrderException; 13 | import com.masai.models.CartItem; 14 | import com.masai.models.Customer; 15 | import com.masai.models.Order; 16 | import com.masai.models.Product; 17 | 18 | @Repository 19 | public interface OrderDao extends JpaRepository { 20 | public List findByDate(LocalDate date); 21 | 22 | // @Query("select c.orders from Customer c where c.customerId = customerId") 23 | // public List getListOfOrdersByCustomerid(@Param("customerId") Integer customerId); 24 | 25 | @Query("select c from Customer c where c.customerId = customerId") 26 | public Customer getCustomerByOrderid(@Param("customerId") Integer customerId); 27 | 28 | // public List getListOfProductsByOrderId(Integer OrderId); 29 | 30 | 31 | 32 | // @Query("update Order o set o.orderStatus =OrderStatusValues.CANCELLED WHERE o.OrderId=OrderId ") 33 | // public Order CancelOrderByOrderId(@Param("OrderId") Integer OrderId); 34 | 35 | 36 | } 37 | -------------------------------------------------------------------------------- /.metadata/.plugins/org.eclipse.core.runtime/.settings/org.cfeclipse.cfml.prefs: -------------------------------------------------------------------------------- 1 | AbstractTextEditor.Color.Background=25,29,31 2 | SQLCommentColor=199,221,12 3 | SQLKeywordColor=141,203,226 4 | SQLOperatorColor=216,216,216 5 | SQLStringColor=255,198,0 6 | SQLTextColor=216,216,216 7 | cfcommentBackgroundColor=25,29,31 8 | cfcommentColor=199,221,12 9 | cfkeywordColor=141,203,226 10 | cfnumberColor=127,179,71 11 | cfscriptKeywordColor=141,203,226 12 | cfscriptStringColor=255,198,0 13 | cfscriptTextColor=216,216,216 14 | cfscriptfunctionColor=255,255,255 15 | cfstringColor=255,198,0 16 | cftagColor=121,171,255 17 | cftaglibColor=217,229,119 18 | cssTextColor=216,216,216 19 | currentLineColor=50,57,62 20 | defaultTextColor=216,216,216 21 | eclipse.preferences.version=1 22 | htmCommentColor=199,221,12 23 | htmFormTagColor=121,171,255 24 | htmTableTagColor=121,171,255 25 | htmTagColor=121,171,255 26 | javascriptColor=216,216,216 27 | javascriptFunction=255,255,255 28 | overriddenByCSS=,cfscriptKeywordColor,javascriptFunction,cftaglibColor,htmFormTagColor,cssTextColor,SQLOperatorColor,htmTableTagColor,cfcommentBackgroundColor,currentLineColor,htmCommentColor,cfscriptTextColor,cfscriptfunctionColor,cfscriptStringColor,javascriptColor,cftagColor,AbstractTextEditor.Color.Background,unknowTagColors,cfstringColor,SQLCommentColor,htmTagColor,SQLStringColor,cfnumberColor,cfkeywordColor,SQLTextColor,defaultTextColor,SQLKeywordColor,cfcommentColor,stringColor, 29 | stringColor=255,198,0 30 | unknowTagColors=210,82,82 31 | -------------------------------------------------------------------------------- /.metadata/.plugins/org.eclipse.core.runtime/.settings/org.sweetlemonade.eclipse.json.prefs: -------------------------------------------------------------------------------- 1 | colorArrayBracket=121,171,255 2 | colorArrayBracketEnabled=true 3 | colorArrayBracketStyle=0 4 | colorBoolean=141,203,226 5 | colorBooleanEnabled=true 6 | colorBooleanStyle=0 7 | colorBracket=121,171,255 8 | colorBracketEnabled=true 9 | colorBracketStyle=0 10 | colorDefault=216,216,216 11 | colorDefaultEnabled=true 12 | colorDefaultStyle=0 13 | colorKey=190,214,255 14 | colorKeyEnabled=true 15 | colorKeyStyle=0 16 | colorMatchBracket=121,171,255 17 | colorMatchBracketEnabled=true 18 | colorMatchBracketStyle=0 19 | colorNull=141,203,226 20 | colorNullEnabled=true 21 | colorNullStyle=0 22 | colorNumber=127,179,71 23 | colorNumberEnabled=true 24 | colorNumberStyle=0 25 | colorObjectBracket=121,171,255 26 | colorObjectBracketEnabled=true 27 | colorObjectBracketStyle=0 28 | colorString=255,198,0 29 | colorStringEnabled=true 30 | colorStringStyle=0 31 | eclipse.preferences.version=1 32 | overriddenByCSS=,colorObjectBracket,colorNumberStyle,colorArrayBracketEnabled,colorNumber,colorMatchBracketEnabled,colorNull,colorKeyEnabled,colorDefault,colorBooleanEnabled,colorObjectBracketStyle,colorBracketStyle,colorObjectBracketEnabled,colorDefaultEnabled,colorDefaultStyle,colorKeyStyle,colorMatchBracket,colorNullStyle,colorBoolean,colorString,colorArrayBracket,colorMatchBracketStyle,colorBooleanStyle,colorBracketEnabled,colorStringEnabled,colorBracket,colorKey,colorArrayBracketStyle,colorNullEnabled,colorStringStyle,colorNumberEnabled, 33 | -------------------------------------------------------------------------------- /.metadata/.plugins/org.eclipse.core.runtime/.settings/org.erlide.ui.prefs: -------------------------------------------------------------------------------- 1 | //editor/colors/arrowcolor=216,216,216 2 | //editor/colors/arrowstyle=0 3 | //editor/colors/atomcolor=216,216,216 4 | //editor/colors/atomstyle=0 5 | //editor/colors/charcolor=255,198,0 6 | //editor/colors/charstyle=0 7 | //editor/colors/commentcolor=199,221,12 8 | //editor/colors/commentstyle=0 9 | //editor/colors/defaultcolor=216,216,216 10 | //editor/colors/defaultstyle=0 11 | //editor/colors/floatcolor=127,179,71 12 | //editor/colors/floatstyle=0 13 | //editor/colors/integercolor=127,179,71 14 | //editor/colors/integerstyle=0 15 | //editor/colors/keywordcolor=141,203,226 16 | //editor/colors/keywordstyle=0 17 | //editor/colors/macrocolor=239,192,144 18 | //editor/colors/macrostyle=0 19 | //editor/colors/stringcolor=255,198,0 20 | //editor/colors/stringstyle=0 21 | //editor/colors/variablecolor=121,171,255 22 | //editor/colors/variablestyle=0 23 | eclipse.preferences.version=1 24 | overriddenByCSS=,editor/colors/integercolor,editor/colors/floatcolor,editor/colors/keywordcolor,editor/colors/stringcolor,editor/colors/macrostyle,editor/colors/atomcolor,editor/colors/commentstyle,editor/colors/arrowstyle,editor/colors/arrowcolor,editor/colors/defaultcolor,editor/colors/keywordstyle,editor/colors/macrocolor,editor/colors/floatstyle,editor/colors/charcolor,editor/colors/stringstyle,editor/colors/integerstyle,editor/colors/charstyle,editor/colors/variablecolor,editor/colors/variablestyle,editor/colors/commentcolor,editor/colors/defaultstyle,editor/colors/atomstyle, 25 | -------------------------------------------------------------------------------- /.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.wst.css.ui.prefs: -------------------------------------------------------------------------------- 1 | ATMARK_RULE=\#FFFFFF | null | null | null | null | null 2 | ATTRIBUTE_DELIM=\#FFFFFF | null | null | null | null | null 3 | ATTRIBUTE_NAME=\#FFFFFF | null | null | null | null | null 4 | ATTRIBUTE_OPERATOR=\#FFFFFF | null | null | null | null | null 5 | ATTRIBUTE_VALUE=\#FFFFFF | null | null | null | null | null 6 | CLASS=\#FFFFFF | null | null | null | null | null 7 | COLON=\#D8D8D8 | null | null | null | null | null 8 | COMBINATOR=\#FFFFFF | null | null | null | null | null 9 | COMMENT=\#C7DD0C | null | null | false | null | null 10 | CURLY_BRACE=\#D8D8D8 | null | null | null | null | null 11 | ID=\#FFFFFF | null | null | null | null | null 12 | MEDIA=\#8DCBE2 | null | null | null | null | null 13 | NORMAL=\#D8D8D8 | null | null | null | null | null 14 | PROPERTY_NAME=\#BED6FF | null | null | null | null | null 15 | PROPERTY_VALUE=\#FFC600 | null | null | null | null | null 16 | PSEUDO=\#FFFFFF | null | null | null | null | null 17 | SELECTOR=\#FFFFFF | null | null | null | null | null 18 | SEMI_COLON=\#D8D8D8 | null | null | null | null | null 19 | STRING=\#FFC600 | null | null | null | null | null 20 | UNIVERSAL=\#FFFFFF | null | null | null | null | null 21 | URI=\#FFC600 | null | null | null | null | null 22 | eclipse.preferences.version=1 23 | overriddenByCSS=,ATTRIBUTE_DELIM,UNIVERSAL,ATTRIBUTE_VALUE,COLON,CLASS,PSEUDO,PROPERTY_VALUE,URI,PROPERTY_NAME,COMMENT,CURLY_BRACE,ATTRIBUTE_NAME,ATMARK_RULE,COMBINATOR,SELECTOR,STRING,MEDIA,SEMI_COLON,ID,NORMAL,ATTRIBUTE_OPERATOR, 24 | -------------------------------------------------------------------------------- /.metadata/.plugins/com.genuitec.eclipse.ui.common.platform/colors-org.eclipse.epp.mpc.ui.css--1027399938.css: -------------------------------------------------------------------------------- 1 | 2 | 3 | .MarketplaceViewer, 4 | .MarketplaceViewer > *, 5 | .MarketplaceItem, 6 | .MarketplaceItem * { 7 | background-color: #32393e; 8 | color: #d8dcdf; 9 | } 10 | 11 | .MarketplaceItem Link { 12 | color: #86939c; 13 | } 14 | .MarketplaceItem .disabled { 15 | color: #a0aab1; 16 | } 17 | 18 | .TagsToolTip, 19 | .TagsToolTip * { 20 | background-color: #49535a; 21 | color: #d8dcdf; 22 | } 23 | 24 | .NotificationItem, 25 | .NotificationItem * { 26 | background-color: #4d5c6c; 27 | color: #9ac9d8; 28 | } 29 | 30 | .CatalogSwitcher, 31 | .CatalogSwitcher > ScrolledComposite, 32 | .CatalogSwitcher > ScrolledComposite > *, 33 | .Catalog, 34 | .Catalog > * { 35 | background-color: #32393e; 36 | color: #d8dcdf; 37 | } 38 | 39 | .Catalog:checked, 40 | .Catalog:checked > * { 41 | background-color: COLOR-LIST-SELECTION; 42 | } 43 | 44 | #MarketplacePage CTabItem:selected, 45 | #MarketplaceContent, 46 | .MarketplaceSearchHeader, 47 | .MarketplaceSearchHeader > Label { 48 | background-color: '#org-eclipse-ui-workbench-ACTIVE_TAB_BG_END'; 49 | } 50 | 51 | #MarketplacePage CategoryItem, 52 | #MarketplacePage CategoryItem > GradientCanvas, 53 | #MarketplacePage CategoryItem > GradientCanvas > Label { 54 | /* SWT-BUG workaround: a style for background is not applied on GradientCanvas (CSS engine repaint issue) */ 55 | background: '#org-eclipse-ui-workbench-ACTIVE_TAB_BG_END'; 56 | background-image: '#org-eclipse-ui-workbench-ACTIVE_TAB_BG_END'; 57 | background-color: '#org-eclipse-ui-workbench-ACTIVE_TAB_BG_END'; 58 | color: #d8dcdf; 59 | } 60 | -------------------------------------------------------------------------------- /.metadata/.plugins/com.genuitec.eclipse.ui.common.platform/colors-org.eclipse.jdt.ui-326703266.css: -------------------------------------------------------------------------------- 1 | /******************************************************************************* 2 | * Copyright (c) 2014, 2020 Lars Vogel and others. 3 | * 4 | * This program and the accompanying materials 5 | * are made available under the terms of the Eclipse Public License 2.0 6 | * which accompanies this distribution, and is available at 7 | * https://www.eclipse.org/legal/epl-2.0/ 8 | * 9 | * SPDX-License-Identifier: EPL-2.0 10 | * 11 | * Contributors: 12 | * Lars Vogel - initial API and implementation 13 | * Andrea Guarinoni - intial color schema definition 14 | *******************************************************************************/ 15 | 16 | /* ############################## JDT syntax highlighting ############################## */ 17 | 18 | 19 | 20 | 21 | BulletListBlock > StyledText { 22 | background-color: #394146; 23 | color: #b3bbc1; 24 | } 25 | 26 | FormatterPreferenceSectionComposite { 27 | background-color:#49535a; 28 | color:#ebedef; 29 | swt-titlebar-color: #c7cdd1; 30 | } 31 | 32 | #BreadcrumbComposite > Composite, 33 | #BreadcrumbItemComposite, 34 | #BreadcrumbItemDetailComposite, 35 | #BreadcrumbItemDetailTextComposite, 36 | #BreadcrumbItemDetailImageComposite, 37 | #BreadcrumbItemDetailTextLabel, 38 | #BreadcrumbItemDetailImageLabel, 39 | #BreadcrumbItemDropDownToolBar 40 | { 41 | /* 42 | * Bug 465666 43 | * 44 | * Note: as we can't change the arrow to black, we configure 45 | * the background with the lighter color used for the background 46 | * of toolbars and make the foreground color brighter too. 47 | */ 48 | background-color:#49535a; 49 | color: white; 50 | } 51 | -------------------------------------------------------------------------------- /E-Commerce-Backend/src/main/java/com/masai/service/CustomerService.java: -------------------------------------------------------------------------------- 1 | package com.masai.service; 2 | 3 | import java.util.List; 4 | 5 | import com.masai.exception.CustomerException; 6 | import com.masai.exception.CustomerNotFoundException; 7 | import com.masai.models.Address; 8 | import com.masai.models.CreditCard; 9 | import com.masai.models.Customer; 10 | import com.masai.models.CustomerDTO; 11 | import com.masai.models.CustomerUpdateDTO; 12 | import com.masai.models.Order; 13 | import com.masai.models.SessionDTO; 14 | 15 | public interface CustomerService { 16 | 17 | public Customer addCustomer(Customer customer) throws CustomerException; 18 | 19 | public Customer getLoggedInCustomerDetails(String token) throws CustomerNotFoundException; 20 | 21 | public List getAllCustomers(String token) throws CustomerNotFoundException; 22 | 23 | public Customer updateCustomer(CustomerUpdateDTO customer, String token) throws CustomerNotFoundException; 24 | 25 | public Customer updateCustomerMobileNoOrEmailId(CustomerUpdateDTO customerUpdateDTO, String token) throws CustomerNotFoundException; 26 | 27 | public Customer updateCreditCardDetails(String token, CreditCard card) throws CustomerException; 28 | 29 | public SessionDTO updateCustomerPassword(CustomerDTO customerDTO, String token) throws CustomerNotFoundException; 30 | 31 | public SessionDTO deleteCustomer(CustomerDTO customerDTO, String token) throws CustomerNotFoundException; 32 | 33 | public Customer updateAddress(Address address, String type, String token) throws CustomerException; 34 | 35 | public Customer deleteAddress(String type, String token) throws CustomerException, CustomerNotFoundException; 36 | 37 | public List getCustomerOrders(String token) throws CustomerException; 38 | 39 | } 40 | -------------------------------------------------------------------------------- /E-Commerce-Backend/src/main/java/com/masai/models/Seller.java: -------------------------------------------------------------------------------- 1 | package com.masai.models; 2 | 3 | 4 | import java.util.List; 5 | 6 | import javax.persistence.Column; 7 | import javax.persistence.Entity; 8 | import javax.persistence.GeneratedValue; 9 | import javax.persistence.GenerationType; 10 | import javax.persistence.Id; 11 | import javax.persistence.OneToMany; 12 | import javax.validation.constraints.Email; 13 | import javax.validation.constraints.NotNull; 14 | import javax.validation.constraints.Pattern; 15 | 16 | import com.fasterxml.jackson.annotation.JsonIgnore; 17 | 18 | import lombok.AllArgsConstructor; 19 | import lombok.Getter; 20 | import lombok.NoArgsConstructor; 21 | import lombok.Setter; 22 | 23 | @Entity 24 | @Getter 25 | @Setter 26 | @NoArgsConstructor 27 | @AllArgsConstructor 28 | public class Seller { 29 | @Id 30 | @GeneratedValue(strategy = GenerationType.AUTO) 31 | private Integer sellerId; 32 | 33 | @NotNull(message="Please enter the first name") 34 | @Pattern(regexp="[A-Za-z\\s]+", message="First Name should contains alphabets only") 35 | private String firstName; 36 | 37 | @NotNull(message="Please enter the last name") 38 | @Pattern(regexp="[A-Za-z\\s]+", message="First Name should contains alphabets only") 39 | private String lastName; 40 | 41 | @Pattern(regexp="[A-Za-z0-9!@#$%^&*_]{8,15}", message="Please Enter a valid Password") 42 | private String password; 43 | 44 | @NotNull(message="Please enter your mobile Number") 45 | @Pattern(regexp="[6789]{1}[0-9]{9}", message="Enter a valid Mobile Number") 46 | @Column(unique = true) 47 | private String mobile; 48 | 49 | 50 | @Email 51 | @Column(unique = true) 52 | private String emailId; 53 | 54 | 55 | @OneToMany 56 | @JsonIgnore 57 | private List product; 58 | 59 | 60 | } 61 | -------------------------------------------------------------------------------- /E-Commerce-Backend/src/main/java/com/masai/models/Order.java: -------------------------------------------------------------------------------- 1 | package com.masai.models; 2 | 3 | import java.time.LocalDate; 4 | import java.util.ArrayList; 5 | import java.util.List; 6 | 7 | import javax.persistence.CascadeType; 8 | import javax.persistence.Entity; 9 | import javax.persistence.EnumType; 10 | import javax.persistence.Enumerated; 11 | import javax.persistence.GeneratedValue; 12 | import javax.persistence.GenerationType; 13 | import javax.persistence.Id; 14 | import javax.persistence.JoinColumn; 15 | import javax.persistence.ManyToOne; 16 | import javax.persistence.OneToMany; 17 | import javax.persistence.Table; 18 | import javax.validation.constraints.NotNull; 19 | import javax.validation.constraints.PastOrPresent; 20 | 21 | import com.fasterxml.jackson.annotation.JsonIgnore; 22 | 23 | import lombok.AllArgsConstructor; 24 | import lombok.Data; 25 | import lombok.Getter; 26 | import lombok.NoArgsConstructor; 27 | import lombok.Setter; 28 | import lombok.ToString; 29 | 30 | @Setter 31 | @Getter 32 | @NoArgsConstructor 33 | @AllArgsConstructor 34 | @ToString 35 | @Entity 36 | @Table(name="orders") 37 | public class Order { 38 | @Id 39 | @GeneratedValue(strategy = GenerationType.AUTO) 40 | private Integer orderId; 41 | @PastOrPresent 42 | private LocalDate date; 43 | @NotNull 44 | @Enumerated(EnumType.STRING) 45 | private OrderStatusValues orderStatus; 46 | 47 | private Double total; 48 | 49 | private String cardNumber; 50 | 51 | @JsonIgnore 52 | @ManyToOne 53 | @JoinColumn(name = "customer_id", referencedColumnName = "customerId") 54 | private Customer customer; 55 | 56 | @OneToMany 57 | private List ordercartItems = new ArrayList<>(); 58 | 59 | @ManyToOne 60 | @JoinColumn(name = "address_id", referencedColumnName = "addressId") 61 | private Address address; 62 | } 63 | -------------------------------------------------------------------------------- /.metadata/.plugins/com.genuitec.eclipse.ui.common.platform/colors-org.eclipse.egit.ui-1849137576.css: -------------------------------------------------------------------------------- 1 | /******************************************************************************* 2 | * Copyright (c) 2014, 2022 Andrea Guarinoni and others. 3 | * All rights reserved. This program and the accompanying materials 4 | * are made available under the terms of the Eclipse Public License 2.0 5 | * which accompanies this distribution, and is available at 6 | * https://www.eclipse.org/legal/epl-2.0/ 7 | * 8 | * SPDX-License-Identifier: EPL-2.0 9 | * 10 | * Contributors: 11 | * Andrea Guarinoni - initial API and implementation 12 | * Fabio Zadrozny - Bug 465672 - EGit staging view and commit page are not properly styled 13 | * Lars Vogel - Bug 466486 14 | *******************************************************************************/ 15 | 16 | /* ############################## EGIT preferences ############################## */ 17 | 18 | /* See bug 466075 about the pseudo-selector ":org-eclipse-egit-ui" */ 19 | 20 | /* 21 | * The default e4_dark_partstyle.css has .MPart Composite > StyledText with a lighter background. 22 | * Override this with a more specific selector. 23 | */ 24 | .MPart Composite > StyledText.org-eclipse-egit-ui-CommitAndDiffComponent { 25 | background-color: inherit; 26 | color: inherit; 27 | } 28 | 29 | /* 30 | * Use a darker background for the tables in the Git history page. The default dark theme assigns 31 | * a slightly lighter background otherwise; we want the default background color as is used for 32 | * other views (#272c30; decimal 39,44,48). 33 | */ 34 | Table.org-eclipse-egit-ui-GitHistoryPage { 35 | background-color: inherit; 36 | } 37 | 38 | /* 39 | * Same for the staged/unstaged tree viewers in the staging view. 40 | */ 41 | .MPart Section Tree.org-eclipse-egit-ui-StagingView { 42 | background-color: inherit; 43 | } 44 | -------------------------------------------------------------------------------- /.metadata/.plugins/org.eclipse.core.runtime/.settings/com.adobe.flexide.mxml.core.prefs: -------------------------------------------------------------------------------- 1 | asASDocBold=false 2 | asASDocColor=\#CCDF32 3 | asASDocItalic=false 4 | asASDocStrikethrough=false 5 | asASDocUnderline=false 6 | eclipse.preferences.version=1 7 | mxmlCommentBold=false 8 | mxmlCommentColor=\#C7DD0C 9 | mxmlCommentItalic=false 10 | mxmlCommentStrikethrough=false 11 | mxmlCommentUnderline=false 12 | mxmlComponentTagBold=false 13 | mxmlComponentTagColor=\#BED6FF 14 | mxmlComponentTagItalic=false 15 | mxmlComponentTagStrikethrough=false 16 | mxmlComponentTagUnderline=false 17 | mxmlProcessingInstructionBold=false 18 | mxmlProcessingInstructionColor=\#FFFFFF 19 | mxmlProcessingInstructionItalic=false 20 | mxmlProcessingInstructionStrikethrough=false 21 | mxmlProcessingInstructionUnderline=false 22 | mxmlStringBold=false 23 | mxmlStringColor=\#FFC600 24 | mxmlStringItalic=false 25 | mxmlStringStrikethrough=false 26 | mxmlStringUnderline=false 27 | mxmlTagBold=false 28 | mxmlTagColor=\#79ABFF 29 | mxmlTagItalic=false 30 | mxmlTagStrikethrough=false 31 | mxmlTagUnderline=false 32 | mxmlTextBold=false 33 | mxmlTextColor=\#D8D8D8 34 | mxmlTextItalic=false 35 | mxmlTextStrikethrough=false 36 | mxmlTextUnderline=false 37 | overriddenByCSS=,mxmlProcessingInstructionStrikethrough,mxmlProcessingInstructionBold,mxmlTextBold,mxmlComponentTagStrikethrough,mxmlTextUnderline,asASDocItalic,mxmlProcessingInstructionUnderline,mxmlTagColor,asASDocColor,mxmlCommentStrikethrough,mxmlComponentTagItalic,mxmlCommentItalic,mxmlTagUnderline,mxmlComponentTagBold,mxmlStringColor,mxmlTagBold,mxmlProcessingInstructionItalic,mxmlStringBold,mxmlStringUnderline,mxmlTextStrikethrough,mxmlCommentUnderline,mxmlStringItalic,asASDocUnderline,mxmlProcessingInstructionColor,mxmlStringStrikethrough,mxmlComponentTagColor,asASDocBold,mxmlTagStrikethrough,mxmlTextColor,mxmlTextItalic,mxmlTagItalic,asASDocStrikethrough,mxmlComponentTagUnderline,mxmlCommentColor,mxmlCommentBold, 38 | -------------------------------------------------------------------------------- /.metadata/.plugins/org.eclipse.m2e.logback.configuration/logback.1.16.3.20211002-1029.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | %date [%thread] %-5level %logger{35} - %msg%n 5 | 6 | 7 | OFF 8 | 9 | 10 | 11 | 12 | ${org.eclipse.m2e.log.dir}/0.log 13 | 14 | ${org.eclipse.m2e.log.dir}/%i.log 15 | 1 16 | 10 17 | 18 | 19 | 100MB 20 | 21 | 22 | %date [%thread] %-5level %logger{35} - %msg%n 23 | 24 | 25 | 26 | 27 | 28 | WARN 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | -------------------------------------------------------------------------------- /E-Commerce-Backend/src/main/java/com/masai/models/Address.java: -------------------------------------------------------------------------------- 1 | package com.masai.models; 2 | 3 | import javax.persistence.CascadeType; 4 | import javax.persistence.Entity; 5 | import javax.persistence.EnumType; 6 | import javax.persistence.Enumerated; 7 | import javax.persistence.GeneratedValue; 8 | import javax.persistence.GenerationType; 9 | import javax.persistence.Id; 10 | import javax.persistence.ManyToOne; 11 | import javax.validation.constraints.NotNull; 12 | import javax.validation.constraints.Pattern; 13 | 14 | import com.fasterxml.jackson.annotation.JsonIgnore; 15 | 16 | import lombok.AllArgsConstructor; 17 | import lombok.EqualsAndHashCode; 18 | import lombok.Getter; 19 | import lombok.NoArgsConstructor; 20 | import lombok.Setter; 21 | import lombok.ToString; 22 | 23 | @Getter 24 | @Setter 25 | @NoArgsConstructor 26 | @AllArgsConstructor 27 | @ToString 28 | @EqualsAndHashCode 29 | @Entity 30 | public class Address { 31 | 32 | @Id 33 | @GeneratedValue(strategy = GenerationType.AUTO) 34 | private Integer addressId; 35 | 36 | @Pattern(regexp = "[A-Za-z0-9\\s-]{3,}", message = "Not a valid street no") 37 | private String streetNo; 38 | 39 | @Pattern(regexp = "[A-Za-z0-9\\s-]{3,}", message = "Not a valid building name") 40 | private String buildingName; 41 | 42 | @NotNull 43 | @Pattern(regexp = "[A-Za-z0-9\\s-]{3,}", message = "Not a valid locality name") 44 | private String locality; 45 | 46 | @NotNull(message = "City name cannot be null") 47 | @Pattern(regexp = "[A-Za-z\\s]{2,}", message = "Not a valid city name") 48 | private String city; 49 | 50 | @NotNull(message = "State name cannot be null") 51 | private String state; 52 | 53 | @NotNull(message = "Pincode cannot be null") 54 | @Pattern(regexp = "[0-9]{6}", message = "Pincode not valid. Must be 6 digits") 55 | private String pincode; 56 | 57 | 58 | @ManyToOne(cascade = CascadeType.ALL) 59 | @JsonIgnore 60 | private Customer customer; 61 | 62 | 63 | } 64 | -------------------------------------------------------------------------------- /.metadata/.plugins/org.eclipse.core.runtime/.settings/com.github.rustdt.ide.ui.prefs: -------------------------------------------------------------------------------- 1 | eclipse.preferences.version=1 2 | editor.coloring2.attribute=255,255,255 3 | editor.coloring2.attribute\#dark\#=255,255,255 4 | editor.coloring2.character=255,198,0 5 | editor.coloring2.character\#dark\#=255,198,0 6 | editor.coloring2.comment=199,221,12 7 | editor.coloring2.comment\#dark\#=199,221,12 8 | editor.coloring2.default=216,216,216 9 | editor.coloring2.default\#dark\#=216,216,216 10 | editor.coloring2.doc_comment=204,223,50 11 | editor.coloring2.doc_comment\#dark\#=204,223,50 12 | editor.coloring2.keyword=141,203,226 13 | editor.coloring2.keyword\#dark\#=141,203,226 14 | editor.coloring2.keyword_boolean=141,203,226 15 | editor.coloring2.keyword_boolean\#dark\#=141,203,226 16 | editor.coloring2.keyword_self=210,82,82 17 | editor.coloring2.keyword_self\#dark\#=210,82,82 18 | editor.coloring2.lifetime=255,255,255 19 | editor.coloring2.lifetime\#dark\#=255,255,255 20 | editor.coloring2.macro_call=255,255,255 21 | editor.coloring2.macro_call\#dark\#=255,255,255 22 | editor.coloring2.number=127,179,71 23 | editor.coloring2.number\#dark\#=127,179,71 24 | editor.coloring2.string=255,198,0 25 | editor.coloring2.string\#dark\#=255,198,0 26 | overriddenByCSS=,editor.coloring2.number\#dark\#,editor.coloring2.string\#dark\#,editor.coloring2.keyword_self\#dark\#,editor.coloring2.default,editor.coloring2.lifetime\#dark\#,editor.coloring2.character\#dark\#,editor.coloring2.keyword_self,editor.coloring2.attribute,editor.coloring2.character,editor.coloring2.attribute\#dark\#,editor.coloring2.keyword,editor.coloring2.default\#dark\#,editor.coloring2.keyword\#dark\#,editor.coloring2.string,editor.coloring2.macro_call\#dark\#,editor.coloring2.macro_call,editor.coloring2.comment\#dark\#,editor.coloring2.doc_comment\#dark\#,editor.coloring2.comment,editor.coloring2.keyword_boolean,editor.coloring2.number,editor.coloring2.keyword_boolean\#dark\#,editor.coloring2.doc_comment,editor.coloring2.lifetime, 27 | -------------------------------------------------------------------------------- /E-Commerce-Backend/src/main/java/com/masai/service/CartItemServiceImpl.java: -------------------------------------------------------------------------------- 1 | package com.masai.service; 2 | 3 | import org.springframework.beans.factory.annotation.Autowired; 4 | import org.springframework.stereotype.Service; 5 | 6 | import com.masai.exception.ProductNotFoundException; 7 | import com.masai.models.CartDTO; 8 | import com.masai.models.CartItem; 9 | import com.masai.models.Product; 10 | import com.masai.models.ProductStatus; 11 | import com.masai.repository.ProductDao; 12 | 13 | @Service 14 | public class CartItemServiceImpl implements CartItemService{ 15 | 16 | @Autowired 17 | ProductDao productDao; 18 | 19 | @Override 20 | public CartItem createItemforCart(CartDTO cartdto) { 21 | 22 | Product existingProduct = productDao.findById(cartdto.getProductId()).orElseThrow( () -> new ProductNotFoundException("Product Not found")); 23 | 24 | if(existingProduct.getStatus().equals(ProductStatus.OUTOFSTOCK) || existingProduct.getQuantity() == 0) { 25 | throw new ProductNotFoundException("Product OUT OF STOCK"); 26 | } 27 | 28 | CartItem newItem = new CartItem(); 29 | 30 | newItem.setCartItemQuantity(1); 31 | 32 | newItem.setCartProduct(existingProduct); 33 | 34 | return newItem; 35 | } 36 | 37 | // @Override 38 | // public CartItem addItemToCart(CartDTO cartdto) { 39 | // 40 | // // TODO Auto-generated method stub 41 | // 42 | //// Product existingProduct = productDao.findById(cartdto.getProductId()).orElseThrow( () -> new ProductException("Product Not found")); 43 | // 44 | // Optional opt = productDao.findById(cartdto.getProductId()); 45 | // 46 | // if(opt.isEmpty()) 47 | // throw new ProductNotFoundException("Product not found"); 48 | // 49 | // Product existingProduct = opt.get(); 50 | // 51 | // CartItem newItem = new CartItem(); 52 | // 53 | // newItem.setCartProduct(existingProduct); 54 | // 55 | // newItem.setCartItemQuantity(1); 56 | // 57 | // return newItem; 58 | // } 59 | 60 | } 61 | -------------------------------------------------------------------------------- /E-Commerce-Backend/src/main/java/com/masai/models/Product.java: -------------------------------------------------------------------------------- 1 | package com.masai.models; 2 | 3 | import javax.persistence.CascadeType; 4 | import javax.persistence.Entity; 5 | import javax.persistence.EnumType; 6 | import javax.persistence.Enumerated; 7 | import javax.persistence.FetchType; 8 | import javax.persistence.GeneratedValue; 9 | import javax.persistence.GenerationType; 10 | import javax.persistence.Id; 11 | import javax.persistence.ManyToOne; 12 | import javax.validation.constraints.DecimalMin; 13 | import javax.validation.constraints.Min; 14 | import javax.validation.constraints.NotNull; 15 | import javax.validation.constraints.Size; 16 | 17 | import com.fasterxml.jackson.annotation.JsonIgnore; 18 | 19 | import lombok.AllArgsConstructor; 20 | import lombok.EqualsAndHashCode; 21 | import lombok.Getter; 22 | import lombok.NoArgsConstructor; 23 | import lombok.Setter; 24 | import lombok.ToString; 25 | 26 | @Entity 27 | @Setter 28 | @Getter 29 | @AllArgsConstructor 30 | @NoArgsConstructor 31 | @ToString 32 | @EqualsAndHashCode 33 | public class Product { 34 | 35 | @Id 36 | @GeneratedValue(strategy = GenerationType.AUTO) 37 | private Integer productId; 38 | 39 | @NotNull 40 | @Size(min = 3, max = 30, message = "Product name size should be between 3-30") 41 | private String productName; 42 | 43 | @NotNull 44 | @DecimalMin(value = "0.00") 45 | private Double price; 46 | 47 | private String description; 48 | 49 | @NotNull 50 | private String manufacturer; 51 | 52 | @NotNull 53 | @Min(value = 0) 54 | private Integer quantity; 55 | 56 | @Enumerated(EnumType.STRING) 57 | private CategoryEnum category; 58 | 59 | @Enumerated(EnumType.STRING) 60 | private ProductStatus status; 61 | 62 | // @ManyToMany(cascade = CascadeType.ALL) 63 | // private Order order; 64 | 65 | @ManyToOne(cascade = CascadeType.ALL) 66 | @JsonIgnore 67 | private Seller seller; 68 | 69 | // @ManyToMany 70 | // @JsonIgnore 71 | // private List productCarts = new ArrayList<>(); 72 | 73 | } 74 | -------------------------------------------------------------------------------- /.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.xtend.core.Xtend.prefs: -------------------------------------------------------------------------------- 1 | AbstractTextEditor.Color.Background=25,29,31 2 | AbstractTextEditor.Color.Foreground=216,216,216 3 | eclipse.preferences.version=1 4 | org.eclipse.xtend.core.Xtend.syntaxColorer.tokenStyles.comment.color=199,221,12 5 | org.eclipse.xtend.core.Xtend.syntaxColorer.tokenStyles.default.color=216,216,216 6 | org.eclipse.xtend.core.Xtend.syntaxColorer.tokenStyles.keyword.color=141,203,226 7 | org.eclipse.xtend.core.Xtend.syntaxColorer.tokenStyles.number.color=127,179,71 8 | org.eclipse.xtend.core.Xtend.syntaxColorer.tokenStyles.punctuation.color=216,216,216 9 | org.eclipse.xtend.core.Xtend.syntaxColorer.tokenStyles.string.color=255,198,0 10 | org.eclipse.xtend.core.Xtend.syntaxColorer.tokenStyles.xbase.annotation.color=255,255,255 11 | org.eclipse.xtend.core.Xtend.syntaxColorer.tokenStyles.xbase.extension.method.invacation.color=255,255,255 12 | org.eclipse.xtend.core.Xtend.syntaxColorer.tokenStyles.xbase.field.color=190,214,255 13 | org.eclipse.xtend.core.Xtend.syntaxColorer.tokenStyles.xbase.static.field.color=239,192,144 14 | org.eclipse.xtend.core.Xtend.syntaxColorer.tokenStyles.xbase.static.method.invocation.color=190,214,255 15 | org.eclipse.xtend.core.Xtend.syntaxColorer.tokenStyles.xtend.richText.bgColor=39,44,48 16 | overriddenByCSS=,AbstractTextEditor.Color.Background,AbstractTextEditor.Color.Foreground,org.eclipse.xtend.core.Xtend.syntaxColorer.tokenStyles.comment.color,org.eclipse.xtend.core.Xtend.syntaxColorer.tokenStyles.default.color,org.eclipse.xtend.core.Xtend.syntaxColorer.tokenStyles.keyword.color,org.eclipse.xtend.core.Xtend.syntaxColorer.tokenStyles.number.color,org.eclipse.xtend.core.Xtend.syntaxColorer.tokenStyles.punctuation.color,org.eclipse.xtend.core.Xtend.syntaxColorer.tokenStyles.string.color,org.eclipse.xtend.core.Xtend.syntaxColorer.tokenStyles.xbase.annotation.color,org.eclipse.xtend.core.Xtend.syntaxColorer.tokenStyles.xbase.extension.method.invacation.color,org.eclipse.xtend.core.Xtend.syntaxColorer.tokenStyles.xbase.field.color,org.eclipse.xtend.core.Xtend.syntaxColorer.tokenStyles.xbase.static.field.color,org.eclipse.xtend.core.Xtend.syntaxColorer.tokenStyles.xbase.static.method.invocation.color,org.eclipse.xtend.core.Xtend.syntaxColorer.tokenStyles.xtend.richText.bgColor, 17 | -------------------------------------------------------------------------------- /E-Commerce-Backend/src/main/java/com/masai/controller/CartController.java: -------------------------------------------------------------------------------- 1 | package com.masai.controller; 2 | 3 | import java.util.List; 4 | 5 | import org.springframework.beans.factory.annotation.Autowired; 6 | import org.springframework.http.HttpStatus; 7 | import org.springframework.http.ResponseEntity; 8 | import org.springframework.web.bind.annotation.DeleteMapping; 9 | import org.springframework.web.bind.annotation.GetMapping; 10 | import org.springframework.web.bind.annotation.PostMapping; 11 | import org.springframework.web.bind.annotation.RequestBody; 12 | import org.springframework.web.bind.annotation.RequestHeader; 13 | import org.springframework.web.bind.annotation.RestController; 14 | 15 | import com.masai.models.Cart; 16 | import com.masai.models.CartDTO; 17 | import com.masai.models.CartItem; 18 | import com.masai.repository.CartDao; 19 | import com.masai.repository.CustomerDao; 20 | import com.masai.service.CartService; 21 | 22 | @RestController 23 | public class CartController { 24 | 25 | @Autowired 26 | private CartService cartService; 27 | 28 | @Autowired 29 | private CartDao cartDao; 30 | 31 | @Autowired 32 | private CustomerDao customerDao; 33 | 34 | 35 | @PostMapping(value = "/cart/add") 36 | public ResponseEntity addProductToCartHander(@RequestBody CartDTO cartdto ,@RequestHeader("token")String token){ 37 | 38 | Cart cart = cartService.addProductToCart(cartdto, token); 39 | return new ResponseEntity(cart,HttpStatus.CREATED); 40 | } 41 | 42 | // 43 | @GetMapping(value = "/cart") 44 | public ResponseEntity getCartProductHandler(@RequestHeader("token")String token){ 45 | return new ResponseEntity<>(cartService.getCartProduct(token), HttpStatus.ACCEPTED); 46 | } 47 | 48 | 49 | @DeleteMapping(value = "/cart") 50 | public ResponseEntity removeProductFromCartHander(@RequestBody CartDTO cartdto ,@RequestHeader("token")String token){ 51 | 52 | Cart cart = cartService.removeProductFromCart(cartdto, token); 53 | return new ResponseEntity(cart,HttpStatus.OK); 54 | } 55 | 56 | 57 | @DeleteMapping(value = "/cart/clear") 58 | public ResponseEntity clearCartHandler(@RequestHeader("token") String token){ 59 | return new ResponseEntity<>(cartService.clearCart(token), HttpStatus.ACCEPTED); 60 | } 61 | 62 | 63 | } 64 | -------------------------------------------------------------------------------- /.metadata/.plugins/org.eclipse.core.runtime/.settings/net.vtst.ow.eclipse.less.Less.prefs: -------------------------------------------------------------------------------- 1 | eclipse.preferences.version=1 2 | net.vtst.ow.eclipse.less.Less.syntaxColorer.tokenStyles.AT_KEYWORD.color=141,203,226 3 | net.vtst.ow.eclipse.less.Less.syntaxColorer.tokenStyles.COMMENT.color=199,221,12 4 | net.vtst.ow.eclipse.less.Less.syntaxColorer.tokenStyles.DEFAULT.color=216,216,216 5 | net.vtst.ow.eclipse.less.Less.syntaxColorer.tokenStyles.MEDIA_FEATURE.color=141,203,226 6 | net.vtst.ow.eclipse.less.Less.syntaxColorer.tokenStyles.MEDIA_QUERY_KEYWORD.color=141,203,226 7 | net.vtst.ow.eclipse.less.Less.syntaxColorer.tokenStyles.MIXIN_CALL.color=255,255,255 8 | net.vtst.ow.eclipse.less.Less.syntaxColorer.tokenStyles.NUMERIC_LITERAL.color=127,179,71 9 | net.vtst.ow.eclipse.less.Less.syntaxColorer.tokenStyles.PROPERTY.color=190,214,255 10 | net.vtst.ow.eclipse.less.Less.syntaxColorer.tokenStyles.SELECTOR.color=255,255,255 11 | net.vtst.ow.eclipse.less.Less.syntaxColorer.tokenStyles.SELECTOR_CLASS.color=255,255,255 12 | net.vtst.ow.eclipse.less.Less.syntaxColorer.tokenStyles.SELECTOR_HASH.color=255,255,255 13 | net.vtst.ow.eclipse.less.Less.syntaxColorer.tokenStyles.SELECTOR_ROOT.color=255,255,255 14 | net.vtst.ow.eclipse.less.Less.syntaxColorer.tokenStyles.STRING.color=255,198,0 15 | net.vtst.ow.eclipse.less.Less.syntaxColorer.tokenStyles.VARIABLE_DEFINITION.color=190,214,255 16 | net.vtst.ow.eclipse.less.Less.syntaxColorer.tokenStyles.VARIABLE_USE.color=121,171,255 17 | overriddenByCSS=,net.vtst.ow.eclipse.less.Less.syntaxColorer.tokenStyles.SELECTOR.color,net.vtst.ow.eclipse.less.Less.syntaxColorer.tokenStyles.COMMENT.color,net.vtst.ow.eclipse.less.Less.syntaxColorer.tokenStyles.DEFAULT.color,net.vtst.ow.eclipse.less.Less.syntaxColorer.tokenStyles.PROPERTY.color,net.vtst.ow.eclipse.less.Less.syntaxColorer.tokenStyles.MEDIA_FEATURE.color,net.vtst.ow.eclipse.less.Less.syntaxColorer.tokenStyles.VARIABLE_DEFINITION.color,net.vtst.ow.eclipse.less.Less.syntaxColorer.tokenStyles.VARIABLE_USE.color,net.vtst.ow.eclipse.less.Less.syntaxColorer.tokenStyles.SELECTOR_ROOT.color,net.vtst.ow.eclipse.less.Less.syntaxColorer.tokenStyles.SELECTOR_CLASS.color,net.vtst.ow.eclipse.less.Less.syntaxColorer.tokenStyles.MIXIN_CALL.color,net.vtst.ow.eclipse.less.Less.syntaxColorer.tokenStyles.MEDIA_QUERY_KEYWORD.color,net.vtst.ow.eclipse.less.Less.syntaxColorer.tokenStyles.NUMERIC_LITERAL.color,net.vtst.ow.eclipse.less.Less.syntaxColorer.tokenStyles.SELECTOR_HASH.color,net.vtst.ow.eclipse.less.Less.syntaxColorer.tokenStyles.STRING.color,net.vtst.ow.eclipse.less.Less.syntaxColorer.tokenStyles.AT_KEYWORD.color, 18 | -------------------------------------------------------------------------------- /.metadata/.plugins/org.eclipse.core.runtime/.settings/org.scala-ide.play2.prefs: -------------------------------------------------------------------------------- 1 | eclipse.preferences.version=1 2 | overriddenByCSS=,template.plain.colour,syntaxColouring.operator.colour,syntaxColouring.scaladocAnnotation.colour,syntaxColouring.bracket.colour,syntaxColouring.scaladoc.colour,syntaxColouring.multiLineString.colour,template.default.colour,syntaxColouring.default.colour,route.uri.colour,syntaxColouring.keyword.colour,syntaxColouring.xml.cdata.colour,template.at.colour,syntaxColouring.xml.processingInstruction.colour,template.brace.colour,route.httpKeyword.colour,syntaxColouring.xml.tagName.colour,syntaxColouring.singleLineComment.colour,route.comment.colour,syntaxColouring.multiLineComment.colour,syntaxColouring.numberLiteral.colour,route.actionClass.colour,syntaxColouring.xml.attributeValue.colour,route.uriDynamic.colour,syntaxColouring.return.colour,route.action.colour,route.actionMethod.colour,route.actionPackage.colour,route.default.colour,syntaxColouring.xml.equals.colour,syntaxColouring.xml.comment.colour,syntaxColouring.xml.tagDelimiter.colour,syntaxColouring.string.colour,syntaxColouring.xml.attributeName.colour, 3 | route.action.colour=121,171,255 4 | route.actionClass.colour=210,82,82 5 | route.actionMethod.colour=255,255,255 6 | route.actionPackage.colour=127,179,71 7 | route.comment.colour=199,221,12 8 | route.default.colour=216,216,216 9 | route.httpKeyword.colour=141,203,226 10 | route.uri.colour=255,198,0 11 | route.uriDynamic.colour=121,171,255 12 | syntaxColouring.bracket.colour=216,216,216 13 | syntaxColouring.default.colour=190,214,255 14 | syntaxColouring.keyword.colour=141,203,226 15 | syntaxColouring.multiLineComment.colour=199,221,12 16 | syntaxColouring.multiLineString.colour=255,198,0 17 | syntaxColouring.numberLiteral.colour=127,179,71 18 | syntaxColouring.operator.colour=216,216,216 19 | syntaxColouring.return.colour=141,203,226 20 | syntaxColouring.scaladoc.colour=204,223,50 21 | syntaxColouring.scaladocAnnotation.colour=217,229,119 22 | syntaxColouring.singleLineComment.colour=199,221,12 23 | syntaxColouring.string.colour=255,198,0 24 | syntaxColouring.xml.attributeName.colour=141,203,226 25 | syntaxColouring.xml.attributeValue.colour=255,198,0 26 | syntaxColouring.xml.cdata.colour=199,221,12 27 | syntaxColouring.xml.comment.colour=199,221,12 28 | syntaxColouring.xml.equals.colour=216,216,216 29 | syntaxColouring.xml.processingInstruction.colour=216,216,216 30 | syntaxColouring.xml.tagDelimiter.colour=216,216,216 31 | syntaxColouring.xml.tagName.colour=216,216,216 32 | template.at.colour=141,203,226 33 | template.brace.colour=141,203,226 34 | template.default.colour=216,216,216 35 | template.plain.colour=216,216,216 36 | -------------------------------------------------------------------------------- /E-Commerce-Backend/pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 4.0.0 5 | 6 | org.springframework.boot 7 | spring-boot-starter-parent 8 | 2.7.0 9 | 10 | 11 | com.masai 12 | E-Commerce-Backend 13 | 0.0.1-SNAPSHOT 14 | E-Commerce-Backend 15 | Demo project for Spring Boot 16 | 17 | 1.8 18 | 19 | 20 | 21 | org.springframework.boot 22 | spring-boot-starter-data-jpa 23 | 24 | 25 | org.springframework.boot 26 | spring-boot-starter-web 27 | 28 | 29 | 30 | org.springframework.boot 31 | spring-boot-devtools 32 | runtime 33 | true 34 | 35 | 36 | mysql 37 | mysql-connector-java 38 | runtime 39 | 40 | 41 | org.springframework.boot 42 | spring-boot-starter-test 43 | test 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | org.springframework.boot 52 | spring-boot-starter-validation 53 | 2.6.7 54 | 55 | 56 | 57 | 58 | org.springdoc 59 | springdoc-openapi-ui 60 | 1.6.9 61 | 62 | 63 | 64 | 65 | org.projectlombok 66 | lombok 67 | 1.18.24 68 | provided 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | org.springframework.boot 77 | spring-boot-maven-plugin 78 | 79 | 80 | 81 | 82 | 83 | -------------------------------------------------------------------------------- /.metadata/.plugins/org.eclipse.core.runtime/.settings/com.adobe.flexide.css.core.prefs: -------------------------------------------------------------------------------- 1 | cssCommentBold=false 2 | cssCommentColor=\#C7DD0C 3 | cssCommentItalic=false 4 | cssCommentStrikethrough=false 5 | cssCommentUnderline=false 6 | cssFontFaceBold=false 7 | cssFontFaceColor=\#8DCBE2 8 | cssFontFaceItalic=false 9 | cssFontFaceStrikethrough=false 10 | cssFontFaceUnderline=false 11 | cssImportBold=false 12 | cssImportColor=\#8DCBE2 13 | cssImportItalic=false 14 | cssImportStrikethrough=false 15 | cssImportUnderline=false 16 | cssMediaBold=false 17 | cssMediaColor=\#8DCBE2 18 | cssMediaItalic=false 19 | cssMediaStrikethrough=false 20 | cssMediaUnderline=false 21 | cssNamespaceBold=false 22 | cssNamespaceColor=\#D8D8D8 23 | cssNamespaceItalic=false 24 | cssNamespaceStrikethrough=false 25 | cssNamespaceUnderline=false 26 | cssPropertyNameBold=false 27 | cssPropertyNameColor=\#BED6FF 28 | cssPropertyNameItalic=false 29 | cssPropertyNameStrikethrough=false 30 | cssPropertyNameUnderline=false 31 | cssPropertyValueBold=false 32 | cssPropertyValueColor=\#FFC600 33 | cssPropertyValueItalic=false 34 | cssPropertyValueStrikethrough=false 35 | cssPropertyValueUnderline=false 36 | cssSelectorBold=false 37 | cssSelectorColor=\#79ABFF 38 | cssSelectorItalic=false 39 | cssSelectorStrikethrough=false 40 | cssSelectorUnderline=false 41 | cssStringBold=false 42 | cssStringColor=\#FFC600 43 | cssStringItalic=false 44 | cssStringStrikethrough=false 45 | cssStringUnderline=false 46 | cssSymbolBold=false 47 | cssSymbolColor=\#8DCBE2 48 | cssSymbolItalic=false 49 | cssSymbolStrikethrough=false 50 | cssSymbolUnderline=false 51 | cssTextBold=false 52 | cssTextColor=\#D8D8D8 53 | cssTextItalic=false 54 | cssTextStrikethrough=false 55 | cssTextUnderline=false 56 | eclipse.preferences.version=1 57 | overriddenByCSS=,cssNamespaceStrikethrough,cssImportBold,cssFontFaceBold,cssPropertyValueItalic,cssTextColor,cssStringColor,cssSymbolColor,cssSelectorItalic,cssTextStrikethrough,cssMediaItalic,cssStringItalic,cssStringUnderline,cssStringBold,cssStringStrikethrough,cssPropertyNameStrikethrough,cssMediaBold,cssImportItalic,cssCommentBold,cssNamespaceItalic,cssPropertyValueBold,cssTextUnderline,cssFontFaceItalic,cssSymbolStrikethrough,cssMediaStrikethrough,cssPropertyNameItalic,cssCommentStrikethrough,cssNamespaceColor,cssImportUnderline,cssPropertyValueColor,cssMediaColor,cssTextBold,cssFontFaceStrikethrough,cssMediaUnderline,cssSelectorStrikethrough,cssPropertyNameBold,cssNamespaceUnderline,cssSelectorColor,cssImportColor,cssPropertyValueStrikethrough,cssFontFaceColor,cssCommentColor,cssImportStrikethrough,cssCommentItalic,cssSymbolItalic,cssPropertyValueUnderline,cssTextItalic,cssNamespaceBold,cssCommentUnderline,cssSymbolUnderline,cssPropertyNameColor,cssFontFaceUnderline,cssSelectorUnderline,cssPropertyNameUnderline,cssSelectorBold,cssSymbolBold, 58 | -------------------------------------------------------------------------------- /.metadata/.plugins/org.eclipse.core.runtime/.settings/org.epic.perleditor.prefs: -------------------------------------------------------------------------------- 1 | AbstractTextEditor.Color.Background=25,29,31 2 | AbstractTextEditor.Color.Background.SystemDefault=false 3 | AbstractTextEditor.Color.BackgroundBold=false 4 | AbstractTextEditor.Color.Foreground=216,216,216 5 | AbstractTextEditor.Color.Foreground.SystemDefault=false 6 | AbstractTextEditor.Color.ForegroundBold=false 7 | bookmarkIndicationColor=217,229,119 8 | bookmarkIndicationColorBold=false 9 | comment1Color=199,221,12 10 | comment1ColorBold=false 11 | comment2Color=199,221,12 12 | comment2ColorBold=false 13 | currentLineColor=50,57,62 14 | currentLineColorBold=false 15 | eclipse.preferences.version=1 16 | errorIndicationColor=210,82,82 17 | errorIndicationColorBold=false 18 | functionColor=255,255,255 19 | functionColorBold=false 20 | invalidColor=210,82,82 21 | invalidColorBold=false 22 | keyword1Color=141,203,226 23 | keyword1ColorBold=false 24 | keyword2Color=255,255,255 25 | keyword2ColorBold=false 26 | labelColor=216,216,216 27 | labelColorBold=false 28 | lineNumberColor=208,208,208 29 | lineNumberColorBold=false 30 | literal1Color=255,198,0 31 | literal1ColorBold=false 32 | literal2Color=255,198,0 33 | literal2ColorBold=false 34 | markupColor=216,216,216 35 | markupColorBold=false 36 | numberColor=127,179,71 37 | numberColorBold=false 38 | operatorColor=216,216,216 39 | operatorColorBold=false 40 | othersIndicationColor=216,216,216 41 | othersIndicationColorBold=false 42 | overriddenByCSS=,taskIndicationColorBold,AbstractTextEditor.Color.Background.SystemDefault,lineNumberColorBold,bookmarkIndicationColor,literal2ColorBold,errorIndicationColorBold,comment1ColorBold,literal1Color,othersIndicationColorBold,operatorColorBold,AbstractTextEditor.Color.BackgroundBold,currentLineColor,othersIndicationColor,taskIndicationColor,currentLineColorBold,warningIndicationColorBold,markupColor,labelColorBold,AbstractTextEditor.Color.Background,literal2Color,keyword1Color,AbstractTextEditor.Color.Foreground,keyword1ColorBold,AbstractTextEditor.Color.Foreground.SystemDefault,searchResultIndicationColor,functionColor,operatorColor,invalidColorBold,searchResultIndicationColorBold,variableColorBold,comment1Color,printMarginColorBold,lineNumberColor,functionColorBold,warningIndicationColor,comment2Color,comment2ColorBold,keyword2Color,bookmarkIndicationColorBold,literal1ColorBold,numberColorBold,AbstractTextEditor.Color.ForegroundBold,printMarginColor,variableColor,labelColor,keyword2ColorBold,markupColorBold,invalidColor,numberColor,errorIndicationColor, 43 | printMarginColor=208,208,208 44 | printMarginColorBold=false 45 | searchResultIndicationColor=0,0,0 46 | searchResultIndicationColorBold=false 47 | taskIndicationColor=204,223,50 48 | taskIndicationColorBold=false 49 | variableColor=121,171,255 50 | variableColorBold=false 51 | warningIndicationColor=255,198,0 52 | warningIndicationColorBold=false 53 | -------------------------------------------------------------------------------- /E-Commerce-Backend/bin/pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 4.0.0 5 | 6 | org.springframework.boot 7 | spring-boot-starter-parent 8 | 2.7.0 9 | 10 | 11 | com.masai 12 | E-Commerce-Backend 13 | 0.0.1-SNAPSHOT 14 | E-Commerce-Backend 15 | Demo project for Spring Boot 16 | 17 | 1.8 18 | 19 | 20 | 21 | org.springframework.boot 22 | spring-boot-starter-data-jpa 23 | 24 | 25 | org.springframework.boot 26 | spring-boot-starter-web 27 | 28 | 29 | 30 | org.springframework.boot 31 | spring-boot-devtools 32 | runtime 33 | true 34 | 35 | 36 | mysql 37 | mysql-connector-java 38 | runtime 39 | 40 | 41 | org.springframework.boot 42 | spring-boot-starter-test 43 | test 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | org.springframework.boot 52 | spring-boot-starter-validation 53 | 2.6.7 54 | 55 | 56 | 57 | 58 | io.springfox 59 | springfox-swagger2 60 | 2.9.2 61 | 62 | 63 | 64 | io.springfox 65 | springfox-swagger-ui 66 | 2.9.2 67 | 68 | 69 | 70 | 71 | org.projectlombok 72 | lombok 73 | 1.18.24 74 | provided 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | org.springframework.boot 83 | spring-boot-maven-plugin 84 | 85 | 86 | 87 | 88 | 89 | -------------------------------------------------------------------------------- /E-Commerce-Backend/src/main/java/com/masai/models/Customer.java: -------------------------------------------------------------------------------- 1 | package com.masai.models; 2 | 3 | import java.time.LocalDateTime; 4 | import java.util.ArrayList; 5 | import java.util.HashMap; 6 | import java.util.List; 7 | import java.util.Map; 8 | 9 | import javax.persistence.CascadeType; 10 | import javax.persistence.Column; 11 | import javax.persistence.Embedded; 12 | import javax.persistence.Entity; 13 | import javax.persistence.GeneratedValue; 14 | import javax.persistence.GenerationType; 15 | import javax.persistence.Id; 16 | import javax.persistence.JoinColumn; 17 | import javax.persistence.JoinTable; 18 | import javax.persistence.OneToMany; 19 | import javax.persistence.OneToOne; 20 | import javax.validation.constraints.Email; 21 | import javax.validation.constraints.NotNull; 22 | import javax.validation.constraints.Pattern; 23 | 24 | import lombok.AllArgsConstructor; 25 | import lombok.Data; 26 | import lombok.NoArgsConstructor; 27 | import lombok.ToString; 28 | 29 | 30 | @Data 31 | @NoArgsConstructor 32 | @AllArgsConstructor 33 | @ToString 34 | @Entity 35 | public class Customer { 36 | 37 | @Id 38 | @GeneratedValue(strategy = GenerationType.AUTO) 39 | private Integer customerId; 40 | 41 | @NotNull(message = "First Name cannot be NULL") 42 | @Pattern(regexp = "[A-Za-z.\\s]+", message = "Enter valid characters in first name") 43 | private String firstName; 44 | 45 | @NotNull(message = "Last Name cannot be NULL") 46 | @Pattern(regexp = "[A-Za-z.\\s]+", message = "Enter valid characters in last name") 47 | private String lastName; 48 | 49 | @NotNull(message = "Please enter the mobile Number") 50 | @Column(unique = true) 51 | @Pattern(regexp = "[6789]{1}[0-9]{9}", message = "Enter valid 10 digit mobile number") 52 | private String mobileNo; 53 | 54 | 55 | @NotNull(message = "Please enter the emaild id") 56 | @Column(unique = true) 57 | @Email 58 | private String emailId; 59 | 60 | @NotNull(message = "Please enter the password") 61 | @Pattern(regexp = "[A-Za-z0-9!@#$%^&*_]{8,15}", message = "Password must be 8-15 characters in length and can include A-Z, a-z, 0-9, or special characters !@#$%^&*_") 62 | private String password; 63 | 64 | 65 | private LocalDateTime createdOn; 66 | 67 | @Embedded 68 | private CreditCard creditCard; 69 | 70 | 71 | @OneToMany(cascade = CascadeType.ALL) 72 | @JoinTable(name = "customer_address_mapping", 73 | joinColumns = { 74 | @JoinColumn(name = "customer_id", referencedColumnName = "customerId") 75 | }, 76 | inverseJoinColumns = { 77 | @JoinColumn(name = "address_id", referencedColumnName = "addressId") 78 | }) 79 | private Map address = new HashMap<>(); 80 | 81 | 82 | 83 | 84 | 85 | // Establishing Customer - Order relationship 86 | @OneToMany(cascade = CascadeType.ALL, mappedBy = "customer") 87 | private List orders = new ArrayList<>(); 88 | 89 | 90 | 91 | // Establishing Customer - Cart relationship 92 | // 93 | @OneToOne(cascade = CascadeType.ALL) 94 | private Cart customerCart; 95 | 96 | 97 | 98 | } 99 | -------------------------------------------------------------------------------- /E-Commerce-Backend/src/main/java/com/masai/controller/LoginController.java: -------------------------------------------------------------------------------- 1 | package com.masai.controller; 2 | 3 | import javax.validation.Valid; 4 | 5 | import org.springframework.beans.factory.annotation.Autowired; 6 | import org.springframework.http.HttpStatus; 7 | import org.springframework.http.ResponseEntity; 8 | import org.springframework.web.bind.annotation.PostMapping; 9 | import org.springframework.web.bind.annotation.RequestBody; 10 | import org.springframework.web.bind.annotation.RestController; 11 | 12 | import com.masai.models.Customer; 13 | import com.masai.models.CustomerDTO; 14 | import com.masai.models.Seller; 15 | import com.masai.models.SellerDTO; 16 | import com.masai.models.SessionDTO; 17 | import com.masai.models.UserSession; 18 | import com.masai.service.CustomerService; 19 | import com.masai.service.LoginLogoutService; 20 | import com.masai.service.SellerService; 21 | 22 | @RestController 23 | public class LoginController { 24 | 25 | @Autowired 26 | private CustomerService customerService; 27 | 28 | @Autowired 29 | private LoginLogoutService loginService; 30 | 31 | @Autowired 32 | private SellerService sellerService; 33 | 34 | 35 | // Handler to register a new customer 36 | 37 | @PostMapping(value = "/register/customer", consumes = "application/json") 38 | public ResponseEntity registerAccountHandler(@Valid @RequestBody Customer customer) { 39 | return new ResponseEntity<>(customerService.addCustomer(customer), HttpStatus.CREATED); 40 | } 41 | 42 | // Handler to login a user 43 | 44 | @PostMapping(value = "/login/customer", consumes = "application/json") 45 | public ResponseEntity loginCustomerHandler(@Valid @RequestBody CustomerDTO customerdto){ 46 | return new ResponseEntity<>(loginService.loginCustomer(customerdto), HttpStatus.ACCEPTED); 47 | } 48 | 49 | 50 | // Handler to logout a user 51 | 52 | @PostMapping(value = "/logout/customer", consumes = "application/json") 53 | public ResponseEntity logoutCustomerHandler(@RequestBody SessionDTO sessionToken){ 54 | return new ResponseEntity<>(loginService.logoutCustomer(sessionToken), HttpStatus.ACCEPTED); 55 | } 56 | 57 | 58 | 59 | 60 | /*********** SELLER REGISTER LOGIN LOGOUT HANDLER ************/ 61 | 62 | @PostMapping(value = "/register/seller", consumes = "application/json") 63 | public ResponseEntity registerSellerAccountHandler(@Valid @RequestBody Seller seller) { 64 | return new ResponseEntity<>(sellerService.addSeller(seller), HttpStatus.CREATED); 65 | } 66 | 67 | 68 | // Handler to login a user 69 | 70 | @PostMapping(value = "/login/seller", consumes = "application/json") 71 | public ResponseEntity loginSellerHandler(@Valid @RequestBody SellerDTO seller){ 72 | return new ResponseEntity<>(loginService.loginSeller(seller), HttpStatus.ACCEPTED); 73 | } 74 | 75 | 76 | // Handler to logout a user 77 | 78 | @PostMapping(value = "/logout/seller", consumes = "application/json") 79 | public ResponseEntity logoutSellerHandler(@RequestBody SessionDTO sessionToken){ 80 | return new ResponseEntity<>(loginService.logoutSeller(sessionToken), HttpStatus.ACCEPTED); 81 | } 82 | 83 | } 84 | -------------------------------------------------------------------------------- /.metadata/.plugins/org.eclipse.core.runtime/.settings/com.adobe.flexide.as.core.prefs: -------------------------------------------------------------------------------- 1 | asASDocBold=false 2 | asASDocColor=\#CCDF32 3 | asASDocItalic=false 4 | asASDocStrikethrough=false 5 | asASDocUnderline=false 6 | asBracketBold=false 7 | asBracketColor=\#D8D8D8 8 | asBracketItalic=false 9 | asBracketStrikethrough=false 10 | asBracketUnderline=false 11 | asClassBold=false 12 | asClassColor=\#D25252 13 | asClassItalic=false 14 | asClassStrikethrough=false 15 | asClassUnderline=false 16 | asCommentBold=false 17 | asCommentColor=\#C7DD0C 18 | asCommentItalic=false 19 | asCommentStrikethrough=false 20 | asCommentUnderline=false 21 | asFunctionBold=false 22 | asFunctionColor=\#FFFFFF 23 | asFunctionItalic=false 24 | asFunctionStrikethrough=false 25 | asFunctionUnderline=false 26 | asInterfaceBold=false 27 | asInterfaceColor=\#D197D9 28 | asInterfaceItalic=false 29 | asInterfaceStrikethrough=false 30 | asInterfaceUnderline=false 31 | asMetadataBold=false 32 | asMetadataColor=\#FFFFFF 33 | asMetadataItalic=false 34 | asMetadataStrikethrough=false 35 | asMetadataUnderline=false 36 | asOperatorBold=false 37 | asOperatorColor=\#D8D8D8 38 | asOperatorItalic=false 39 | asOperatorStrikethrough=false 40 | asOperatorUnderline=false 41 | asPackageBold=false 42 | asPackageColor=\#D197D9 43 | asPackageItalic=false 44 | asPackageStrikethrough=false 45 | asPackageUnderline=false 46 | asReservedBold=false 47 | asReservedColor=\#8DCBE2 48 | asReservedItalic=false 49 | asReservedStrikethrough=false 50 | asReservedUnderline=false 51 | asStringBold=false 52 | asStringColor=\#FFC600 53 | asStringItalic=false 54 | asStringStrikethrough=false 55 | asStringUnderline=false 56 | asTextBold=false 57 | asTextColor=\#D8D8D8 58 | asTextItalic=false 59 | asTextStrikethrough=false 60 | asTextUnderline=false 61 | asTraceBold=false 62 | asTraceColor=\#BED6FF 63 | asTraceItalic=false 64 | asTraceStrikethrough=false 65 | asTraceUnderline=false 66 | asVarBold=false 67 | asVarColor=\#79ABFF 68 | asVarItalic=false 69 | asVarStrikethrough=false 70 | asVarUnderline=false 71 | eclipse.preferences.version=1 72 | overriddenByCSS=,asCommentUnderline,asCommentColor,asStringColor,asReservedItalic,asBracketBold,asCommentStrikethrough,asVarColor,asOperatorUnderline,asStringStrikethrough,asTextColor,asStringItalic,asStringBold,asVarStrikethrough,asOperatorColor,asVarUnderline,asTextUnderline,asClassColor,asReservedColor,asMetadataStrikethrough,asPackageUnderline,asTextItalic,asMetadataUnderline,asCommentItalic,asPackageItalic,asTraceUnderline,asFunctionUnderline,asTextBold,asOperatorBold,asASDocStrikethrough,asVarItalic,asTraceStrikethrough,asCommentBold,asTraceColor,asASDocItalic,asPackageColor,asBracketUnderline,asInterfaceBold,asASDocColor,asFunctionItalic,asInterfaceColor,asPackageBold,asInterfaceStrikethrough,asClassItalic,asPackageStrikethrough,asFunctionBold,asClassStrikethrough,asStringUnderline,asMetadataColor,asTraceBold,asVarBold,asFunctionStrikethrough,asASDocUnderline,asFunctionColor,asTraceItalic,asClassUnderline,asInterfaceUnderline,asOperatorItalic,asOperatorStrikethrough,asBracketColor,asClassBold,asReservedUnderline,asASDocBold,asReservedStrikethrough,asTextStrikethrough,asMetadataBold,asMetadataItalic,asBracketItalic,asReservedBold,asInterfaceItalic,asBracketStrikethrough, 73 | -------------------------------------------------------------------------------- /E-Commerce-Backend/src/main/java/com/masai/controller/OrderController.java: -------------------------------------------------------------------------------- 1 | package com.masai.controller; 2 | 3 | import java.time.LocalDate; 4 | import java.time.format.DateTimeFormatter; 5 | import java.util.List; 6 | 7 | import javax.validation.Valid; 8 | 9 | import org.springframework.beans.factory.annotation.Autowired; 10 | import org.springframework.http.HttpStatus; 11 | import org.springframework.http.ResponseEntity; 12 | import org.springframework.web.bind.annotation.DeleteMapping; 13 | import org.springframework.web.bind.annotation.GetMapping; 14 | import org.springframework.web.bind.annotation.PathVariable; 15 | import org.springframework.web.bind.annotation.PostMapping; 16 | import org.springframework.web.bind.annotation.PutMapping; 17 | import org.springframework.web.bind.annotation.RequestBody; 18 | import org.springframework.web.bind.annotation.RequestHeader; 19 | import org.springframework.web.bind.annotation.RequestParam; 20 | import org.springframework.web.bind.annotation.RestController; 21 | 22 | import com.masai.models.Customer; 23 | import com.masai.models.Order; 24 | import com.masai.models.OrderDTO; 25 | import com.masai.repository.OrderDao; 26 | import com.masai.service.OrderService; 27 | 28 | @RestController 29 | public class OrderController { 30 | @Autowired 31 | private OrderDao oDao; 32 | 33 | @Autowired 34 | private OrderService oService; 35 | 36 | @PostMapping("/order/place") 37 | public ResponseEntity addTheNewOrder(@Valid @RequestBody OrderDTO odto,@RequestHeader("token") String token){ 38 | 39 | Order savedorder = oService.saveOrder(odto,token); 40 | return new ResponseEntity(savedorder,HttpStatus.CREATED); 41 | 42 | } 43 | 44 | @GetMapping("/orders") 45 | public List getAllOrders(){ 46 | 47 | 48 | List listOfAllOrders = oService.getAllOrders(); 49 | return listOfAllOrders; 50 | 51 | } 52 | 53 | @GetMapping("/orders/{orderId}") 54 | public Order getOrdersByOrderId(@PathVariable("orderId") Integer orderId) { 55 | 56 | return oService.getOrderByOrderId(orderId); 57 | 58 | } 59 | 60 | @DeleteMapping("/orders/{orderId}") 61 | public Order cancelTheOrderByOrderId(@PathVariable("orderId") Integer orderId,@RequestHeader("token") String token){ 62 | 63 | return oService.cancelOrderByOrderId(orderId,token); 64 | } 65 | 66 | @PutMapping("/orders/{orderId}") 67 | public ResponseEntity updateOrderByOrder(@Valid @RequestBody OrderDTO orderdto, @PathVariable("orderId") Integer orderId,@RequestHeader("token") String token){ 68 | 69 | Order updatedOrder= oService.updateOrderByOrder(orderdto,orderId,token); 70 | 71 | return new ResponseEntity(updatedOrder,HttpStatus.ACCEPTED); 72 | 73 | } 74 | 75 | @GetMapping("/orders/by/date") 76 | public List getOrdersByDate(@RequestParam("date") String date){ 77 | 78 | DateTimeFormatter dtf=DateTimeFormatter.ofPattern("dd-MM-yyyy"); 79 | LocalDate ld=LocalDate.parse(date,dtf); 80 | return oService.getAllOrdersByDate(ld); 81 | } 82 | 83 | @GetMapping("/customer/{orderId}") 84 | public Customer getCustomerDetailsByOrderId(@PathVariable("orderId") Integer orderId) { 85 | return oService.getCustomerByOrderid(orderId); 86 | } 87 | 88 | } 89 | -------------------------------------------------------------------------------- /.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.wst.jsdt.ui.prefs: -------------------------------------------------------------------------------- 1 | CONTENT_ASSIST_BACKGROUND_COLOR=46,52,56 2 | CONTENT_ASSIST_FOREGROUND_COLOR=233,235,237 3 | content_assist_parameters_background=46,52,56 4 | content_assist_parameters_foreground=233,235,237 5 | content_assist_proposals_background=46,52,56 6 | content_assist_proposals_foreground=233,235,237 7 | eclipse.preferences.version=1 8 | java_bracket=216,216,216 9 | java_comment_task_tag=204,223,50 10 | java_default=216,216,216 11 | java_doc_default=204,223,50 12 | java_doc_keyword=217,229,119 13 | java_doc_link=217,229,119 14 | java_doc_tag=217,229,119 15 | java_keyword=141,203,226 16 | java_keyword_return=141,203,226 17 | java_multi_line_comment=199,221,12 18 | java_operator=216,216,216 19 | java_single_line_comment=199,221,12 20 | java_string=255,198,0 21 | overriddenByCSS=,CONTENT_ASSIST_BACKGROUND_COLOR,CONTENT_ASSIST_FOREGROUND_COLOR,content_assist_parameters_background,content_assist_parameters_foreground,content_assist_proposals_background,content_assist_proposals_foreground,java_bracket,java_comment_task_tag,java_default,java_doc_default,java_doc_keyword,java_doc_link,java_doc_tag,java_keyword,java_keyword_return,java_multi_line_comment,java_operator,java_single_line_comment,java_string,semanticHighlighting.localVariable.bold,semanticHighlighting.localVariable.color,semanticHighlighting.localVariable.enabled,semanticHighlighting.localVariable.italic,semanticHighlighting.localVariable.strikethrough,semanticHighlighting.localVariable.underline,semanticHighlighting.localVariableDeclaration.bold,semanticHighlighting.localVariableDeclaration.color,semanticHighlighting.localVariableDeclaration.enabled,semanticHighlighting.localVariableDeclaration.italic,semanticHighlighting.localVariableDeclaration.strikethrough,semanticHighlighting.localVariableDeclaration.underline,semanticHighlighting.methodDeclarationName.bold,semanticHighlighting.methodDeclarationName.color,semanticHighlighting.methodDeclarationName.enabled,semanticHighlighting.methodDeclarationName.italic,semanticHighlighting.methodDeclarationName.strikethrough,semanticHighlighting.methodDeclarationName.underline,tagName, 22 | semanticHighlighting.localVariable.bold=false 23 | semanticHighlighting.localVariable.color=121,171,255 24 | semanticHighlighting.localVariable.enabled=true 25 | semanticHighlighting.localVariable.italic=false 26 | semanticHighlighting.localVariable.strikethrough=false 27 | semanticHighlighting.localVariable.underline=false 28 | semanticHighlighting.localVariableDeclaration.bold=false 29 | semanticHighlighting.localVariableDeclaration.color=190,214,255 30 | semanticHighlighting.localVariableDeclaration.enabled=true 31 | semanticHighlighting.localVariableDeclaration.italic=false 32 | semanticHighlighting.localVariableDeclaration.strikethrough=false 33 | semanticHighlighting.localVariableDeclaration.underline=false 34 | semanticHighlighting.methodDeclarationName.bold=false 35 | semanticHighlighting.methodDeclarationName.color=190,214,255 36 | semanticHighlighting.methodDeclarationName.enabled=true 37 | semanticHighlighting.methodDeclarationName.italic=false 38 | semanticHighlighting.methodDeclarationName.strikethrough=false 39 | semanticHighlighting.methodDeclarationName.underline=false 40 | tagName=255,255,255 41 | -------------------------------------------------------------------------------- /.metadata/.plugins/org.eclipse.core.runtime/.settings/com.axmor.eclipse.typescript.editor.prefs: -------------------------------------------------------------------------------- 1 | eclipse.preferences.version=1 2 | overriddenByCSS=,semanticHighlighting.ts_interface.enabled,semanticHighlighting.ts_interface.color,semanticHighlighting.ts_class.italic,semanticHighlighting.ts_localVariable.bold,ts_java_doc,semanticHighlighting.ts_class.bold,semanticHighlighting.ts_interface.underline,semanticHighlighting.ts_module.underline,semanticHighlighting.ts_method.color,semanticHighlighting.ts_module.color,semanticHighlighting.ts_module.bold,semanticHighlighting.ts_module.enabled,semanticHighlighting.ts_method.strikethrough,semanticHighlighting.ts_class.enabled,ts_reference,ts_keyword,ts_brackets,ts_comment,semanticHighlighting.ts_classProperty.strikethrough,semanticHighlighting.ts_method.bold,semanticHighlighting.ts_localVariable.enabled,ts_default,semanticHighlighting.ts_interface.bold,semanticHighlighting.ts_classProperty.color,semanticHighlighting.ts_method.underline,semanticHighlighting.ts_localVariable.color,semanticHighlighting.ts_classProperty.enabled,semanticHighlighting.ts_classProperty.underline,semanticHighlighting.ts_localVariable.strikethrough,semanticHighlighting.ts_interface.strikethrough,semanticHighlighting.ts_class.strikethrough,semanticHighlighting.ts_method.enabled,semanticHighlighting.ts_module.italic,semanticHighlighting.ts_module.strikethrough,semanticHighlighting.ts_class.underline,semanticHighlighting.ts_localVariable.underline,semanticHighlighting.ts_classProperty.bold,ts_number,semanticHighlighting.ts_method.italic,semanticHighlighting.ts_class.color,semanticHighlighting.ts_classProperty.italic,semanticHighlighting.ts_localVariable.italic,semanticHighlighting.ts_interface.italic,ts_string, 3 | semanticHighlighting.ts_class.bold=false 4 | semanticHighlighting.ts_class.color=210,82,82 5 | semanticHighlighting.ts_class.enabled=true 6 | semanticHighlighting.ts_class.italic=false 7 | semanticHighlighting.ts_class.strikethrough=false 8 | semanticHighlighting.ts_class.underline=false 9 | semanticHighlighting.ts_classProperty.bold=false 10 | semanticHighlighting.ts_classProperty.color=190,214,255 11 | semanticHighlighting.ts_classProperty.enabled=true 12 | semanticHighlighting.ts_classProperty.italic=false 13 | semanticHighlighting.ts_classProperty.strikethrough=false 14 | semanticHighlighting.ts_classProperty.underline=false 15 | semanticHighlighting.ts_interface.bold=false 16 | semanticHighlighting.ts_interface.color=209,151,217 17 | semanticHighlighting.ts_interface.enabled=true 18 | semanticHighlighting.ts_interface.italic=false 19 | semanticHighlighting.ts_interface.strikethrough=false 20 | semanticHighlighting.ts_interface.underline=false 21 | semanticHighlighting.ts_localVariable.bold=false 22 | semanticHighlighting.ts_localVariable.color=121,171,255 23 | semanticHighlighting.ts_localVariable.enabled=true 24 | semanticHighlighting.ts_localVariable.italic=false 25 | semanticHighlighting.ts_localVariable.strikethrough=false 26 | semanticHighlighting.ts_localVariable.underline=false 27 | semanticHighlighting.ts_method.bold=false 28 | semanticHighlighting.ts_method.color=255,255,255 29 | semanticHighlighting.ts_method.enabled=true 30 | semanticHighlighting.ts_method.italic=false 31 | semanticHighlighting.ts_method.strikethrough=false 32 | semanticHighlighting.ts_method.underline=false 33 | semanticHighlighting.ts_module.bold=false 34 | semanticHighlighting.ts_module.color=210,82,82 35 | semanticHighlighting.ts_module.enabled=true 36 | semanticHighlighting.ts_module.italic=false 37 | semanticHighlighting.ts_module.strikethrough=false 38 | semanticHighlighting.ts_module.underline=false 39 | ts_brackets=216,216,216 40 | ts_comment=199,221,12 41 | ts_default=216,216,216 42 | ts_java_doc=204,223,50 43 | ts_keyword=141,203,226 44 | ts_number=127,179,71 45 | ts_reference=255,255,255 46 | ts_string=255,198,0 47 | -------------------------------------------------------------------------------- /.metadata/.plugins/org.eclipse.core.runtime/.settings/com.puppetlabs.geppetto.pp.dsl.PP.prefs: -------------------------------------------------------------------------------- 1 | com.puppetlabs.geppetto.pp.dsl.PP.syntaxColorer.tokenStyles.comment.color=199,221,12 2 | com.puppetlabs.geppetto.pp.dsl.PP.syntaxColorer.tokenStyles.default.color=216,216,216 3 | com.puppetlabs.geppetto.pp.dsl.PP.syntaxColorer.tokenStyles.doc_bold.color=204,223,50 4 | com.puppetlabs.geppetto.pp.dsl.PP.syntaxColorer.tokenStyles.doc_fixed.color=204,223,50 5 | com.puppetlabs.geppetto.pp.dsl.PP.syntaxColorer.tokenStyles.doc_h1.color=204,223,50 6 | com.puppetlabs.geppetto.pp.dsl.PP.syntaxColorer.tokenStyles.doc_h2.color=204,223,50 7 | com.puppetlabs.geppetto.pp.dsl.PP.syntaxColorer.tokenStyles.doc_h3.color=204,223,50 8 | com.puppetlabs.geppetto.pp.dsl.PP.syntaxColorer.tokenStyles.doc_h4.color=204,223,50 9 | com.puppetlabs.geppetto.pp.dsl.PP.syntaxColorer.tokenStyles.doc_h5.color=204,223,50 10 | com.puppetlabs.geppetto.pp.dsl.PP.syntaxColorer.tokenStyles.doc_italic.color=204,223,50 11 | com.puppetlabs.geppetto.pp.dsl.PP.syntaxColorer.tokenStyles.doc_plain.color=204,223,50 12 | com.puppetlabs.geppetto.pp.dsl.PP.syntaxColorer.tokenStyles.documentation.color=204,223,50 13 | com.puppetlabs.geppetto.pp.dsl.PP.syntaxColorer.tokenStyles.error.color=216,216,216 14 | com.puppetlabs.geppetto.pp.dsl.PP.syntaxColorer.tokenStyles.keyword.color=141,203,226 15 | com.puppetlabs.geppetto.pp.dsl.PP.syntaxColorer.tokenStyles.literalkw.color=141,203,226 16 | com.puppetlabs.geppetto.pp.dsl.PP.syntaxColorer.tokenStyles.number.color=127,179,71 17 | com.puppetlabs.geppetto.pp.dsl.PP.syntaxColorer.tokenStyles.punctuation.color=216,216,216 18 | com.puppetlabs.geppetto.pp.dsl.PP.syntaxColorer.tokenStyles.regexp.color=255,198,0 19 | com.puppetlabs.geppetto.pp.dsl.PP.syntaxColorer.tokenStyles.resourceRef.color=210,82,82 20 | com.puppetlabs.geppetto.pp.dsl.PP.syntaxColorer.tokenStyles.resourceTitle.color=239,192,144 21 | com.puppetlabs.geppetto.pp.dsl.PP.syntaxColorer.tokenStyles.spaces.color=216,216,216 22 | com.puppetlabs.geppetto.pp.dsl.PP.syntaxColorer.tokenStyles.string.color=255,198,0 23 | com.puppetlabs.geppetto.pp.dsl.PP.syntaxColorer.tokenStyles.task.color=204,223,50 24 | com.puppetlabs.geppetto.pp.dsl.PP.syntaxColorer.tokenStyles.template.color=216,216,216 25 | com.puppetlabs.geppetto.pp.dsl.PP.syntaxColorer.tokenStyles.variable.color=216,216,216 26 | eclipse.preferences.version=1 27 | overriddenByCSS=,com.puppetlabs.geppetto.pp.dsl.PP.syntaxColorer.tokenStyles.doc_h5.color,com.puppetlabs.geppetto.pp.dsl.PP.syntaxColorer.tokenStyles.keyword.color,com.puppetlabs.geppetto.pp.dsl.PP.syntaxColorer.tokenStyles.resourceRef.color,com.puppetlabs.geppetto.pp.dsl.PP.syntaxColorer.tokenStyles.default.color,com.puppetlabs.geppetto.pp.dsl.PP.syntaxColorer.tokenStyles.doc_fixed.color,com.puppetlabs.geppetto.pp.dsl.PP.syntaxColorer.tokenStyles.string.color,com.puppetlabs.geppetto.pp.dsl.PP.syntaxColorer.tokenStyles.task.color,com.puppetlabs.geppetto.pp.dsl.PP.syntaxColorer.tokenStyles.error.color,com.puppetlabs.geppetto.pp.dsl.PP.syntaxColorer.tokenStyles.literalkw.color,com.puppetlabs.geppetto.pp.dsl.PP.syntaxColorer.tokenStyles.resourceTitle.color,com.puppetlabs.geppetto.pp.dsl.PP.syntaxColorer.tokenStyles.regexp.color,com.puppetlabs.geppetto.pp.dsl.PP.syntaxColorer.tokenStyles.variable.color,com.puppetlabs.geppetto.pp.dsl.PP.syntaxColorer.tokenStyles.documentation.color,com.puppetlabs.geppetto.pp.dsl.PP.syntaxColorer.tokenStyles.number.color,com.puppetlabs.geppetto.pp.dsl.PP.syntaxColorer.tokenStyles.comment.color,com.puppetlabs.geppetto.pp.dsl.PP.syntaxColorer.tokenStyles.doc_h2.color,com.puppetlabs.geppetto.pp.dsl.PP.syntaxColorer.tokenStyles.template.color,com.puppetlabs.geppetto.pp.dsl.PP.syntaxColorer.tokenStyles.doc_bold.color,com.puppetlabs.geppetto.pp.dsl.PP.syntaxColorer.tokenStyles.doc_plain.color,com.puppetlabs.geppetto.pp.dsl.PP.syntaxColorer.tokenStyles.doc_h1.color,com.puppetlabs.geppetto.pp.dsl.PP.syntaxColorer.tokenStyles.doc_h4.color,com.puppetlabs.geppetto.pp.dsl.PP.syntaxColorer.tokenStyles.doc_h3.color,com.puppetlabs.geppetto.pp.dsl.PP.syntaxColorer.tokenStyles.spaces.color,com.puppetlabs.geppetto.pp.dsl.PP.syntaxColorer.tokenStyles.doc_italic.color,com.puppetlabs.geppetto.pp.dsl.PP.syntaxColorer.tokenStyles.punctuation.color, 28 | -------------------------------------------------------------------------------- /.metadata/.plugins/org.eclipse.core.runtime/.settings/org.cloudsmith.geppetto.pp.dsl.PP.prefs: -------------------------------------------------------------------------------- 1 | eclipse.preferences.version=1 2 | org.cloudsmith.geppetto.pp.dsl.PP.syntaxColorer.tokenStyles.comment.color=199,221,12 3 | org.cloudsmith.geppetto.pp.dsl.PP.syntaxColorer.tokenStyles.default.color=216,216,216 4 | org.cloudsmith.geppetto.pp.dsl.PP.syntaxColorer.tokenStyles.doc_bold.color=204,223,50 5 | org.cloudsmith.geppetto.pp.dsl.PP.syntaxColorer.tokenStyles.doc_fixed.color=204,223,50 6 | org.cloudsmith.geppetto.pp.dsl.PP.syntaxColorer.tokenStyles.doc_h1.color=204,223,50 7 | org.cloudsmith.geppetto.pp.dsl.PP.syntaxColorer.tokenStyles.doc_h2.color=204,223,50 8 | org.cloudsmith.geppetto.pp.dsl.PP.syntaxColorer.tokenStyles.doc_h3.color=204,223,50 9 | org.cloudsmith.geppetto.pp.dsl.PP.syntaxColorer.tokenStyles.doc_h4.color=204,223,50 10 | org.cloudsmith.geppetto.pp.dsl.PP.syntaxColorer.tokenStyles.doc_h5.color=204,223,50 11 | org.cloudsmith.geppetto.pp.dsl.PP.syntaxColorer.tokenStyles.doc_italic.color=204,223,50 12 | org.cloudsmith.geppetto.pp.dsl.PP.syntaxColorer.tokenStyles.doc_plain.color=204,223,50 13 | org.cloudsmith.geppetto.pp.dsl.PP.syntaxColorer.tokenStyles.documentation.color=204,223,50 14 | org.cloudsmith.geppetto.pp.dsl.PP.syntaxColorer.tokenStyles.error.color=216,216,216 15 | org.cloudsmith.geppetto.pp.dsl.PP.syntaxColorer.tokenStyles.keyword.color=141,203,226 16 | org.cloudsmith.geppetto.pp.dsl.PP.syntaxColorer.tokenStyles.literalkw.color=141,203,226 17 | org.cloudsmith.geppetto.pp.dsl.PP.syntaxColorer.tokenStyles.number.color=127,179,71 18 | org.cloudsmith.geppetto.pp.dsl.PP.syntaxColorer.tokenStyles.punctuation.color=216,216,216 19 | org.cloudsmith.geppetto.pp.dsl.PP.syntaxColorer.tokenStyles.regexp.color=255,198,0 20 | org.cloudsmith.geppetto.pp.dsl.PP.syntaxColorer.tokenStyles.resourceRef.color=210,82,82 21 | org.cloudsmith.geppetto.pp.dsl.PP.syntaxColorer.tokenStyles.resourceTitle.color=239,192,144 22 | org.cloudsmith.geppetto.pp.dsl.PP.syntaxColorer.tokenStyles.spaces.color=216,216,216 23 | org.cloudsmith.geppetto.pp.dsl.PP.syntaxColorer.tokenStyles.string.color=255,198,0 24 | org.cloudsmith.geppetto.pp.dsl.PP.syntaxColorer.tokenStyles.task.color=204,223,50 25 | org.cloudsmith.geppetto.pp.dsl.PP.syntaxColorer.tokenStyles.template.color=216,216,216 26 | org.cloudsmith.geppetto.pp.dsl.PP.syntaxColorer.tokenStyles.variable.color=216,216,216 27 | overriddenByCSS=,org.cloudsmith.geppetto.pp.dsl.PP.syntaxColorer.tokenStyles.task.color,org.cloudsmith.geppetto.pp.dsl.PP.syntaxColorer.tokenStyles.number.color,org.cloudsmith.geppetto.pp.dsl.PP.syntaxColorer.tokenStyles.doc_h4.color,org.cloudsmith.geppetto.pp.dsl.PP.syntaxColorer.tokenStyles.resourceRef.color,org.cloudsmith.geppetto.pp.dsl.PP.syntaxColorer.tokenStyles.doc_h2.color,org.cloudsmith.geppetto.pp.dsl.PP.syntaxColorer.tokenStyles.doc_italic.color,org.cloudsmith.geppetto.pp.dsl.PP.syntaxColorer.tokenStyles.resourceTitle.color,org.cloudsmith.geppetto.pp.dsl.PP.syntaxColorer.tokenStyles.literalkw.color,org.cloudsmith.geppetto.pp.dsl.PP.syntaxColorer.tokenStyles.doc_bold.color,org.cloudsmith.geppetto.pp.dsl.PP.syntaxColorer.tokenStyles.template.color,org.cloudsmith.geppetto.pp.dsl.PP.syntaxColorer.tokenStyles.variable.color,org.cloudsmith.geppetto.pp.dsl.PP.syntaxColorer.tokenStyles.doc_h5.color,org.cloudsmith.geppetto.pp.dsl.PP.syntaxColorer.tokenStyles.doc_plain.color,org.cloudsmith.geppetto.pp.dsl.PP.syntaxColorer.tokenStyles.doc_fixed.color,org.cloudsmith.geppetto.pp.dsl.PP.syntaxColorer.tokenStyles.comment.color,org.cloudsmith.geppetto.pp.dsl.PP.syntaxColorer.tokenStyles.regexp.color,org.cloudsmith.geppetto.pp.dsl.PP.syntaxColorer.tokenStyles.keyword.color,org.cloudsmith.geppetto.pp.dsl.PP.syntaxColorer.tokenStyles.string.color,org.cloudsmith.geppetto.pp.dsl.PP.syntaxColorer.tokenStyles.default.color,org.cloudsmith.geppetto.pp.dsl.PP.syntaxColorer.tokenStyles.error.color,org.cloudsmith.geppetto.pp.dsl.PP.syntaxColorer.tokenStyles.punctuation.color,org.cloudsmith.geppetto.pp.dsl.PP.syntaxColorer.tokenStyles.doc_h3.color,org.cloudsmith.geppetto.pp.dsl.PP.syntaxColorer.tokenStyles.documentation.color,org.cloudsmith.geppetto.pp.dsl.PP.syntaxColorer.tokenStyles.doc_h1.color,org.cloudsmith.geppetto.pp.dsl.PP.syntaxColorer.tokenStyles.spaces.color, 28 | -------------------------------------------------------------------------------- /E-Commerce-Backend/src/main/java/com/masai/controller/SellerController.java: -------------------------------------------------------------------------------- 1 | package com.masai.controller; 2 | 3 | import java.util.List; 4 | 5 | import javax.validation.Valid; 6 | 7 | import org.springframework.beans.factory.annotation.Autowired; 8 | import org.springframework.http.HttpStatus; 9 | import org.springframework.http.ResponseEntity; 10 | import org.springframework.web.bind.annotation.DeleteMapping; 11 | import org.springframework.web.bind.annotation.GetMapping; 12 | import org.springframework.web.bind.annotation.PathVariable; 13 | import org.springframework.web.bind.annotation.PostMapping; 14 | import org.springframework.web.bind.annotation.PutMapping; 15 | import org.springframework.web.bind.annotation.RequestBody; 16 | import org.springframework.web.bind.annotation.RequestHeader; 17 | import org.springframework.web.bind.annotation.RequestParam; 18 | import org.springframework.web.bind.annotation.RestController; 19 | 20 | import com.masai.models.Seller; 21 | import com.masai.models.SellerDTO; 22 | import com.masai.models.SessionDTO; 23 | import com.masai.service.SellerService; 24 | 25 | @RestController 26 | public class SellerController { 27 | 28 | @Autowired 29 | private SellerService sService; 30 | 31 | 32 | //Add seller------------------------------------- 33 | 34 | @PostMapping("/addseller") 35 | public ResponseEntity addSellerHandler(@Valid @RequestBody Seller seller){ 36 | 37 | Seller addseller=sService.addSeller(seller); 38 | 39 | System.out.println("Seller"+ seller); 40 | 41 | return new ResponseEntity(addseller,HttpStatus.CREATED); 42 | } 43 | 44 | 45 | 46 | //Get the list of seller----------------------- 47 | 48 | 49 | @GetMapping("/sellers") 50 | public ResponseEntity> getAllSellerHandler(){ 51 | 52 | List sellers=sService.getAllSellers(); 53 | 54 | return new ResponseEntity>(sellers, HttpStatus.OK); 55 | } 56 | 57 | 58 | //Get the seller by Id............................ 59 | 60 | 61 | @GetMapping("/seller/{sellerId}") 62 | public ResponseEntity getSellerByIdHandler(@PathVariable("sellerId") Integer Id){ 63 | 64 | Seller getSeller=sService.getSellerById(Id); 65 | 66 | return new ResponseEntity(getSeller, HttpStatus.OK); 67 | } 68 | 69 | 70 | // Get Seller by mobile Number 71 | 72 | @GetMapping("/seller") 73 | public ResponseEntity getSellerByMobileHandler(@RequestParam("mobile") String mobile, @RequestHeader("token") String token){ 74 | 75 | Seller getSeller=sService.getSellerByMobile(mobile, token); 76 | 77 | return new ResponseEntity(getSeller, HttpStatus.OK); 78 | } 79 | 80 | 81 | // Get currently logged in seller 82 | 83 | @GetMapping("/seller/current") 84 | public ResponseEntity getLoggedInSellerHandler(@RequestHeader("token") String token){ 85 | 86 | Seller getSeller = sService.getCurrentlyLoggedInSeller(token); 87 | 88 | return new ResponseEntity(getSeller, HttpStatus.OK); 89 | } 90 | 91 | //Update the seller.............................. 92 | 93 | 94 | @PutMapping("/seller") 95 | public ResponseEntity updateSellerHandler(@RequestBody Seller seller, @RequestHeader("token") String token){ 96 | Seller updatedseller=sService.updateSeller(seller, token); 97 | 98 | return new ResponseEntity(updatedseller,HttpStatus.ACCEPTED); 99 | 100 | } 101 | 102 | 103 | @PutMapping("/seller/update/mobile") 104 | public ResponseEntity updateSellerMobileHandler(@Valid @RequestBody SellerDTO sellerdto, @RequestHeader("token") String token){ 105 | Seller updatedseller=sService.updateSellerMobile(sellerdto, token); 106 | 107 | return new ResponseEntity(updatedseller,HttpStatus.ACCEPTED); 108 | 109 | } 110 | 111 | 112 | @PutMapping("/seller/update/password") 113 | public ResponseEntity updateSellerPasswordHandler(@Valid @RequestBody SellerDTO sellerDto, @RequestHeader("token") String token){ 114 | return new ResponseEntity<>(sService.updateSellerPassword(sellerDto, token), HttpStatus.ACCEPTED); 115 | } 116 | 117 | 118 | @DeleteMapping("/seller/{sellerId}") 119 | public ResponseEntity deleteSellerByIdHandler(@PathVariable("sellerId") Integer Id, @RequestHeader("token") String token){ 120 | 121 | Seller deletedSeller=sService.deleteSellerById(Id, token); 122 | 123 | return new ResponseEntity(deletedSeller,HttpStatus.OK); 124 | 125 | } 126 | 127 | 128 | 129 | } 130 | -------------------------------------------------------------------------------- /E-Commerce-Backend/src/main/java/com/masai/exception/GlobalExceptionHandler.java: -------------------------------------------------------------------------------- 1 | package com.masai.exception; 2 | 3 | import java.time.LocalDateTime; 4 | 5 | import org.springframework.http.HttpStatus; 6 | import org.springframework.http.ResponseEntity; 7 | import org.springframework.web.bind.MethodArgumentNotValidException; 8 | import org.springframework.web.bind.annotation.ControllerAdvice; 9 | import org.springframework.web.bind.annotation.ExceptionHandler; 10 | import org.springframework.web.context.request.WebRequest; 11 | import org.springframework.web.servlet.NoHandlerFoundException; 12 | 13 | 14 | @ControllerAdvice 15 | public class GlobalExceptionHandler { 16 | 17 | // Custom Exception Handler Area Starts 18 | 19 | @ExceptionHandler(ProductNotFoundException.class) 20 | public ResponseEntity productNotFound(ProductNotFoundException pnf,WebRequest wr){ 21 | ErrorDetails err = new ErrorDetails(LocalDateTime.now(),pnf.getMessage(),wr.getDescription(false)); 22 | return new ResponseEntity<>(err, HttpStatus.BAD_REQUEST); 23 | } 24 | 25 | @ExceptionHandler(CategoryNotFoundException.class) 26 | public ResponseEntity categoryNotFound(CategoryNotFoundException cnf, WebRequest wr){ 27 | ErrorDetails err = new ErrorDetails(LocalDateTime.now(),cnf.getMessage(), wr.getDescription(false)); 28 | 29 | return new ResponseEntity(err,HttpStatus.NO_CONTENT); 30 | 31 | 32 | } 33 | 34 | @ExceptionHandler(SellerException.class) 35 | public ResponseEntity sellerExceptionHandler(SellerException slre, WebRequest wr){ 36 | ErrorDetails err = new ErrorDetails(LocalDateTime.now(), slre.getMessage(), wr.getDescription(false)); 37 | return new ResponseEntity<>(err, HttpStatus.BAD_REQUEST); 38 | } 39 | 40 | 41 | @ExceptionHandler(SellerNotFoundException.class) 42 | public ResponseEntity sellerNotFoundExceptionHandler(SellerNotFoundException snfe, WebRequest wr){ 43 | ErrorDetails err = new ErrorDetails(LocalDateTime.now(), snfe.getMessage(), wr.getDescription(false)); 44 | return new ResponseEntity<>(err, HttpStatus.NOT_FOUND); 45 | } 46 | 47 | 48 | @ExceptionHandler(CustomerNotFoundException.class) 49 | public ResponseEntity customerNotFoundExceptionHandler(CustomerNotFoundException cnfe, WebRequest wr){ 50 | ErrorDetails err = new ErrorDetails(LocalDateTime.now(), cnfe.getMessage(), wr.getDescription(false)); 51 | return new ResponseEntity<>(err, HttpStatus.NOT_FOUND); 52 | } 53 | 54 | @ExceptionHandler(CustomerException.class) 55 | public ResponseEntity customerExceptionHandler(CustomerException ce, WebRequest wr){ 56 | ErrorDetails err = new ErrorDetails(LocalDateTime.now(), ce.getMessage(), wr.getDescription(false)); 57 | return new ResponseEntity<>(err, HttpStatus.FORBIDDEN); 58 | } 59 | 60 | 61 | 62 | @ExceptionHandler(LoginException.class) 63 | public ResponseEntity loginExceptionHandler(LoginException le, WebRequest wr){ 64 | ErrorDetails err = new ErrorDetails(LocalDateTime.now(), le.getMessage(), wr.getDescription(false)); 65 | return new ResponseEntity<>(err, HttpStatus.FORBIDDEN); 66 | } 67 | 68 | @ExceptionHandler(OrderException.class) 69 | public ResponseEntity orderExceptionHandler(OrderException oe, WebRequest wr){ 70 | ErrorDetails err = new ErrorDetails(LocalDateTime.now(), oe.getMessage(), wr.getDescription(false)); 71 | return new ResponseEntity<>(err, HttpStatus.FORBIDDEN); 72 | } 73 | // Custom Exception Handler Area Ends 74 | 75 | 76 | @ExceptionHandler(NoHandlerFoundException.class) 77 | public ResponseEntity noHandlerFoundExceptionHandler(NoHandlerFoundException nhfe, WebRequest wr){ 78 | ErrorDetails err = new ErrorDetails(LocalDateTime.now(), nhfe.getMessage(), wr.getDescription(false)); 79 | return new ResponseEntity(err, HttpStatus.BAD_REQUEST); 80 | } 81 | 82 | 83 | 84 | @ExceptionHandler(MethodArgumentNotValidException.class) 85 | public ResponseEntity methodArgumentNotValidExceptionHandler(MethodArgumentNotValidException manv, WebRequest wr){ 86 | String message = manv.getBindingResult().getFieldError().getDefaultMessage(); 87 | ErrorDetails err = new ErrorDetails(LocalDateTime.now(), message, wr.getDescription(false)); 88 | return new ResponseEntity(err, HttpStatus.FORBIDDEN); 89 | } 90 | 91 | 92 | 93 | @ExceptionHandler(Exception.class) 94 | public ResponseEntity exceptionHandler(Exception e, WebRequest wr){ 95 | ErrorDetails err = new ErrorDetails(LocalDateTime.now(), e.getMessage(), wr.getDescription(false)); 96 | return new ResponseEntity(err, HttpStatus.BAD_REQUEST); 97 | } 98 | 99 | } 100 | -------------------------------------------------------------------------------- /E-Commerce-Backend/src/main/java/com/masai/controller/CustomerController.java: -------------------------------------------------------------------------------- 1 | package com.masai.controller; 2 | 3 | import java.util.List; 4 | 5 | import javax.validation.Valid; 6 | 7 | import org.springframework.beans.factory.annotation.Autowired; 8 | import org.springframework.http.HttpStatus; 9 | import org.springframework.http.ResponseEntity; 10 | import org.springframework.web.bind.annotation.DeleteMapping; 11 | import org.springframework.web.bind.annotation.GetMapping; 12 | import org.springframework.web.bind.annotation.PutMapping; 13 | import org.springframework.web.bind.annotation.RequestBody; 14 | import org.springframework.web.bind.annotation.RequestHeader; 15 | import org.springframework.web.bind.annotation.RequestParam; 16 | import org.springframework.web.bind.annotation.RestController; 17 | 18 | import com.masai.models.Address; 19 | import com.masai.models.CreditCard; 20 | import com.masai.models.Customer; 21 | import com.masai.models.CustomerDTO; 22 | import com.masai.models.CustomerUpdateDTO; 23 | import com.masai.models.Order; 24 | import com.masai.models.SessionDTO; 25 | import com.masai.service.CustomerService; 26 | 27 | @RestController 28 | public class CustomerController { 29 | 30 | @Autowired 31 | CustomerService customerService; 32 | 33 | // Handler to get a list of all customers 34 | 35 | @GetMapping("/customers") 36 | public ResponseEntity> getAllCustomersHandler(@RequestHeader("token") String token){ 37 | return new ResponseEntity<>(customerService.getAllCustomers(token), HttpStatus.ACCEPTED); 38 | } 39 | 40 | 41 | // Handler to Get a customer details of currently logged in user - sends data as per token 42 | 43 | @GetMapping("/customer/current") 44 | public ResponseEntity getLoggedInCustomerDetailsHandler(@RequestHeader("token") String token){ 45 | return new ResponseEntity<>(customerService.getLoggedInCustomerDetails(token), HttpStatus.ACCEPTED); 46 | } 47 | 48 | 49 | // Handler to Update a customer 50 | 51 | @PutMapping("/customer") 52 | public ResponseEntity updateCustomerHandler(@Valid @RequestBody CustomerUpdateDTO customerUpdate, @RequestHeader("token") String token){ 53 | return new ResponseEntity<>(customerService.updateCustomer(customerUpdate, token), HttpStatus.ACCEPTED); 54 | } 55 | 56 | 57 | // Handler to update a customer email-id or mobile no 58 | @PutMapping("/customer/update/credentials") 59 | public ResponseEntity updateCustomerMobileEmailHandler(@Valid @RequestBody CustomerUpdateDTO customerUpdate, @RequestHeader("token") String token){ 60 | return new ResponseEntity<>(customerService.updateCustomerMobileNoOrEmailId(customerUpdate, token), HttpStatus.ACCEPTED); 61 | } 62 | 63 | 64 | // Handler to update customer password 65 | @PutMapping("/customer/update/password") 66 | public ResponseEntity updateCustomerPasswordHandler(@Valid @RequestBody CustomerDTO customerDto, @RequestHeader("token") String token){ 67 | return new ResponseEntity<>(customerService.updateCustomerPassword(customerDto, token), HttpStatus.ACCEPTED); 68 | } 69 | 70 | 71 | // Handler to Add or update new customer Address 72 | @PutMapping("/customer/update/address") 73 | public ResponseEntity updateAddressHandler(@Valid @RequestBody Address address, @RequestParam("type") String type, @RequestHeader("token") String token){ 74 | return new ResponseEntity<>(customerService.updateAddress(address, type, token), HttpStatus.ACCEPTED); 75 | } 76 | 77 | 78 | // Handler to update Credit card details 79 | @PutMapping("/customer/update/card") 80 | public ResponseEntity updateCreditCardHandler(@RequestHeader("token") String token, @Valid @RequestBody CreditCard newCard){ 81 | return new ResponseEntity<>(customerService.updateCreditCardDetails(token, newCard), HttpStatus.ACCEPTED); 82 | } 83 | 84 | 85 | // Handler to Remove a user address 86 | @DeleteMapping("/customer/delete/address") 87 | public ResponseEntity deleteAddressHandler(@RequestParam("type") String type, @RequestHeader("token") String token){ 88 | return new ResponseEntity<>(customerService.deleteAddress(type, token), HttpStatus.ACCEPTED); 89 | } 90 | 91 | // Handler to delete customer 92 | @DeleteMapping("/customer") 93 | public ResponseEntity deleteCustomerHandler(@Valid @RequestBody CustomerDTO customerDto, @RequestHeader("token") String token){ 94 | return new ResponseEntity<>(customerService.deleteCustomer(customerDto, token), HttpStatus.ACCEPTED); 95 | } 96 | 97 | 98 | 99 | @GetMapping("/customer/orders") 100 | public ResponseEntity> getCustomerOrdersHandler(@RequestHeader("token") String token){ 101 | return new ResponseEntity<>(customerService.getCustomerOrders(token), HttpStatus.ACCEPTED); 102 | } 103 | } 104 | -------------------------------------------------------------------------------- /E-Commerce-Backend/src/main/java/com/masai/controller/ProductController.java: -------------------------------------------------------------------------------- 1 | package com.masai.controller; 2 | 3 | import java.util.List; 4 | 5 | import javax.validation.Valid; 6 | 7 | import org.springframework.beans.factory.annotation.Autowired; 8 | import org.springframework.http.HttpStatus; 9 | import org.springframework.http.ResponseEntity; 10 | import org.springframework.web.bind.annotation.DeleteMapping; 11 | import org.springframework.web.bind.annotation.GetMapping; 12 | import org.springframework.web.bind.annotation.PathVariable; 13 | import org.springframework.web.bind.annotation.PostMapping; 14 | import org.springframework.web.bind.annotation.PutMapping; 15 | import org.springframework.web.bind.annotation.RequestBody; 16 | import org.springframework.web.bind.annotation.RequestHeader; 17 | import org.springframework.web.bind.annotation.RestController; 18 | 19 | import com.masai.models.CategoryEnum; 20 | import com.masai.models.Product; 21 | import com.masai.models.ProductDTO; 22 | import com.masai.models.ProductStatus; 23 | import com.masai.service.ProductService; 24 | 25 | import io.swagger.v3.oas.models.security.SecurityScheme.In; 26 | 27 | @RestController 28 | public class ProductController { 29 | 30 | @Autowired 31 | private ProductService pService; 32 | 33 | // this method adds new product to catalog by seller(if seller is new it adds 34 | // seller as well 35 | // if seller is already existing products will be mapped to same seller) and 36 | // returns added product 37 | 38 | @PostMapping("/products") 39 | public ResponseEntity addProductToCatalogHandler(@RequestHeader("token") String token, 40 | @Valid @RequestBody Product product) { 41 | 42 | Product prod = pService.addProductToCatalog(token, product); 43 | 44 | return new ResponseEntity(prod, HttpStatus.ACCEPTED); 45 | 46 | } 47 | 48 | // This method gets the product which needs to be added to the cart returns 49 | // product 50 | 51 | @GetMapping("/product/{id}") 52 | public ResponseEntity getProductFromCatalogByIdHandler(@PathVariable("id") Integer id) { 53 | 54 | Product prod = pService.getProductFromCatalogById(id); 55 | 56 | return new ResponseEntity(prod, HttpStatus.FOUND); 57 | 58 | } 59 | 60 | // This method will delete the product from catalog and returns the response 61 | // This will be called only when the product qty will be zero or seller wants to 62 | // delete for any other reason 63 | 64 | @DeleteMapping("/product/{id}") 65 | public ResponseEntity deleteProductFromCatalogHandler(@PathVariable("id") Integer id) { 66 | 67 | String res = pService.deleteProductFromCatalog(id); 68 | return new ResponseEntity(res, HttpStatus.OK); 69 | } 70 | 71 | @PutMapping("/products") 72 | public ResponseEntity updateProductInCatalogHandler(@Valid @RequestBody Product prod) { 73 | 74 | Product prod1 = pService.updateProductIncatalog(prod); 75 | 76 | return new ResponseEntity(prod1, HttpStatus.OK); 77 | 78 | } 79 | 80 | @GetMapping("/products") 81 | public ResponseEntity> getAllProductsHandler() { 82 | 83 | List list = pService.getAllProductsIncatalog(); 84 | 85 | return new ResponseEntity>(list, HttpStatus.OK); 86 | } 87 | 88 | //this method gets the products mapped to a particular seller 89 | @GetMapping("/products/seller/{id}") 90 | public ResponseEntity> getAllProductsOfSellerHandler(@PathVariable("id") Integer id) { 91 | 92 | List list = pService.getAllProductsOfSeller(id); 93 | 94 | return new ResponseEntity>(list, HttpStatus.OK); 95 | } 96 | 97 | @GetMapping("/products/{catenum}") 98 | public ResponseEntity> getAllProductsInCategory(@PathVariable("catenum") String catenum) { 99 | CategoryEnum ce = CategoryEnum.valueOf(catenum.toUpperCase()); 100 | List list = pService.getProductsOfCategory(ce); 101 | return new ResponseEntity>(list, HttpStatus.OK); 102 | 103 | } 104 | 105 | @GetMapping("/products/status/{status}") 106 | public ResponseEntity> getProductsWithStatusHandler(@PathVariable("status") String status) { 107 | 108 | ProductStatus ps = ProductStatus.valueOf(status.toUpperCase()); 109 | List list = pService.getProductsOfStatus(ps); 110 | 111 | return new ResponseEntity>(list, HttpStatus.OK); 112 | 113 | } 114 | 115 | 116 | @PutMapping("/products/{id}") 117 | public ResponseEntity updateQuantityOfProduct(@PathVariable("id") Integer id,@RequestBody ProductDTO prodDto){ 118 | 119 | Product prod = pService.updateProductQuantityWithId(id, prodDto); 120 | 121 | return new ResponseEntity(prod,HttpStatus.ACCEPTED); 122 | } 123 | 124 | } 125 | -------------------------------------------------------------------------------- /E-Commerce-Backend/src/main/java/com/masai/service/ProductServiceImpl.java: -------------------------------------------------------------------------------- 1 | package com.masai.service; 2 | 3 | import java.util.List; 4 | import java.util.Optional; 5 | 6 | import org.springframework.beans.factory.annotation.Autowired; 7 | import org.springframework.stereotype.Service; 8 | import org.springframework.web.bind.annotation.ResponseBody; 9 | 10 | import com.masai.exception.CategoryNotFoundException; 11 | import com.masai.exception.ProductNotFoundException; 12 | import com.masai.models.CategoryEnum; 13 | import com.masai.models.Product; 14 | import com.masai.models.ProductDTO; 15 | import com.masai.models.ProductStatus; 16 | import com.masai.models.Seller; 17 | import com.masai.repository.ProductDao; 18 | import com.masai.repository.SellerDao; 19 | 20 | @Service 21 | public class ProductServiceImpl implements ProductService { 22 | 23 | @Autowired 24 | private ProductDao prodDao; 25 | 26 | @Autowired 27 | private SellerService sService; 28 | 29 | @Autowired 30 | private SellerDao sDao; 31 | 32 | @Override 33 | public Product addProductToCatalog(String token, Product product) { 34 | 35 | Product prod = null; 36 | Seller seller1 = sService.getCurrentlyLoggedInSeller(token); 37 | product.setSeller(seller1); 38 | 39 | Seller Existingseller = sService.getSellerByMobile(product.getSeller().getMobile(), token); 40 | Optional opt = sDao.findById(Existingseller.getSellerId()); 41 | 42 | if (opt.isPresent()) { 43 | Seller seller = opt.get(); 44 | 45 | product.setSeller(seller); 46 | 47 | prod = prodDao.save(product); 48 | ; 49 | 50 | seller.getProduct().add(product); 51 | sDao.save(seller); 52 | 53 | } else { 54 | prod = prodDao.save(product); 55 | ; 56 | } 57 | 58 | return prod; 59 | } 60 | 61 | @Override 62 | public Product getProductFromCatalogById(Integer id) throws ProductNotFoundException { 63 | 64 | Optional opt = prodDao.findById(id); 65 | if (opt.isPresent()) { 66 | return opt.get(); 67 | } 68 | 69 | else 70 | throw new ProductNotFoundException("Product not found with given id"); 71 | } 72 | 73 | @Override 74 | public String deleteProductFromCatalog(Integer id) throws ProductNotFoundException { 75 | Optional opt = prodDao.findById(id); 76 | 77 | if (opt.isPresent()) { 78 | Product prod = opt.get(); 79 | System.out.println(prod); 80 | prodDao.delete(prod); 81 | return "Product deleted from catalog"; 82 | } else 83 | throw new ProductNotFoundException("Product not found with given id"); 84 | 85 | } 86 | 87 | @Override 88 | public Product updateProductIncatalog(Product prod) throws ProductNotFoundException { 89 | 90 | Optional opt = prodDao.findById(prod.getProductId()); 91 | 92 | if (opt.isPresent()) { 93 | opt.get(); 94 | Product prod1 = prodDao.save(prod); 95 | return prod1; 96 | } else 97 | throw new ProductNotFoundException("Product not found with given id"); 98 | } 99 | 100 | @Override 101 | public List getAllProductsIncatalog() { 102 | List list = prodDao.findAll(); 103 | 104 | if (list.size() > 0) { 105 | return list; 106 | } else 107 | throw new ProductNotFoundException("No products in catalog"); 108 | 109 | } 110 | 111 | @Override 112 | public List getProductsOfCategory(CategoryEnum catenum) { 113 | 114 | List list = prodDao.getAllProductsInACategory(catenum); 115 | if (list.size() > 0) { 116 | 117 | return list; 118 | } else 119 | throw new CategoryNotFoundException("No products found with category:" + catenum); 120 | } 121 | 122 | @Override 123 | public List getProductsOfStatus(ProductStatus status) { 124 | 125 | List list = prodDao.getProductsWithStatus(status); 126 | 127 | if (list.size() > 0) { 128 | return list; 129 | } else 130 | throw new ProductNotFoundException("No products found with given status:" + status); 131 | } 132 | 133 | @Override 134 | public Product updateProductQuantityWithId(Integer id,ProductDTO prodDto) { 135 | Product prod = null; 136 | Optional opt = prodDao.findById(id); 137 | 138 | if(opt!=null) { 139 | prod = opt.get(); 140 | prod.setQuantity(prod.getQuantity()+prodDto.getQuantity()); 141 | if(prod.getQuantity()>0) { 142 | prod.setStatus(ProductStatus.AVAILABLE); 143 | } 144 | prodDao.save(prod); 145 | 146 | } 147 | else 148 | throw new ProductNotFoundException("No product found with this Id"); 149 | 150 | return prod; 151 | } 152 | 153 | 154 | 155 | @Override 156 | public List getAllProductsOfSeller(Integer id) { 157 | 158 | List list = prodDao.getProductsOfASeller(id); 159 | 160 | if(list.size()>0) { 161 | 162 | return list; 163 | 164 | } 165 | 166 | else { 167 | throw new ProductNotFoundException("No products with SellerId: "+id); 168 | } 169 | } 170 | 171 | } 172 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # REST API for an E-Commerce Application 2 | 3 | * We have developed this REST API for an e-commerce application. This API performs all the fundamental CRUD operations of any e-commerce platform with user validation at every step. 4 | * This project is developed by a team of 5 members during our project week in Masai School, Bengaluru. 5 | 6 | 7 | ## E-R Diagram for the application 8 | 9 | ![E-R Diagram](./ER%20Diagram/E-Commerce%20API%20ER%20Diagram.jpeg?raw=true) 10 | 11 | ## Tech Stack 12 | 13 | * Java 14 | * Spring Framework 15 | * Spring Boot 16 | * Spring Data JPA 17 | * Hibernate 18 | * MySQL 19 | 20 | ## Modules 21 | 22 | * Login, Logout Module 23 | * Seller Module 24 | * Customer Module 25 | * Product Module 26 | * Cart Module 27 | * Order Module 28 | 29 | ## Features 30 | 31 | * Customer and Seller authentication & validation with session token having validity of 1 hour for security purposes 32 | * Seller Features: 33 | * Administrator Role of the entire application 34 | * Only registered seller with valid session token can add/update/delete products from main database 35 | * Seller can access the details of different customers, orders 36 | * Customer Features: 37 | * Registering themselves with application, and logging in to get the valid session token 38 | * Viewing different products and adding them to cart and placing orders 39 | * Only logged in user can access his orders, cart and other features. 40 | 41 | ## Contributors 42 | 43 | * [@abinashpanigrahi](https://github.com/abinashpanigrahi) 44 | * [@Dathuram16](https://github.com/Dathuram16) 45 | * [@kamalvinjamoori](https://github.com/kamalvinjamoori) 46 | * [@anandrajsingh05](https://github.com/anandrajsingh05) 47 | * [@Adithyanathkv](https://github.com/Adithyanathkv) 48 | 49 | 50 | ## Installation & Run 51 | 52 | * Before running the API server, you should update the database config inside the [application.properties](E-Commerce-Backend\src\main\resources\application.properties) file. 53 | * Update the port number, username and password as per your local database config. 54 | 55 | ``` 56 | server.port=8009 57 | 58 | spring.datasource.url=jdbc:mysql://localhost:3306/ecommercedb 59 | spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver 60 | spring.datasource.username=root 61 | spring.datasource.password=root 62 | 63 | ``` 64 | 65 | ## API Root Endpoint 66 | 67 | `https://localhost:8009/` 68 | 69 | `http://localhost:8009/swagger-ui/index.html#/` 70 | 71 | 72 | ## API Module Endpoints 73 | 74 | ### Login & Logout Module 75 | 76 | * `POST /register/customer` : Register a new customer 77 | * `POST /login/customer` : Logging in customer with valid mobile number & password 78 | * `POST /logout/customer` : Logging out customer based on session token 79 | * `POST /register/seller` : Register a new seller 80 | * `POST /login/seller` : Logging in Seller 81 | * `POST /logout/seller` : Logging out Seller based on session token 82 | 83 | 84 | ### Customer Module 85 | 86 | * `GET /customer/current` : Getting currently logged in customer 87 | * `GET /customer/orders` : Getting order history of logged in customer 88 | * `GET /customers` : Getting All customers 89 | * `PUT /customer` : Updates logged in customer 90 | * `PUT /customer/update/password` : Updates customer password 91 | * `PUT /customer/update/card` : Updates credit card details 92 | * `PUT /customer/update/address?type=home` : Updates customer's home address 93 | * `PUT /customer/update/credentials` : Updates email address and mobile number 94 | * `DELETE /customer` : Deletes logged in user with valid session token 95 | * `DELETE /customer/delete/address?type=home` : Deletes customer's home address 96 | 97 | 98 | ### Seller Module 99 | 100 | * `GET /seller/{sellerid}` : Gets seller with passed seller Id 101 | * `GET /seller/current` : Gets seller details for currently logged in seller 102 | * `GET /sellers` : Gets all sellers 103 | * `POST /addseller` : Adding new seller 104 | * `PUT /seller` : Updates seller details 105 | * `PUT /seller/update/password` : Updates seller password 106 | * `PUT /seller/update/mobile` : Updates seller mobile number 107 | * `DELETE /seller/{sellerid}` : Deletes seller with passed id 108 | 109 | 110 | ### Product Module 111 | 112 | * `GET /product/{id}` : Gets product with given product id 113 | * `GET /products` : Gets all products 114 | * `GET /products/{category}` : Gets product with given category 115 | * `GET /products/seller/{id}` : Gets product of given seller id 116 | * `POST /products` : Adds a new product to database 117 | * `PUT /products` : Updates the product with given product id 118 | * `PUT /products/{id}` : Updates product quantity 119 | * `DELETE /product/{id}` : Deletes product with given id 120 | 121 | 122 | ### Cart Module 123 | 124 | * `GET /cart` : Get all items in Customer Cart 125 | * `POST /cart/add` : Add item to Cart 126 | * `DELETE /cart` : Remove item from Cart 127 | * `DELETE /cart/clear` : Clear entire cart 128 | 129 | 130 | ### Order Module 131 | 132 | * `GET /orders/{id}` : Gets order details with given order id 133 | * `GET /orders` : Gets all orders 134 | * `GET /orders/by/date` : Gets orders placed on given date (DD-MM-YYYY) 135 | * `POST /order/place` : Places a new order based on cart items 136 | * `PUT /orders/{id}` : Updates a pending order 137 | * `DELETE /orders/{id}` : Cancels an order 138 | 139 | 140 | ### Sample API Response for Customer Login 141 | 142 | `POST localhost:8009/login/customer` 143 | 144 | * Request Body 145 | 146 | ``` 147 | { 148 | "mobileId": "9999999999", 149 | "password": "shyam123456" 150 | } 151 | ``` 152 | 153 | * Response 154 | 155 | ``` 156 | { 157 | "sessionId": 23, 158 | "token": "customer_0ad57094", 159 | "userId": 19, 160 | "userType": "customer", 161 | "sessionStartTime": "2022-06-10T10:48:20.0109626", 162 | "sessionEndTime": "2022-06-10T11:48:20.0109626" 163 | } 164 | ``` 165 | -------------------------------------------------------------------------------- /.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.dltk.tcl.ui.prefs: -------------------------------------------------------------------------------- 1 | DLTK_argument=216,216,216 2 | DLTK_argument_bold=false 3 | DLTK_argument_italic=false 4 | DLTK_argument_strikethrough=false 5 | DLTK_argument_underline=false 6 | DLTK_base_class=210,82,82 7 | DLTK_base_class_bold=false 8 | DLTK_base_class_italic=false 9 | DLTK_base_class_strikethrough=false 10 | DLTK_base_class_underline=false 11 | DLTK_class_definition=210,82,82 12 | DLTK_class_definition_bold=false 13 | DLTK_class_definition_italic=false 14 | DLTK_class_definition_strikethrough=false 15 | DLTK_class_definition_underline=false 16 | DLTK_comment_task_tag=204,223,50 17 | DLTK_comment_task_tag_bold=false 18 | DLTK_comment_task_tag_italic=false 19 | DLTK_comment_task_tag_strikethrough=false 20 | DLTK_comment_task_tag_underline=false 21 | DLTK_default=216,216,216 22 | DLTK_default_bold=false 23 | DLTK_default_italic=false 24 | DLTK_default_strikethrough=false 25 | DLTK_default_underline=false 26 | DLTK_function_definition=255,255,255 27 | DLTK_function_definition_bold=false 28 | DLTK_function_definition_italic=false 29 | DLTK_function_definition_strikethrough=false 30 | DLTK_function_definition_underline=false 31 | DLTK_keyword=141,203,226 32 | DLTK_keyword_bold=false 33 | DLTK_keyword_italic=false 34 | DLTK_keyword_return=141,203,226 35 | DLTK_keyword_return_bold=false 36 | DLTK_keyword_return_italic=false 37 | DLTK_keyword_return_strikethrough=false 38 | DLTK_keyword_return_underline=false 39 | DLTK_keyword_strikethrough=false 40 | DLTK_keyword_underline=false 41 | DLTK_number=127,179,71 42 | DLTK_number_bold=false 43 | DLTK_number_italic=false 44 | DLTK_number_strikethrough=false 45 | DLTK_number_underline=false 46 | DLTK_single_line_comment=216,216,216 47 | DLTK_single_line_comment_bold=false 48 | DLTK_single_line_comment_italic=false 49 | DLTK_single_line_comment_strikethrough=false 50 | DLTK_single_line_comment_underline=false 51 | DLTK_string=255,198,0 52 | DLTK_string_bold=false 53 | DLTK_string_italic=false 54 | DLTK_string_strikethrough=false 55 | DLTK_string_underline=false 56 | content_assist_completion_replacement_background=25,29,31 57 | content_assist_completion_replacement_background_bold=false 58 | content_assist_completion_replacement_background_italic=false 59 | content_assist_completion_replacement_background_strikethrough=false 60 | content_assist_completion_replacement_background_underline=false 61 | content_assist_completion_replacement_foreground=216,216,216 62 | content_assist_completion_replacement_foreground_bold=false 63 | content_assist_completion_replacement_foreground_italic=false 64 | content_assist_completion_replacement_foreground_strikethrough=false 65 | content_assist_completion_replacement_foreground_underline=false 66 | content_assist_parameters_background=25,29,31 67 | content_assist_parameters_background_bold=false 68 | content_assist_parameters_background_italic=false 69 | content_assist_parameters_background_strikethrough=false 70 | content_assist_parameters_background_underline=false 71 | content_assist_parameters_foreground=216,216,216 72 | content_assist_parameters_foreground_bold=false 73 | content_assist_parameters_foreground_italic=false 74 | content_assist_parameters_foreground_strikethrough=false 75 | content_assist_parameters_foreground_underline=false 76 | eclipse.preferences.version=1 77 | overriddenByCSS=,tcl_variable_italic,DLTK_base_class_bold,content_assist_completion_replacement_background_underline,DLTK_comment_task_tag_strikethrough,DLTK_argument_strikethrough,DLTK_keyword_underline,DLTK_class_definition_italic,DLTK_keyword_return_italic,content_assist_parameters_foreground_italic,DLTK_base_class_strikethrough,content_assist_parameters_background_bold,DLTK_comment_task_tag_italic,DLTK_number_bold,DLTK_function_definition,DLTK_keyword_italic,DLTK_single_line_comment_underline,DLTK_keyword,content_assist_completion_replacement_foreground_strikethrough,DLTK_base_class,DLTK_keyword_return,content_assist_parameters_background,sourceHoverBackgroundColor_bold,DLTK_number_italic,DLTK_argument_italic,content_assist_completion_replacement_background_italic,DLTK_keyword_return_underline,content_assist_completion_replacement_foreground_underline,DLTK_string_strikethrough,DLTK_argument_underline,DLTK_single_line_comment_bold,DLTK_function_definition_underline,DLTK_class_definition_strikethrough,sourceHoverBackgroundColor_strikethrough,DLTK_default_bold,DLTK_keyword_strikethrough,content_assist_completion_replacement_foreground_italic,DLTK_number_strikethrough,DLTK_class_definition_underline,DLTK_comment_task_tag,DLTK_function_definition_bold,content_assist_parameters_background_italic,DLTK_keyword_return_bold,DLTK_argument_bold,content_assist_completion_replacement_background_strikethrough,DLTK_argument,content_assist_parameters_foreground_strikethrough,content_assist_completion_replacement_foreground_bold,content_assist_completion_replacement_background_bold,DLTK_class_definition_bold,content_assist_parameters_foreground,sourceHoverBackgroundColor_italic,content_assist_parameters_foreground_underline,tcl_variable,DLTK_number,sourceHoverBackgroundColor_underline,DLTK_single_line_comment,DLTK_base_class_underline,DLTK_class_definition,DLTK_string_bold,tcl_variable_underline,sourceHoverBackgroundColor.SystemDefault,content_assist_completion_replacement_background,DLTK_default,content_assist_completion_replacement_foreground,sourceHoverBackgroundColor,DLTK_base_class_italic,DLTK_single_line_comment_italic,content_assist_parameters_background_strikethrough,DLTK_keyword_bold,content_assist_parameters_foreground_bold,DLTK_string_underline,DLTK_string,DLTK_function_definition_strikethrough,tcl_variable_strikethrough,DLTK_default_italic,DLTK_single_line_comment_strikethrough,DLTK_comment_task_tag_bold,content_assist_parameters_background_underline,tcl_variable_bold,DLTK_number_underline,DLTK_default_strikethrough,DLTK_function_definition_italic,DLTK_keyword_return_strikethrough,DLTK_default_underline,DLTK_comment_task_tag_underline,DLTK_string_italic, 78 | sourceHoverBackgroundColor=0,0,0 79 | sourceHoverBackgroundColor.SystemDefault=false 80 | sourceHoverBackgroundColor_bold=false 81 | sourceHoverBackgroundColor_italic=false 82 | sourceHoverBackgroundColor_strikethrough=false 83 | sourceHoverBackgroundColor_underline=false 84 | tcl_variable=121,171,255 85 | tcl_variable_bold=false 86 | tcl_variable_italic=false 87 | tcl_variable_strikethrough=false 88 | tcl_variable_underline=false 89 | -------------------------------------------------------------------------------- /.metadata/.plugins/org.eclipse.core.runtime/.settings/com.google.eclipse.protobuf.Protobuf.prefs: -------------------------------------------------------------------------------- 1 | com.google.eclipse.protobuf.Protobuf.syntaxColorer.tokenStyles.comment.bgColor=25,29,31 2 | com.google.eclipse.protobuf.Protobuf.syntaxColorer.tokenStyles.comment.color=199,221,12 3 | com.google.eclipse.protobuf.Protobuf.syntaxColorer.tokenStyles.default.bgColor=25,29,31 4 | com.google.eclipse.protobuf.Protobuf.syntaxColorer.tokenStyles.default.color=216,216,216 5 | com.google.eclipse.protobuf.Protobuf.syntaxColorer.tokenStyles.enum.bgColor=25,29,31 6 | com.google.eclipse.protobuf.Protobuf.syntaxColorer.tokenStyles.enum.color=127,179,71 7 | com.google.eclipse.protobuf.Protobuf.syntaxColorer.tokenStyles.enumDefinition.bgColor=25,29,31 8 | com.google.eclipse.protobuf.Protobuf.syntaxColorer.tokenStyles.enumDefinition.color=127,179,71 9 | com.google.eclipse.protobuf.Protobuf.syntaxColorer.tokenStyles.enumLiteral.bgColor=25,29,31 10 | com.google.eclipse.protobuf.Protobuf.syntaxColorer.tokenStyles.enumLiteral.color=127,179,71 11 | com.google.eclipse.protobuf.Protobuf.syntaxColorer.tokenStyles.enumLiteralDefinition.bgColor=25,29,31 12 | com.google.eclipse.protobuf.Protobuf.syntaxColorer.tokenStyles.enumLiteralDefinition.color=127,179,71 13 | com.google.eclipse.protobuf.Protobuf.syntaxColorer.tokenStyles.enumLiteralIndex.bgColor=25,29,31 14 | com.google.eclipse.protobuf.Protobuf.syntaxColorer.tokenStyles.enumLiteralIndex.color=255,255,255 15 | com.google.eclipse.protobuf.Protobuf.syntaxColorer.tokenStyles.keyword.bgColor=25,29,31 16 | com.google.eclipse.protobuf.Protobuf.syntaxColorer.tokenStyles.keyword.color=141,203,226 17 | com.google.eclipse.protobuf.Protobuf.syntaxColorer.tokenStyles.message.bgColor=25,29,31 18 | com.google.eclipse.protobuf.Protobuf.syntaxColorer.tokenStyles.message.color=210,82,82 19 | com.google.eclipse.protobuf.Protobuf.syntaxColorer.tokenStyles.messageDefinition.bgColor=25,29,31 20 | com.google.eclipse.protobuf.Protobuf.syntaxColorer.tokenStyles.messageDefinition.color=210,82,82 21 | com.google.eclipse.protobuf.Protobuf.syntaxColorer.tokenStyles.messageFieldIndex.bgColor=25,29,31 22 | com.google.eclipse.protobuf.Protobuf.syntaxColorer.tokenStyles.messageFieldIndex.color=255,255,255 23 | com.google.eclipse.protobuf.Protobuf.syntaxColorer.tokenStyles.number.bgColor=25,29,31 24 | com.google.eclipse.protobuf.Protobuf.syntaxColorer.tokenStyles.number.color=127,179,71 25 | com.google.eclipse.protobuf.Protobuf.syntaxColorer.tokenStyles.punctuation.bgColor=25,29,31 26 | com.google.eclipse.protobuf.Protobuf.syntaxColorer.tokenStyles.punctuation.color=210,82,82 27 | com.google.eclipse.protobuf.Protobuf.syntaxColorer.tokenStyles.rpcArgument.bgColor=25,29,31 28 | com.google.eclipse.protobuf.Protobuf.syntaxColorer.tokenStyles.rpcArgument.color=191,164,164 29 | com.google.eclipse.protobuf.Protobuf.syntaxColorer.tokenStyles.rpcDefinition.bgColor=25,29,31 30 | com.google.eclipse.protobuf.Protobuf.syntaxColorer.tokenStyles.rpcDefinition.color=210,82,82 31 | com.google.eclipse.protobuf.Protobuf.syntaxColorer.tokenStyles.rpcReturnType.bgColor=25,29,31 32 | com.google.eclipse.protobuf.Protobuf.syntaxColorer.tokenStyles.rpcReturnType.color=191,164,164 33 | com.google.eclipse.protobuf.Protobuf.syntaxColorer.tokenStyles.serviceDefinition.bgColor=25,29,31 34 | com.google.eclipse.protobuf.Protobuf.syntaxColorer.tokenStyles.serviceDefinition.color=210,82,82 35 | com.google.eclipse.protobuf.Protobuf.syntaxColorer.tokenStyles.string.bgColor=25,29,31 36 | com.google.eclipse.protobuf.Protobuf.syntaxColorer.tokenStyles.string.color=255,198,0 37 | eclipse.preferences.version=1 38 | overriddenByCSS=,com.google.eclipse.protobuf.Protobuf.syntaxColorer.tokenStyles.enumLiteralIndex.bgColor,com.google.eclipse.protobuf.Protobuf.syntaxColorer.tokenStyles.serviceDefinition.color,com.google.eclipse.protobuf.Protobuf.syntaxColorer.tokenStyles.message.bgColor,com.google.eclipse.protobuf.Protobuf.syntaxColorer.tokenStyles.number.color,com.google.eclipse.protobuf.Protobuf.syntaxColorer.tokenStyles.rpcDefinition.color,com.google.eclipse.protobuf.Protobuf.syntaxColorer.tokenStyles.default.bgColor,com.google.eclipse.protobuf.Protobuf.syntaxColorer.tokenStyles.enumLiteral.color,com.google.eclipse.protobuf.Protobuf.syntaxColorer.tokenStyles.messageDefinition.bgColor,com.google.eclipse.protobuf.Protobuf.syntaxColorer.tokenStyles.rpcDefinition.bgColor,com.google.eclipse.protobuf.Protobuf.syntaxColorer.tokenStyles.default.color,com.google.eclipse.protobuf.Protobuf.syntaxColorer.tokenStyles.rpcArgument.bgColor,com.google.eclipse.protobuf.Protobuf.syntaxColorer.tokenStyles.enumLiteral.bgColor,com.google.eclipse.protobuf.Protobuf.syntaxColorer.tokenStyles.keyword.color,com.google.eclipse.protobuf.Protobuf.syntaxColorer.tokenStyles.messageFieldIndex.color,com.google.eclipse.protobuf.Protobuf.syntaxColorer.tokenStyles.keyword.bgColor,com.google.eclipse.protobuf.Protobuf.syntaxColorer.tokenStyles.punctuation.bgColor,com.google.eclipse.protobuf.Protobuf.syntaxColorer.tokenStyles.rpcArgument.color,com.google.eclipse.protobuf.Protobuf.syntaxColorer.tokenStyles.string.color,com.google.eclipse.protobuf.Protobuf.syntaxColorer.tokenStyles.messageFieldIndex.bgColor,com.google.eclipse.protobuf.Protobuf.syntaxColorer.tokenStyles.comment.color,com.google.eclipse.protobuf.Protobuf.syntaxColorer.tokenStyles.punctuation.color,com.google.eclipse.protobuf.Protobuf.syntaxColorer.tokenStyles.serviceDefinition.bgColor,com.google.eclipse.protobuf.Protobuf.syntaxColorer.tokenStyles.rpcReturnType.color,com.google.eclipse.protobuf.Protobuf.syntaxColorer.tokenStyles.rpcReturnType.bgColor,com.google.eclipse.protobuf.Protobuf.syntaxColorer.tokenStyles.comment.bgColor,com.google.eclipse.protobuf.Protobuf.syntaxColorer.tokenStyles.string.bgColor,com.google.eclipse.protobuf.Protobuf.syntaxColorer.tokenStyles.enumLiteralDefinition.color,com.google.eclipse.protobuf.Protobuf.syntaxColorer.tokenStyles.enumLiteralIndex.color,com.google.eclipse.protobuf.Protobuf.syntaxColorer.tokenStyles.enum.bgColor,com.google.eclipse.protobuf.Protobuf.syntaxColorer.tokenStyles.enumLiteralDefinition.bgColor,com.google.eclipse.protobuf.Protobuf.syntaxColorer.tokenStyles.number.bgColor,com.google.eclipse.protobuf.Protobuf.syntaxColorer.tokenStyles.enumDefinition.color,com.google.eclipse.protobuf.Protobuf.syntaxColorer.tokenStyles.messageDefinition.color,com.google.eclipse.protobuf.Protobuf.syntaxColorer.tokenStyles.enumDefinition.bgColor,com.google.eclipse.protobuf.Protobuf.syntaxColorer.tokenStyles.enum.color,com.google.eclipse.protobuf.Protobuf.syntaxColorer.tokenStyles.message.color, 39 | -------------------------------------------------------------------------------- /E-Commerce-Backend/src/main/java/com/masai/service/SellerServiceImpl.java: -------------------------------------------------------------------------------- 1 | package com.masai.service; 2 | 3 | import java.util.List; 4 | import java.util.Optional; 5 | 6 | import org.springframework.beans.factory.annotation.Autowired; 7 | import org.springframework.stereotype.Service; 8 | 9 | import com.masai.exception.LoginException; 10 | import com.masai.exception.SellerException; 11 | import com.masai.models.Seller; 12 | import com.masai.models.SellerDTO; 13 | import com.masai.models.SessionDTO; 14 | import com.masai.models.UserSession; 15 | import com.masai.repository.SellerDao; 16 | import com.masai.repository.SessionDao; 17 | 18 | @Service 19 | public class SellerServiceImpl implements SellerService { 20 | 21 | @Autowired 22 | private SellerDao sellerDao; 23 | 24 | @Autowired 25 | private LoginLogoutService loginService; 26 | 27 | @Autowired 28 | private SessionDao sessionDao; 29 | 30 | 31 | @Override 32 | public Seller addSeller(Seller seller) { 33 | 34 | Seller add= sellerDao.save(seller); 35 | 36 | return add; 37 | } 38 | 39 | @Override 40 | public List getAllSellers() throws SellerException { 41 | 42 | List sellers= sellerDao.findAll(); 43 | 44 | if(sellers.size()>0) { 45 | return sellers; 46 | } 47 | else throw new SellerException("No Seller Found !"); 48 | 49 | } 50 | 51 | @Override 52 | public Seller getSellerById(Integer sellerId) { 53 | 54 | Optional seller=sellerDao.findById(sellerId); 55 | 56 | if(seller.isPresent()) { 57 | return seller.get(); 58 | } 59 | else throw new SellerException("Seller not found for this ID: "+sellerId); 60 | } 61 | 62 | @Override 63 | public Seller updateSeller(Seller seller, String token) { 64 | 65 | if(token.contains("seller") == false) { 66 | throw new LoginException("Invalid session token for seller"); 67 | } 68 | 69 | loginService.checkTokenStatus(token); 70 | 71 | Seller existingSeller=sellerDao.findById(seller.getSellerId()).orElseThrow(()-> new SellerException("Seller not found for this Id: "+seller.getSellerId())); 72 | Seller newSeller= sellerDao.save(seller); 73 | return newSeller; 74 | } 75 | 76 | @Override 77 | public Seller deleteSellerById(Integer sellerId, String token) { 78 | 79 | if(token.contains("seller") == false) { 80 | throw new LoginException("Invalid session token for seller"); 81 | } 82 | 83 | loginService.checkTokenStatus(token); 84 | 85 | Optional opt=sellerDao.findById(sellerId); 86 | 87 | if(opt.isPresent()) { 88 | 89 | UserSession user = sessionDao.findByToken(token).get(); 90 | 91 | Seller existingseller=opt.get(); 92 | 93 | if(user.getUserId() == existingseller.getSellerId()) { 94 | sellerDao.delete(existingseller); 95 | 96 | // logic to log out a seller after he deletes his account 97 | SessionDTO session = new SessionDTO(); 98 | session.setToken(token); 99 | loginService.logoutSeller(session); 100 | 101 | return existingseller; 102 | } 103 | else { 104 | throw new SellerException("Verification Error in deleting seller account"); 105 | } 106 | } 107 | else throw new SellerException("Seller not found for this ID: "+sellerId); 108 | 109 | } 110 | 111 | @Override 112 | public Seller updateSellerMobile(SellerDTO sellerdto, String token) throws SellerException { 113 | 114 | if(token.contains("seller") == false) { 115 | throw new LoginException("Invalid session token for seller"); 116 | } 117 | 118 | loginService.checkTokenStatus(token); 119 | 120 | UserSession user = sessionDao.findByToken(token).get(); 121 | 122 | Seller existingSeller=sellerDao.findById(user.getUserId()).orElseThrow(()->new SellerException("Seller not found for this ID: "+ user.getUserId())); 123 | 124 | if(existingSeller.getPassword().equals(sellerdto.getPassword())) { 125 | existingSeller.setMobile(sellerdto.getMobile()); 126 | return sellerDao.save(existingSeller); 127 | } 128 | else { 129 | throw new SellerException("Error occured in updating mobile. Please enter correct password"); 130 | } 131 | 132 | } 133 | 134 | @Override 135 | public Seller getSellerByMobile(String mobile, String token) throws SellerException { 136 | 137 | if(token.contains("seller") == false) { 138 | throw new LoginException("Invalid session token for seller"); 139 | } 140 | 141 | loginService.checkTokenStatus(token); 142 | 143 | Seller existingSeller = sellerDao.findByMobile(mobile).orElseThrow( () -> new SellerException("Seller not found with given mobile")); 144 | 145 | return existingSeller; 146 | } 147 | 148 | @Override 149 | public Seller getCurrentlyLoggedInSeller(String token) throws SellerException{ 150 | 151 | if(token.contains("seller") == false) { 152 | throw new LoginException("Invalid session token for seller"); 153 | } 154 | 155 | loginService.checkTokenStatus(token); 156 | 157 | UserSession user = sessionDao.findByToken(token).get(); 158 | 159 | Seller existingSeller=sellerDao.findById(user.getUserId()).orElseThrow(()->new SellerException("Seller not found for this ID")); 160 | 161 | return existingSeller; 162 | 163 | } 164 | 165 | 166 | // Method to update password - based on current token 167 | 168 | @Override 169 | public SessionDTO updateSellerPassword(SellerDTO sellerDTO, String token) { 170 | 171 | if(token.contains("seller") == false) { 172 | throw new LoginException("Invalid session token for seller"); 173 | } 174 | 175 | 176 | loginService.checkTokenStatus(token); 177 | 178 | UserSession user = sessionDao.findByToken(token).get(); 179 | 180 | Optional opt = sellerDao.findById(user.getUserId()); 181 | 182 | if(opt.isEmpty()) 183 | throw new SellerException("Seller does not exist"); 184 | 185 | Seller existingSeller = opt.get(); 186 | 187 | 188 | if(sellerDTO.getMobile().equals(existingSeller.getMobile()) == false) { 189 | throw new SellerException("Verification error. Mobile number does not match"); 190 | } 191 | 192 | existingSeller.setPassword(sellerDTO.getPassword()); 193 | 194 | sellerDao.save(existingSeller); 195 | 196 | SessionDTO session = new SessionDTO(); 197 | 198 | session.setToken(token); 199 | 200 | loginService.logoutSeller(session); 201 | 202 | session.setMessage("Updated password and logged out. Login again with new password"); 203 | 204 | return session; 205 | 206 | } 207 | 208 | } 209 | -------------------------------------------------------------------------------- /.metadata/.plugins/org.eclipse.core.runtime/.settings/org.scala-ide.sdt.core.prefs: -------------------------------------------------------------------------------- 1 | eclipse.preferences.version=1 2 | overriddenByCSS=,syntaxColoring.scaladocAnnotation.color,syntaxColoring.semantic.type.color,syntaxColoring.semantic.templateVar.color,syntaxColouring.bracket.colour,syntaxColoring.scaladoc.color,syntaxColoring.keyword.color,syntaxColoring.semantic.method.color,syntaxColoring.semantic.object.color,syntaxColouring.multiLineString.colour,syntaxColouring.semantic.class.colour,syntaxColouring.semantic.method.colour,syntaxColouring.keyword.colour,syntaxColouring.semantic.localVal.colour,syntaxColoring.semantic.localVal.color,syntaxColouring.semantic.localVar.colour,syntaxColouring.semantic.methodParam.colour,syntaxColouring.xml.processingInstruction.colour,syntaxColouring.semantic.lazyTemplateVal.colour,syntaxColoring.semantic.templateVal.color,syntaxColouring.semantic.package.colour,syntaxColoring.default.color,syntaxColoring.semantic.methodParam.color,syntaxColouring.semantic.trait.colour,syntaxColoring.multiLineComment.color,syntaxColoring.xml.comment.color,syntaxColouring.semantic.caseObject.colour,syntaxColoring.bracket.color,syntaxColouring.singleLineComment.colour,syntaxColouring.multiLineComment.colour,syntaxColouring.xml.attributeValue.colour,syntaxColoring.semantic.caseClass.color,syntaxColoring.xml.cdata.color,syntaxColouring.xml.equals.colour,syntaxColoring.string.color,syntaxColouring.semantic.templateVar.colour,syntaxColoring.xml.attributeValue.color,syntaxColoring.semantic.lazyLocalVal.color,syntaxColouring.semantic.templateVal.colour,syntaxColouring.operator.colour,syntaxColoring.multiLineString.color,syntaxColouring.scaladocAnnotation.colour,syntaxColouring.scaladoc.colour,syntaxColouring.semantic.object.colour,syntaxColoring.xml.equals.color,syntaxColouring.default.colour,syntaxColouring.semantic.annotation.colour,syntaxColoring.semantic.trait.color,syntaxColoring.semantic.lazyTemplateVal.color,syntaxColouring.xml.cdata.colour,syntaxColoring.singleLineComment.color,syntaxColoring.semantic.caseObject.color,syntaxColoring.xml.tagDelimiter.color,syntaxColoring.xml.attributeName.color,syntaxColouring.semantic.type.colour,syntaxColouring.semantic.typeParameter.colour,syntaxColoring.return.color,syntaxColouring.semantic.lazyLocalVal.colour,syntaxColouring.character.colour,syntaxColoring.semantic.class.color,syntaxColoring.semantic.annotation.color,syntaxColouring.xml.tagName.colour,syntaxColouring.numberLiteral.colour,syntaxColoring.numberLiteral.color,syntaxColouring.semantic.caseClass.colour,syntaxColoring.semantic.package.color,syntaxColouring.return.colour,syntaxColoring.operator.color,syntaxColoring.xml.tagName.color,syntaxColouring.xml.comment.colour,syntaxColoring.semantic.typeParameter.color,syntaxColouring.xml.tagDelimiter.colour,syntaxColoring.semantic.localVar.color,syntaxColouring.string.colour,syntaxColouring.xml.attributeName.colour,syntaxColoring.xml.processingInstruction.color, 3 | syntaxColoring.bracket.color=216,216,216 4 | syntaxColoring.default.color=216,216,216 5 | syntaxColoring.keyword.color=141,203,226 6 | syntaxColoring.multiLineComment.color=199,221,12 7 | syntaxColoring.multiLineString.color=255,198,0 8 | syntaxColoring.numberLiteral.color=127,179,71 9 | syntaxColoring.operator.color=216,216,216 10 | syntaxColoring.return.color=141,203,226 11 | syntaxColoring.scaladoc.color=204,223,50 12 | syntaxColoring.scaladocAnnotation.color=217,229,119 13 | syntaxColoring.semantic.annotation.color=255,255,255 14 | syntaxColoring.semantic.caseClass.color=210,82,82 15 | syntaxColoring.semantic.caseObject.color=127,179,71 16 | syntaxColoring.semantic.class.color=210,82,82 17 | syntaxColoring.semantic.lazyLocalVal.color=127,179,71 18 | syntaxColoring.semantic.lazyTemplateVal.color=190,214,255 19 | syntaxColoring.semantic.localVal.color=239,192,144 20 | syntaxColoring.semantic.localVar.color=121,171,255 21 | syntaxColoring.semantic.method.color=190,214,255 22 | syntaxColoring.semantic.methodParam.color=121,171,255 23 | syntaxColoring.semantic.object.color=127,179,71 24 | syntaxColoring.semantic.package.color=127,179,71 25 | syntaxColoring.semantic.templateVal.color=190,214,255 26 | syntaxColoring.semantic.templateVar.color=190,214,255 27 | syntaxColoring.semantic.trait.color=209,151,217 28 | syntaxColoring.semantic.type.color=191,164,164 29 | syntaxColoring.semantic.typeParameter.color=191,164,164 30 | syntaxColoring.singleLineComment.color=199,221,12 31 | syntaxColoring.string.color=255,198,0 32 | syntaxColoring.xml.attributeName.color=141,203,226 33 | syntaxColoring.xml.attributeValue.color=255,198,0 34 | syntaxColoring.xml.cdata.color=199,221,12 35 | syntaxColoring.xml.comment.color=199,221,12 36 | syntaxColoring.xml.equals.color=216,216,216 37 | syntaxColoring.xml.processingInstruction.color=216,216,216 38 | syntaxColoring.xml.tagDelimiter.color=216,216,216 39 | syntaxColoring.xml.tagName.color=216,216,216 40 | syntaxColouring.bracket.colour=216,216,216 41 | syntaxColouring.character.colour=255,198,0 42 | syntaxColouring.default.colour=216,216,216 43 | syntaxColouring.keyword.colour=141,203,226 44 | syntaxColouring.multiLineComment.colour=199,221,12 45 | syntaxColouring.multiLineString.colour=255,198,0 46 | syntaxColouring.numberLiteral.colour=127,179,71 47 | syntaxColouring.operator.colour=216,216,216 48 | syntaxColouring.return.colour=141,203,226 49 | syntaxColouring.scaladoc.colour=204,223,50 50 | syntaxColouring.scaladocAnnotation.colour=217,229,119 51 | syntaxColouring.semantic.annotation.colour=255,255,255 52 | syntaxColouring.semantic.caseClass.colour=210,82,82 53 | syntaxColouring.semantic.caseObject.colour=127,179,71 54 | syntaxColouring.semantic.class.colour=210,82,82 55 | syntaxColouring.semantic.lazyLocalVal.colour=127,179,71 56 | syntaxColouring.semantic.lazyTemplateVal.colour=190,214,255 57 | syntaxColouring.semantic.localVal.colour=239,192,144 58 | syntaxColouring.semantic.localVar.colour=121,171,255 59 | syntaxColouring.semantic.method.colour=190,214,255 60 | syntaxColouring.semantic.methodParam.colour=121,171,255 61 | syntaxColouring.semantic.object.colour=127,179,71 62 | syntaxColouring.semantic.package.colour=127,179,71 63 | syntaxColouring.semantic.templateVal.colour=190,214,255 64 | syntaxColouring.semantic.templateVar.colour=190,214,255 65 | syntaxColouring.semantic.trait.colour=209,151,217 66 | syntaxColouring.semantic.type.colour=191,164,164 67 | syntaxColouring.semantic.typeParameter.colour=191,164,164 68 | syntaxColouring.singleLineComment.colour=199,221,12 69 | syntaxColouring.string.colour=255,198,0 70 | syntaxColouring.xml.attributeName.colour=141,203,226 71 | syntaxColouring.xml.attributeValue.colour=255,198,0 72 | syntaxColouring.xml.cdata.colour=199,221,12 73 | syntaxColouring.xml.comment.colour=199,221,12 74 | syntaxColouring.xml.equals.colour=216,216,216 75 | syntaxColouring.xml.processingInstruction.colour=216,216,216 76 | syntaxColouring.xml.tagDelimiter.colour=216,216,216 77 | syntaxColouring.xml.tagName.colour=216,216,216 78 | -------------------------------------------------------------------------------- /E-Commerce-Backend/src/main/java/com/masai/service/CartServiceImpl.java: -------------------------------------------------------------------------------- 1 | package com.masai.service; 2 | 3 | import java.util.ArrayList; 4 | import java.util.List; 5 | import java.util.Optional; 6 | 7 | import org.springframework.beans.factory.annotation.Autowired; 8 | import org.springframework.stereotype.Service; 9 | 10 | import com.masai.exception.CartItemNotFound; 11 | import com.masai.exception.CustomerNotFoundException; 12 | import com.masai.exception.LoginException; 13 | import com.masai.models.Cart; 14 | import com.masai.models.CartDTO; 15 | import com.masai.models.CartItem; 16 | import com.masai.models.Customer; 17 | import com.masai.models.UserSession; 18 | import com.masai.repository.CartDao; 19 | import com.masai.repository.CustomerDao; 20 | import com.masai.repository.ProductDao; 21 | import com.masai.repository.SessionDao; 22 | 23 | @Service 24 | public class CartServiceImpl implements CartService { 25 | 26 | @Autowired 27 | private CartDao cartDao; 28 | 29 | @Autowired 30 | private SessionDao sessionDao; 31 | 32 | @Autowired 33 | private CartItemService cartItemService; 34 | 35 | 36 | @Autowired 37 | private CustomerDao customerDao; 38 | 39 | @Autowired 40 | private LoginLogoutService loginService; 41 | 42 | 43 | @Autowired 44 | private ProductDao productDao; 45 | 46 | @Override 47 | public Cart addProductToCart(CartDTO cartDto, String token) { 48 | 49 | 50 | if(token.contains("customer") == false) { 51 | throw new LoginException("Invalid session token for customer"); 52 | } 53 | 54 | loginService.checkTokenStatus(token); 55 | 56 | UserSession user = sessionDao.findByToken(token).get(); 57 | 58 | Optional opt = customerDao.findById(user.getUserId()); 59 | 60 | if(opt.isEmpty()) 61 | throw new CustomerNotFoundException("Customer does not exist"); 62 | 63 | Customer existingCustomer = opt.get(); 64 | 65 | Cart customerCart = existingCustomer.getCustomerCart(); 66 | 67 | List cartItems = customerCart.getCartItems(); 68 | 69 | CartItem item = cartItemService.createItemforCart(cartDto); 70 | 71 | 72 | if(cartItems.size() == 0) { 73 | cartItems.add(item); 74 | customerCart.setCartTotal(item.getCartProduct().getPrice()); 75 | } 76 | else { 77 | boolean flag = false; 78 | for(CartItem c: cartItems) { 79 | if(c.getCartProduct().getProductId() == cartDto.getProductId()) { 80 | c.setCartItemQuantity(c.getCartItemQuantity() + 1); 81 | customerCart.setCartTotal(customerCart.getCartTotal() + c.getCartProduct().getPrice()); 82 | flag = true; 83 | } 84 | } 85 | if(!flag) { 86 | cartItems.add(item); 87 | customerCart.setCartTotal(customerCart.getCartTotal() + item.getCartProduct().getPrice()); 88 | } 89 | } 90 | 91 | return cartDao.save(existingCustomer.getCustomerCart()); 92 | 93 | 94 | } 95 | 96 | 97 | 98 | @Override 99 | public Cart getCartProduct(String token) { 100 | 101 | System.out.println("Inside get cart"); 102 | 103 | if(token.contains("customer") == false) { 104 | throw new LoginException("Invalid session token for customer"); 105 | } 106 | 107 | loginService.checkTokenStatus(token); 108 | 109 | UserSession user = sessionDao.findByToken(token).get(); 110 | 111 | Optional opt = customerDao.findById(user.getUserId()); 112 | 113 | 114 | if(opt.isEmpty()) 115 | throw new CustomerNotFoundException("Customer does not exist"); 116 | 117 | Customer existingCustomer = opt.get(); 118 | 119 | // System.out.println(existingCustomer); 120 | // 121 | // System.out.println(existingCustomer.getCustomerCart()); 122 | // 123 | // System.out.println("Here reached"); 124 | // 125 | Integer cartId = existingCustomer.getCustomerCart().getCartId(); 126 | 127 | 128 | Optional optCart= cartDao.findById(cartId); 129 | 130 | if(optCart.isEmpty()) { 131 | throw new CartItemNotFound("cart Not found by Id"); 132 | } 133 | // return optCart.get().getProducts(); 134 | 135 | return optCart.get(); 136 | // return cart.getProducts(); 137 | } 138 | 139 | 140 | 141 | @Override 142 | public Cart removeProductFromCart(CartDTO cartDto, String token) { 143 | if(token.contains("customer") == false) { 144 | throw new LoginException("Invalid session token for customer"); 145 | } 146 | 147 | loginService.checkTokenStatus(token); 148 | 149 | UserSession user = sessionDao.findByToken(token).get(); 150 | 151 | Optional opt = customerDao.findById(user.getUserId()); 152 | 153 | if(opt.isEmpty()) 154 | throw new CustomerNotFoundException("Customer does not exist"); 155 | 156 | Customer existingCustomer = opt.get(); 157 | 158 | Cart customerCart = existingCustomer.getCustomerCart(); 159 | 160 | List cartItems = customerCart.getCartItems(); 161 | 162 | if(cartItems.size() == 0) { 163 | throw new CartItemNotFound("Cart is empty"); 164 | } 165 | 166 | 167 | boolean flag = false; 168 | 169 | for(CartItem c: cartItems) { 170 | System.out.println("Item" + c.getCartProduct()); 171 | if(c.getCartProduct().getProductId() == cartDto.getProductId()) { 172 | c.setCartItemQuantity(c.getCartItemQuantity() - 1); 173 | 174 | customerCart.setCartTotal(customerCart.getCartTotal() - c.getCartProduct().getPrice()); 175 | if(c.getCartItemQuantity() == 0) { 176 | 177 | cartItems.remove(c); 178 | 179 | 180 | return cartDao.save(customerCart); 181 | } 182 | flag = true; 183 | } 184 | } 185 | 186 | if(!flag) { 187 | throw new CartItemNotFound("Product not added to cart"); 188 | } 189 | 190 | if(cartItems.size() == 0) { 191 | cartDao.save(customerCart); 192 | throw new CartItemNotFound("Cart is empty now"); 193 | } 194 | 195 | return cartDao.save(customerCart); 196 | } 197 | 198 | 199 | 200 | 201 | // Method to clear entire cart 202 | 203 | @Override 204 | public Cart clearCart(String token) { 205 | 206 | if(token.contains("customer") == false) { 207 | throw new LoginException("Invalid session token for customer"); 208 | } 209 | 210 | loginService.checkTokenStatus(token); 211 | 212 | UserSession user = sessionDao.findByToken(token).get(); 213 | 214 | Optional opt = customerDao.findById(user.getUserId()); 215 | 216 | if(opt.isEmpty()) 217 | throw new CustomerNotFoundException("Customer does not exist"); 218 | 219 | Customer existingCustomer = opt.get(); 220 | 221 | Cart customerCart = existingCustomer.getCustomerCart(); 222 | 223 | if(customerCart.getCartItems().size() == 0) { 224 | throw new CartItemNotFound("Cart already empty"); 225 | } 226 | 227 | List emptyCart = new ArrayList<>(); 228 | 229 | customerCart.setCartItems(emptyCart); 230 | 231 | customerCart.setCartTotal(0.0); 232 | 233 | return cartDao.save(customerCart); 234 | } 235 | 236 | } 237 | -------------------------------------------------------------------------------- /E-Commerce-Backend/src/main/java/com/masai/service/LoginLogoutServiceImpl.java: -------------------------------------------------------------------------------- 1 | package com.masai.service; 2 | 3 | import java.time.LocalDateTime; 4 | import java.util.List; 5 | import java.util.Optional; 6 | import java.util.UUID; 7 | 8 | import org.springframework.beans.factory.annotation.Autowired; 9 | import org.springframework.stereotype.Service; 10 | 11 | import com.masai.exception.CustomerNotFoundException; 12 | import com.masai.exception.LoginException; 13 | import com.masai.exception.SellerNotFoundException; 14 | import com.masai.models.Customer; 15 | import com.masai.models.CustomerDTO; 16 | import com.masai.models.Seller; 17 | import com.masai.models.SellerDTO; 18 | import com.masai.models.SessionDTO; 19 | import com.masai.models.UserSession; 20 | import com.masai.repository.CustomerDao; 21 | import com.masai.repository.SellerDao; 22 | import com.masai.repository.SessionDao; 23 | 24 | @Service 25 | public class LoginLogoutServiceImpl implements LoginLogoutService{ 26 | 27 | 28 | @Autowired 29 | private SessionDao sessionDao; 30 | 31 | @Autowired 32 | private CustomerDao customerDao; 33 | 34 | @Autowired 35 | private SellerDao sellerDao; 36 | 37 | 38 | 39 | // Method to login a customer 40 | 41 | @Override 42 | public UserSession loginCustomer(CustomerDTO loginCustomer) { 43 | 44 | Optional res = customerDao.findByMobileNo(loginCustomer.getMobileId()); 45 | 46 | if(res.isEmpty()) 47 | throw new CustomerNotFoundException("Customer record does not exist with given mobile number"); 48 | 49 | Customer existingCustomer = res.get(); 50 | 51 | Optional opt = sessionDao.findByUserId(existingCustomer.getCustomerId()); 52 | 53 | if(opt.isPresent()) { 54 | 55 | UserSession user = opt.get(); 56 | 57 | if(user.getSessionEndTime().isBefore(LocalDateTime.now())) { 58 | sessionDao.delete(user); 59 | } 60 | else 61 | throw new LoginException("User already logged in"); 62 | 63 | } 64 | 65 | 66 | if(existingCustomer.getPassword().equals(loginCustomer.getPassword())) { 67 | 68 | UserSession newSession = new UserSession(); 69 | 70 | newSession.setUserId(existingCustomer.getCustomerId()); 71 | newSession.setUserType("customer"); 72 | newSession.setSessionStartTime(LocalDateTime.now()); 73 | newSession.setSessionEndTime(LocalDateTime.now().plusHours(1)); 74 | 75 | UUID uuid = UUID.randomUUID(); 76 | String token = "customer_" + uuid.toString().split("-")[0]; 77 | 78 | newSession.setToken(token); 79 | 80 | return sessionDao.save(newSession); 81 | } 82 | else { 83 | throw new LoginException("Password Incorrect. Try again."); 84 | } 85 | } 86 | 87 | 88 | // Method to logout a customer 89 | 90 | @Override 91 | public SessionDTO logoutCustomer(SessionDTO sessionToken) { 92 | 93 | String token = sessionToken.getToken(); 94 | 95 | checkTokenStatus(token); 96 | 97 | Optional opt = sessionDao.findByToken(token); 98 | 99 | if(!opt.isPresent()) 100 | throw new LoginException("User not logged in. Invalid session token. Login Again."); 101 | 102 | UserSession session = opt.get(); 103 | 104 | sessionDao.delete(session); 105 | 106 | sessionToken.setMessage("Logged out sucessfully."); 107 | 108 | return sessionToken; 109 | } 110 | 111 | 112 | 113 | // Method to check status of session token 114 | 115 | 116 | @Override 117 | public void checkTokenStatus(String token) { 118 | 119 | Optional opt = sessionDao.findByToken(token); 120 | 121 | if(opt.isPresent()) { 122 | UserSession session = opt.get(); 123 | LocalDateTime endTime = session.getSessionEndTime(); 124 | boolean flag = false; 125 | if(endTime.isBefore(LocalDateTime.now())) { 126 | sessionDao.delete(session); 127 | flag = true; 128 | } 129 | 130 | deleteExpiredTokens(); 131 | if(flag) 132 | throw new LoginException("Session expired. Login Again"); 133 | } 134 | else { 135 | throw new LoginException("User not logged in. Invalid session token. Please login first."); 136 | } 137 | 138 | } 139 | 140 | 141 | // Method to login a valid seller and generate a seller token 142 | 143 | @Override 144 | public UserSession loginSeller(SellerDTO seller) { 145 | 146 | Optional res = sellerDao.findByMobile(seller.getMobile()); 147 | 148 | if(res.isEmpty()) 149 | throw new SellerNotFoundException("Seller record does not exist with given mobile number"); 150 | 151 | Seller existingSeller = res.get(); 152 | 153 | Optional opt = sessionDao.findByUserId(existingSeller.getSellerId()); 154 | 155 | if(opt.isPresent()) { 156 | 157 | UserSession user = opt.get(); 158 | 159 | if(user.getSessionEndTime().isBefore(LocalDateTime.now())) { 160 | sessionDao.delete(user); 161 | } 162 | else 163 | throw new LoginException("User already logged in"); 164 | 165 | } 166 | 167 | 168 | if(existingSeller.getPassword().equals(seller.getPassword())) { 169 | 170 | UserSession newSession = new UserSession(); 171 | 172 | newSession.setUserId(existingSeller.getSellerId()); 173 | newSession.setUserType("seller"); 174 | newSession.setSessionStartTime(LocalDateTime.now()); 175 | newSession.setSessionEndTime(LocalDateTime.now().plusHours(1)); 176 | 177 | UUID uuid = UUID.randomUUID(); 178 | String token = "seller_" + uuid.toString().split("-")[0]; 179 | 180 | newSession.setToken(token); 181 | 182 | return sessionDao.save(newSession); 183 | } 184 | else { 185 | throw new LoginException("Password Incorrect. Try again."); 186 | } 187 | } 188 | 189 | 190 | // Method to logout a seller and delete his session token 191 | 192 | @Override 193 | public SessionDTO logoutSeller(SessionDTO session) { 194 | 195 | String token = session.getToken(); 196 | 197 | checkTokenStatus(token); 198 | 199 | Optional opt = sessionDao.findByToken(token); 200 | 201 | if(!opt.isPresent()) 202 | throw new LoginException("User not logged in. Invalid session token. Login Again."); 203 | 204 | UserSession user = opt.get(); 205 | 206 | sessionDao.delete(user); 207 | 208 | session.setMessage("Logged out sucessfully."); 209 | 210 | return session; 211 | } 212 | 213 | 214 | // Method to delete expired tokens 215 | 216 | @Override 217 | public void deleteExpiredTokens() { 218 | 219 | System.out.println("Inside delete tokens"); 220 | 221 | List users = sessionDao.findAll(); 222 | 223 | System.out.println(users); 224 | 225 | if(users.size() > 0) { 226 | for(UserSession user:users) { 227 | System.out.println(user.getUserId()); 228 | LocalDateTime endTime = user.getSessionEndTime(); 229 | if(endTime.isBefore(LocalDateTime.now())) { 230 | System.out.println(user.getUserId()); 231 | sessionDao.delete(user); 232 | } 233 | } 234 | } 235 | } 236 | 237 | } 238 | --------------------------------------------------------------------------------