diff --git a/build.gradle b/build.gradle index a89a491..ae225d9 100644 --- a/build.gradle +++ b/build.gradle @@ -43,6 +43,7 @@ dependencies { compile group: 'org.springframework.boot', name: 'spring-boot', version: springBootVersion compile group: 'org.springframework.boot', name: 'spring-boot-starter-web', version: springBootVersion compile group: 'org.springframework.boot', name: 'spring-boot-starter-test', version: springBootVersion + compile group: 'org.springframework.boot', name: 'spring-boot-starter-data-mongodb', version: springBootVersion compile group: 'org.springframework.cloud', name: 'spring-cloud-starter-sleuth', version: springSleuthVersion compile group: 'javax.el', name: 'javax.el-api', version: javaxElApiVersion compile group: 'org.glassfish', name: 'javax.el', version: glassfishVersion @@ -50,6 +51,12 @@ dependencies { tomcat "org.apache.tomcat.embed:tomcat-embed-core:${tomcatVersion}", "org.apache.tomcat.embed:tomcat-embed-logging-juli:${tomcatVersion}", "org.apache.tomcat.embed:tomcat-embed-jasper:${tomcatVersion}" + compile 'org.mongodb:mongo-java-driver:3.12.7' + compile 'org.mongodb:mongodb-driver-core:3.12.7' + compile 'commons-cli:commons-cli:1.4' + compile 'com.google.guava:guava:30.1-jre' + compile 'org.mongodb:bson:4.1.1' + compile 'com.googlecode.json-simple:json-simple:1.1.1' } task publishAllJars() { diff --git a/src/main/java/TechVault/Application.java b/src/main/java/TechVault/Application.java index 7385ead..62cae4f 100644 --- a/src/main/java/TechVault/Application.java +++ b/src/main/java/TechVault/Application.java @@ -2,8 +2,10 @@ import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.data.mongodb.repository.config.EnableMongoRepositories; -@SpringBootApplication +@SpringBootApplication(scanBasePackages="TechVault") +@EnableMongoRepositories(basePackages = "TechVault") public class Application { public static void main(String[] args) { SpringApplication.run(Application.class, args); diff --git a/src/main/java/TechVault/controller/ContentInterface.java b/src/main/java/TechVault/controller/ContentInterface.java new file mode 100644 index 0000000..29eba12 --- /dev/null +++ b/src/main/java/TechVault/controller/ContentInterface.java @@ -0,0 +1,4 @@ +package TechVault.controller; + +public class ContentInterface { +} diff --git a/src/main/java/TechVault/controller/HomeInterface.java b/src/main/java/TechVault/controller/HomeInterface.java index 58569de..f3d4395 100644 --- a/src/main/java/TechVault/controller/HomeInterface.java +++ b/src/main/java/TechVault/controller/HomeInterface.java @@ -1,15 +1,27 @@ package TechVault.controller; +import TechVault.service.user.UserService; +import TechVault.service.user.response.ContentResponse; +import org.apache.catalina.User; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RestController; +import java.util.UUID; + @Validated @RestController @RequestMapping("home") public class HomeInterface { + + @Autowired + private UserService userService; + /** * To get the home page sorted by likes in descending order. * @return A Response entity which will have all the blogs to be loaded as home page. @@ -46,4 +58,5 @@ public ResponseEntity getLatest() { public ResponseEntity getTrending() { return null; } + } diff --git a/src/main/java/TechVault/controller/UserInterface.java b/src/main/java/TechVault/controller/UserInterface.java index da1e4df..d523058 100644 --- a/src/main/java/TechVault/controller/UserInterface.java +++ b/src/main/java/TechVault/controller/UserInterface.java @@ -1,7 +1,20 @@ package TechVault.controller; +import TechVault.service.user.UserService; +import TechVault.service.user.request.LoginRequest; +import TechVault.service.user.request.UserProfileCreateRequest; +import TechVault.service.user.response.ContentResponse; +import TechVault.service.user.response.LoginResponse; +import TechVault.service.user.response.UserProfileCreateResponse; +import TechVault.service.user.response.UserProfileResponse; +import lombok.extern.java.Log; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.HttpStatus; +import org.springframework.http.MediaType; import org.springframework.http.ResponseEntity; import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RestController; @@ -11,12 +24,36 @@ @RequestMapping("user") public class UserInterface { + @Autowired + private UserService userService; + + @RequestMapping(method = RequestMethod.GET, value = "/{contentID}") + public ResponseEntity getContent(@PathVariable String contentID) { + System.out.println("Entering get Content"); + ContentResponse contentResponse = userService.getContent(contentID); + System.out.println("Content Response = " + contentResponse.getTitle()); + return new ResponseEntity<>(contentResponse, HttpStatus.OK); + } + /** * To the the profile of the user corresponding to the user id. * @return A Response entity which will have all the user details. */ @RequestMapping(method = RequestMethod.GET, value = "/{user_id}") - public ResponseEntity getUserProfile() { - return null; + public ResponseEntity getUserProfile(@PathVariable String userID) { + UserProfileResponse userProfileResponse = userService.userProfile(userID); + return new ResponseEntity<>(userProfileResponse, userProfileResponse.getStatus()); + } + + @RequestMapping(method = RequestMethod.POST, value = "/createProfile", produces = MediaType.APPLICATION_JSON_VALUE) + public ResponseEntity createUserProfile(@RequestBody UserProfileCreateRequest userProfileRequest) { + UserProfileCreateResponse userProfileCreateResponse = userService.createUserProfile(userProfileRequest); + return new ResponseEntity<>(userProfileCreateResponse, userProfileCreateResponse.getStatus()); + } + + @RequestMapping(method = RequestMethod.POST, value = "/login", produces = MediaType.APPLICATION_JSON_VALUE) + public ResponseEntity login(@RequestBody LoginRequest loginRequest) { + LoginResponse loginResponse = userService.login(loginRequest); + return new ResponseEntity<>(loginResponse, loginResponse.getStatus()); } } diff --git a/src/main/java/TechVault/service/user/UserService.java b/src/main/java/TechVault/service/user/UserService.java new file mode 100644 index 0000000..80b3941 --- /dev/null +++ b/src/main/java/TechVault/service/user/UserService.java @@ -0,0 +1,20 @@ +package TechVault.service.user; + +import TechVault.service.user.request.LoginRequest; +import TechVault.service.user.request.UserProfileCreateRequest; +import TechVault.service.user.response.ContentResponse; +import TechVault.service.user.response.LoginResponse; +import TechVault.service.user.response.UserProfileCreateResponse; +import TechVault.service.user.response.UserProfileResponse; + +import java.util.UUID; + +public interface UserService { + public ContentResponse getContent(String contentID); + + public UserProfileCreateResponse createUserProfile(UserProfileCreateRequest userProfileCreateRequest); + + public LoginResponse login(LoginRequest loginRequest); + + public UserProfileResponse userProfile(String userId); +} diff --git a/src/main/java/TechVault/service/user/UserServiceImpl.java b/src/main/java/TechVault/service/user/UserServiceImpl.java new file mode 100644 index 0000000..d4cf30e --- /dev/null +++ b/src/main/java/TechVault/service/user/UserServiceImpl.java @@ -0,0 +1,82 @@ +package TechVault.service.user; + +import TechVault.service.user.model.BookMark; +import TechVault.service.user.model.Content; +import TechVault.service.user.model.User; +import TechVault.service.user.persistence.BookMarkDao; +import TechVault.service.user.persistence.ContentDao; +import TechVault.service.user.persistence.UserDao; +import TechVault.service.user.request.LoginRequest; +import TechVault.service.user.request.UserProfileCreateRequest; +import TechVault.service.user.response.ContentResponse; +import TechVault.service.user.response.LoginResponse; +import TechVault.service.user.response.UserProfileCreateResponse; +import TechVault.service.user.response.UserProfileResponse; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.HttpStatus; +import org.springframework.stereotype.Service; + +import java.util.ArrayList; +import java.util.List; +import java.util.UUID; + +@Service +public class UserServiceImpl implements UserService{ + + @Autowired + private ContentDao contentDao; + + @Autowired + private UserDao userDao; + + @Autowired + private BookMarkDao bookMarkDao; + + @Override + public ContentResponse getContent(String contentID) { + Content content = contentDao.getContentByID(contentID); + System.out.println("Content Response = " + content.getTitle()); + return new ContentResponse(content.getTitle(), content.getCompany(), content.getDatePosted()); + } + + @Override + public UserProfileCreateResponse createUserProfile(UserProfileCreateRequest userProfileCreateRequest) { + try { + userDao.addUser(userProfileCreateRequest.getEmail(), userProfileCreateRequest.getPassword(), userProfileCreateRequest.getUserName()); + return new UserProfileCreateResponse("Created profile.", HttpStatus.CREATED); + } catch (Exception e) { + return new UserProfileCreateResponse("Failed to create profile.", HttpStatus.BAD_REQUEST); + } + } + + @Override + public LoginResponse login(LoginRequest loginRequest) { + if (userDao.getUserByEmailPassword(loginRequest.getEmail(), loginRequest.getPassword())) { + return new LoginResponse("Successful", HttpStatus.OK); + } + return new LoginResponse("Try again!", HttpStatus.BAD_REQUEST); + } + + @Override + public UserProfileResponse userProfile(String userId) { + try { + User user = userDao.getUserByUserId(userId); + + List bookMarks = bookMarkDao.getBookMarksByUserId(userId); + + List contentResponseList = new ArrayList<>(); + + for (BookMark bookMark : bookMarks) { + String contentId = bookMark.getContentId(); + + Content content = contentDao.getContentByID(contentId); + + contentResponseList.add(new ContentResponse(content.getTitle(), content.getCompany(), bookMark.getPostedTime().toString())); + } + + return new UserProfileResponse(userId, contentResponseList, HttpStatus.OK); + } catch (Exception e) { + return new UserProfileResponse(null, null, HttpStatus.BAD_REQUEST); + } + } +} diff --git a/src/main/java/TechVault/service/user/model/BookMark.java b/src/main/java/TechVault/service/user/model/BookMark.java new file mode 100644 index 0000000..704d429 --- /dev/null +++ b/src/main/java/TechVault/service/user/model/BookMark.java @@ -0,0 +1,26 @@ +package TechVault.service.user.model; + +import lombok.Builder; +import lombok.Data; +import lombok.Getter; +import lombok.Setter; +import org.springframework.data.mongodb.core.mapping.Document; +import org.springframework.data.mongodb.core.mapping.Field; + +import java.security.Timestamp; + +@Document(collection = "bookmark") +@Builder +@Getter +@Data +@Setter +public class BookMark { + @Field(name = "contentId") + private String contentId; + + @Field(name = "userId") + private String userId; + + @Field(name = "timeStamp") + private Timestamp postedTime; +} diff --git a/src/main/java/TechVault/service/user/model/Content.java b/src/main/java/TechVault/service/user/model/Content.java new file mode 100644 index 0000000..530bf46 --- /dev/null +++ b/src/main/java/TechVault/service/user/model/Content.java @@ -0,0 +1,57 @@ +package TechVault.service.user.model; + +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.Builder; +import lombok.Data; +import lombok.Getter; +import lombok.Setter; +import org.springframework.data.annotation.Id; +import org.springframework.data.mongodb.core.mapping.Document; +import org.springframework.data.mongodb.core.mapping.Field; + +import java.util.Date; +import java.util.List; +import java.util.UUID; + +@Document(collection = "blogs") +@Builder +@Getter +@Data +@Setter +public class Content { + @Field(name = "uuid") + private String uuid; + + @Field(name = "date") + private String datePosted; + + @Field(name = "author") + private String author; + + @Field(name = "link") + private String link; + + @Field(name = "company") + private String company; + + @Field(name = "abstract") + private String abstractText; + + @Field(name = "categories") + private String categories; + + @Field(name = "title") + private String title; + + public String getTitle() { + return title; + } + + public String getCompany() { + return company; + } + + public String getDatePosted() { + return datePosted; + } +} diff --git a/src/main/java/TechVault/service/user/model/User.java b/src/main/java/TechVault/service/user/model/User.java new file mode 100644 index 0000000..5f13870 --- /dev/null +++ b/src/main/java/TechVault/service/user/model/User.java @@ -0,0 +1,27 @@ +package TechVault.service.user.model; + +import lombok.Builder; +import lombok.Data; +import lombok.Getter; +import lombok.Setter; +import org.springframework.data.mongodb.core.mapping.Document; +import org.springframework.data.mongodb.core.mapping.Field; + +@Document(collection = "user") +@Builder +@Getter +@Data +@Setter +public class User { + @Field(name = "userId") + private String userId; + + @Field(name = "userName") + private String userName; + + @Field(name = "email") + private String email; + + @Field(name = "password") + private String password; +} diff --git a/src/main/java/TechVault/service/user/persistence/BookMarkDao.java b/src/main/java/TechVault/service/user/persistence/BookMarkDao.java new file mode 100644 index 0000000..1f44273 --- /dev/null +++ b/src/main/java/TechVault/service/user/persistence/BookMarkDao.java @@ -0,0 +1,10 @@ +package TechVault.service.user.persistence; + + +import TechVault.service.user.model.BookMark; + +import java.util.List; + +public interface BookMarkDao { + public List getBookMarksByUserId(String userId); +} diff --git a/src/main/java/TechVault/service/user/persistence/BookMarkDaoImpl.java b/src/main/java/TechVault/service/user/persistence/BookMarkDaoImpl.java new file mode 100644 index 0000000..448e698 --- /dev/null +++ b/src/main/java/TechVault/service/user/persistence/BookMarkDaoImpl.java @@ -0,0 +1,17 @@ +package TechVault.service.user.persistence; + +import TechVault.service.user.model.BookMark; +import org.springframework.beans.factory.annotation.Autowired; + +import java.util.List; + +public class BookMarkDaoImpl implements BookMarkDao { + + @Autowired + private BookMarkRepository bookMarkRepository; + + @Override + public List getBookMarksByUserId(String userId) { + return this.bookMarkRepository.findAllByUserId(userId); + } +} diff --git a/src/main/java/TechVault/service/user/persistence/BookMarkRepository.java b/src/main/java/TechVault/service/user/persistence/BookMarkRepository.java new file mode 100644 index 0000000..a164d38 --- /dev/null +++ b/src/main/java/TechVault/service/user/persistence/BookMarkRepository.java @@ -0,0 +1,11 @@ +package TechVault.service.user.persistence; + +import TechVault.service.user.model.BookMark; +import TechVault.service.user.model.User; +import org.springframework.data.mongodb.repository.MongoRepository; + +import java.util.List; + +public interface BookMarkRepository extends MongoRepository { + public List findAllByUserId(String userId); +} diff --git a/src/main/java/TechVault/service/user/persistence/CommentPersistenceConfig.java b/src/main/java/TechVault/service/user/persistence/CommentPersistenceConfig.java new file mode 100644 index 0000000..ef0baa6 --- /dev/null +++ b/src/main/java/TechVault/service/user/persistence/CommentPersistenceConfig.java @@ -0,0 +1,35 @@ +package TechVault.service.user.persistence; + +import com.mongodb.ConnectionString; +import com.mongodb.MongoClientSettings; +import com.mongodb.client.MongoClient; +import com.mongodb.client.MongoClients; +import org.springframework.context.annotation.Configuration; +import org.springframework.data.mongodb.config.AbstractMongoClientConfiguration; + +import java.util.Collection; +import java.util.Collections; + +@Configuration +public class CommentPersistenceConfig extends AbstractMongoClientConfiguration { + + @Override + protected String getDatabaseName() { + return "TechVault"; + } + + @Override + public MongoClient mongoClient() { + ConnectionString connectionString = new ConnectionString("mongodb+srv://manish:m@cluster0.kf3n4.mongodb.net/TechVault?retryWrites=true&w=majority"); + MongoClientSettings mongoClientSettings = MongoClientSettings.builder() + .applyConnectionString(connectionString) + .build(); + + return MongoClients.create(mongoClientSettings); + } + + @Override + public Collection getMappingBasePackages() { + return Collections.singleton("TechVault"); + } +} diff --git a/src/main/java/TechVault/service/user/persistence/ContentDao.java b/src/main/java/TechVault/service/user/persistence/ContentDao.java new file mode 100644 index 0000000..9871aee --- /dev/null +++ b/src/main/java/TechVault/service/user/persistence/ContentDao.java @@ -0,0 +1,10 @@ +package TechVault.service.user.persistence; + +import TechVault.service.user.model.Content; + +import java.util.UUID; + +public interface ContentDao { + + public Content getContentByID(String contentID); +} \ No newline at end of file diff --git a/src/main/java/TechVault/service/user/persistence/ContentDaoImpl.java b/src/main/java/TechVault/service/user/persistence/ContentDaoImpl.java new file mode 100644 index 0000000..dca8d81 --- /dev/null +++ b/src/main/java/TechVault/service/user/persistence/ContentDaoImpl.java @@ -0,0 +1,25 @@ +package TechVault.service.user.persistence; + +import TechVault.service.user.model.Content; +import lombok.val; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc; +import org.springframework.stereotype.Component; + +import javax.swing.plaf.synth.SynthTextAreaUI; +import java.util.UUID; + +@Component +public class ContentDaoImpl implements ContentDao { + + @Autowired + private ContentRepository contentRepository; + + @Override + public Content getContentByID(String contentID) { + System.out.println("Content ID = " + contentID); + Content temp = this.contentRepository.findByUuid(contentID); + System.out.println("Content = " + temp); + return temp; + } +} \ No newline at end of file diff --git a/src/main/java/TechVault/service/user/persistence/ContentRepository.java b/src/main/java/TechVault/service/user/persistence/ContentRepository.java new file mode 100644 index 0000000..568e1d5 --- /dev/null +++ b/src/main/java/TechVault/service/user/persistence/ContentRepository.java @@ -0,0 +1,12 @@ +package TechVault.service.user.persistence; +import TechVault.service.user.model.Content; +import org.springframework.data.mongodb.repository.MongoRepository; +import org.springframework.stereotype.Repository; + +import java.util.UUID; + +@Repository +public interface ContentRepository extends MongoRepository { + + public Content findByUuid(String contentID); +} \ No newline at end of file diff --git a/src/main/java/TechVault/service/user/persistence/UserDao.java b/src/main/java/TechVault/service/user/persistence/UserDao.java new file mode 100644 index 0000000..649aef2 --- /dev/null +++ b/src/main/java/TechVault/service/user/persistence/UserDao.java @@ -0,0 +1,13 @@ +package TechVault.service.user.persistence; + + +import TechVault.service.user.model.User; + +public interface UserDao { + + public String addUser(String email, String password, String userName); + + public boolean getUserByEmailPassword(String email, String password); + + public User getUserByUserId(String userId); +} diff --git a/src/main/java/TechVault/service/user/persistence/UserDaoImpl.java b/src/main/java/TechVault/service/user/persistence/UserDaoImpl.java new file mode 100644 index 0000000..70dd40d --- /dev/null +++ b/src/main/java/TechVault/service/user/persistence/UserDaoImpl.java @@ -0,0 +1,38 @@ +package TechVault.service.user.persistence; + +import TechVault.service.user.model.User; +import org.springframework.beans.factory.annotation.Autowired; + +import java.util.Random; + +public class UserDaoImpl implements UserDao { + + @Autowired + private UserRepository userRepository; + + @Override + public String addUser(String email, String password, String userName) { + long userId = new Random().nextLong(); + userRepository.save(User.builder() + .userId(Long.toString(userId)) + .userName(userName) + .password(password) + .email(email) + .build()); + return null; + } + + @Override + public boolean getUserByEmailPassword(String email, String password) { + User temp = this.userRepository.findByEmail(email); + if (temp.getPassword().equals(password)) { + return true; + } + return false; + } + + @Override + public User getUserByUserId(String userId) { + return this.userRepository.findByUserId(userId); + } +} diff --git a/src/main/java/TechVault/service/user/persistence/UserRepository.java b/src/main/java/TechVault/service/user/persistence/UserRepository.java new file mode 100644 index 0000000..6d66a35 --- /dev/null +++ b/src/main/java/TechVault/service/user/persistence/UserRepository.java @@ -0,0 +1,11 @@ +package TechVault.service.user.persistence; + +import TechVault.service.user.model.User; +import org.springframework.data.mongodb.repository.MongoRepository; + +public interface UserRepository extends MongoRepository { + + public User findByEmail(String email); + + public User findByUserId(String userId); +} diff --git a/src/main/java/TechVault/service/user/request/LoginRequest.java b/src/main/java/TechVault/service/user/request/LoginRequest.java new file mode 100644 index 0000000..fed9298 --- /dev/null +++ b/src/main/java/TechVault/service/user/request/LoginRequest.java @@ -0,0 +1,13 @@ +package TechVault.service.user.request; + +import lombok.Data; + +import javax.validation.constraints.NotNull; + +@Data +public class LoginRequest { + @NotNull + private String email; + @NotNull + private String password; +} diff --git a/src/main/java/TechVault/service/user/request/UserProfileCreateRequest.java b/src/main/java/TechVault/service/user/request/UserProfileCreateRequest.java new file mode 100644 index 0000000..01743a2 --- /dev/null +++ b/src/main/java/TechVault/service/user/request/UserProfileCreateRequest.java @@ -0,0 +1,15 @@ +package TechVault.service.user.request; + +import lombok.Data; + +import javax.validation.constraints.NotNull; + +@Data +public class UserProfileCreateRequest { + @NotNull + private String email; + @NotNull + private String password; + @NotNull + private String userName; +} diff --git a/src/main/java/TechVault/service/user/response/ContentResponse.java b/src/main/java/TechVault/service/user/response/ContentResponse.java new file mode 100644 index 0000000..7ae801c --- /dev/null +++ b/src/main/java/TechVault/service/user/response/ContentResponse.java @@ -0,0 +1,33 @@ +package TechVault.service.user.response; + +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonInclude; +import lombok.Data; +import org.springframework.http.HttpStatus; + +@Data +@JsonInclude(JsonInclude.Include.NON_NULL) +public class ContentResponse { + private String title; + private String source; + private String timestamp; + + public ContentResponse(String title, String company, String datePosted) { + this.title = title; + this.source = company; + this.timestamp = datePosted; + } + + public String getTitle() { + return title; + } + + public String getSource() { + return source; + } + + public String getTimestamp() { + return timestamp; + } + +} diff --git a/src/main/java/TechVault/service/user/response/LoginResponse.java b/src/main/java/TechVault/service/user/response/LoginResponse.java new file mode 100644 index 0000000..6ea62a3 --- /dev/null +++ b/src/main/java/TechVault/service/user/response/LoginResponse.java @@ -0,0 +1,18 @@ +package TechVault.service.user.response; + +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonInclude; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.RequiredArgsConstructor; +import org.springframework.http.HttpStatus; + +@Data +@AllArgsConstructor +@JsonInclude(JsonInclude.Include.NON_NULL) +public class LoginResponse { + private String message; + + @JsonIgnore + private HttpStatus status; +} diff --git a/src/main/java/TechVault/service/user/response/UserProfileCreateResponse.java b/src/main/java/TechVault/service/user/response/UserProfileCreateResponse.java new file mode 100644 index 0000000..4159689 --- /dev/null +++ b/src/main/java/TechVault/service/user/response/UserProfileCreateResponse.java @@ -0,0 +1,18 @@ +package TechVault.service.user.response; + +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonInclude; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.RequiredArgsConstructor; +import org.springframework.http.HttpStatus; + +@Data +@AllArgsConstructor +@JsonInclude(JsonInclude.Include.NON_NULL) +public class UserProfileCreateResponse { + private String message; + + @JsonIgnore + private HttpStatus status; +} diff --git a/src/main/java/TechVault/service/user/response/UserProfileResponse.java b/src/main/java/TechVault/service/user/response/UserProfileResponse.java new file mode 100644 index 0000000..a6baf3b --- /dev/null +++ b/src/main/java/TechVault/service/user/response/UserProfileResponse.java @@ -0,0 +1,18 @@ +package TechVault.service.user.response; + +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonInclude; +import lombok.Data; +import org.springframework.http.HttpStatus; + +import java.util.List; + +@Data +@JsonInclude(JsonInclude.Include.NON_NULL) +public class UserProfileResponse { + private final String userId; + private final List bookmarks; + + @JsonIgnore + private final HttpStatus status; +} diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties index 211105d..d1398d8 100644 --- a/src/main/resources/application.properties +++ b/src/main/resources/application.properties @@ -1,2 +1,5 @@ #spring.application.name: TechVault -server.port= 8080 \ No newline at end of file +server.port= 8080 + +spring.data.mongodb.uri=mongodb+srv://manish:m@cluster0.kf3n4.mongodb.net/TechVault?retryWrites=true&w=majority +spring.data.mongodb.database=TechVault \ No newline at end of file