Skip to content
New issue

Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? # to your account

serverr msg box #5

Open
wants to merge 1 commit into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
282 changes: 141 additions & 141 deletions checkstyle.xml

Large diffs are not rendered by default.

Original file line number Diff line number Diff line change
@@ -1,8 +1,10 @@
package org.youngmonkeys.message.box;

import com.tvd12.ezyhttp.core.boot.EzyHttpApplicationBootstrap;

public class MessageBoxAdminStartup {
public static void main(String[] args) throws Exception {
EzyHttpApplicationBootstrap.start(MessageBoxAdminStartup.class);
}
public static void main(String[] args) throws Exception {
EzyHttpApplicationBootstrap.start(MessageBoxAdminStartup.class);
}

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
package org.youngmonkeys.message.box.controller;

import com.tvd12.ezyfox.bean.annotation.EzyAutoBind;
import com.tvd12.ezyhttp.core.response.ResponseEntity;
import com.tvd12.ezyhttp.server.core.annotation.*;

import org.youngmonkeys.message.box.annotation.UserId;
import org.youngmonkeys.message.box.entitiy.UserProject;
import org.youngmonkeys.message.box.request.UserProjectRequest;
import org.youngmonkeys.message.box.service.impl.UserUserProjectService;

@Controller
public class UserProjectController {
@EzyAutoBind
private UserUserProjectService userProjectService;

@DoPost("/register-message-box")
public ResponseEntity createProject(@RequestBody UserProjectRequest userProjectRequest, @UserId long userId) {
UserProject userProject = userProjectService
.buildInfoFromRequest(userProjectRequest);
if (userProjectService.exitsProjectName(userProjectRequest.getProjectName())) {
return ResponseEntity.status(303).build();
}
userProjectService.saveUserProject(userProject, userId);
return ResponseEntity
.ok("Create Project Success");

}

@DoGet("/check-project-name/{projectName}")
public ResponseEntity checkProjectName(@PathVariable String projectName) {
return ResponseEntity.ok(userProjectService.exitsProjectName(projectName));
}

@DoGet("/projects")
public ResponseEntity projectsByUserId(@UserId long userId,@RequestParam("page") int page,@RequestParam("size") int size) {
return ResponseEntity.ok(userProjectService.findByUserId(userId,page,size));
}

@DoGet("/project/{key}")
public ResponseEntity getByKey(@UserId long userId,@PathVariable String key) {
return ResponseEntity.ok(userProjectService.getByKey(key) );
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
@EzyCollection
@AllArgsConstructor
@NoArgsConstructor
public class AccessToken extends BaseEntity{
public class AccessToken extends BaseEntity {
@EzyId
private String accessToken;
private long userId;
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
package org.youngmonkeys.message.box.entitiy;

import com.tvd12.ezyfox.annotation.EzyId;
import com.tvd12.ezyfox.database.annotation.EzyCollection;
import lombok.*;

@Getter
@Setter
@NoArgsConstructor
@AllArgsConstructor
@EzyCollection
@EqualsAndHashCode(of = {"id"}, callSuper = false)
public class UserProject extends BaseEntity {

@EzyId
private String id;
private String projectName;
private String key;
private long createdBy;
private long projectNumber;

public UserProject(String projectName) {
this.projectName = projectName;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,10 @@
import org.youngmonkeys.message.box.annotation.UserId;
import org.youngmonkeys.message.box.controller.HomeController;
import org.youngmonkeys.message.box.controller.LoginController;
import org.youngmonkeys.message.box.controller.UserProjectController;
import org.youngmonkeys.message.box.controller.UserController;
import org.youngmonkeys.message.box.exception.TokenNotFoundException;
import org.youngmonkeys.message.box.request.UserProjectRequest;
import org.youngmonkeys.message.box.request.UpdateUserRequest;
import org.youngmonkeys.message.box.service.IAuthenticationService;

Expand All @@ -31,7 +33,10 @@ public PermissionInterceptor() {
HomeController.class.getDeclaredMethod("home", long.class),
LoginController.class.getDeclaredMethod("logout", String.class),
UserController.class.getDeclaredMethod("userUpdateGet", long.class),
UserController.class.getDeclaredMethod("userSavePost", long.class, UpdateUserRequest.class)
UserController.class.getDeclaredMethod("userSavePost", long.class, UpdateUserRequest.class),
UserProjectController.class.getDeclaredMethod("createProject", UserProjectRequest.class,long.class),
UserProjectController.class.getDeclaredMethod("projectsByUserId",long.class,int.class,int.class),
UserProjectController.class.getDeclaredMethod("getByKey",long.class,String.class)
);
} catch (Exception e) {
throw new IllegalStateException(e);
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
package org.youngmonkeys.message.box.repository;

import com.tvd12.ezydata.mongodb.EzyMongoRepository;
import com.tvd12.ezyfox.database.annotation.EzyQuery;
import com.tvd12.ezyfox.database.annotation.EzyRepository;
import com.tvd12.ezyfox.util.Next;
import org.youngmonkeys.message.box.entitiy.UserProject;

import java.util.List;

@EzyRepository
public interface UserProjectRepository extends EzyMongoRepository<Long, UserProject> {


@EzyQuery("{$query:{createdBy:{$eq:?0}}, $orderby:{createTime:-1}}")
List<UserProject> findByCreatedByEq(long userId, Next next);

@EzyQuery("{$query:{key:{$eq:?0}}}")
UserProject findByKeyEq(String key);
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
package org.youngmonkeys.message.box.request;

import lombok.Getter;
import lombok.Setter;

@Getter
@Setter
public class UserProjectRequest {
private String projectName;
private String databaseRegisterId;
private String accessToken;
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
package org.youngmonkeys.message.box.service;

import org.youngmonkeys.message.box.entitiy.UserProject;

import java.util.List;

public interface IUserProjectService {

String saveUserProject(UserProject userProject, long userId);

boolean exitsProjectName(String projectName);

List<UserProject> findByUserId(long userId,int page,int size);

UserProject getByKey(String key);

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
package org.youngmonkeys.message.box.service.impl;

import com.tvd12.ezydata.database.repository.EzyMaxIdRepository;
import com.tvd12.ezyfox.bean.annotation.EzyAutoBind;
import com.tvd12.ezyfox.sercurity.EzySHA256;
import com.tvd12.ezyfox.util.Next;
import com.tvd12.ezyhttp.server.core.annotation.Service;
import org.youngmonkeys.message.box.entitiy.UserProject;
import org.youngmonkeys.message.box.repository.UserProjectRepository;
import org.youngmonkeys.message.box.request.UserProjectRequest;
import org.youngmonkeys.message.box.service.IUserProjectService;

import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.List;
import java.util.UUID;

@Service
public class UserUserProjectService implements IUserProjectService {
@EzyAutoBind
private UserProjectRepository userProjectRepository;
@EzyAutoBind
private EzyMaxIdRepository ezyMaxIdRepository;

@Override
public String saveUserProject(UserProject userProject, long userId) {
try {
String key = EzySHA256.cryptUtfToLowercase(
userProject.getProjectName() + UUID.randomUUID().toString() + System.currentTimeMillis()
);
userProject.setKey(key);
userProject.setCreatedBy(userId);
userProject.setCreateTime(LocalDateTime.now());
userProject.setProjectNumber(ezyMaxIdRepository.incrementAndGet("user_project"));
userProjectRepository.save(userProject);

return key;
}catch (Exception e){
return "";
}

}

public List<UserProject> findByUserId(long userId,int page,int size){
List<UserProject> userProjectList = new ArrayList<>();
userProjectList = userProjectRepository.findByCreatedByEq(userId, Next.fromSkipLimit((page+1)*size, size));
return userProjectList;
}

public UserProject buildInfoFromRequest(UserProjectRequest userProjectRequest) {
return new UserProject(userProjectRequest.getProjectName());
}

public UserProject getByKey(String key){
return userProjectRepository.findByKeyEq(key);
}

@Override
public boolean exitsProjectName(String projectName) {
return !userProjectRepository.findListByField("projectName", projectName).isEmpty();
}
}
12 changes: 7 additions & 5 deletions src/main/resources/application.properties
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
server.port=8083
database.mongo.uri= mongodb://localhost:27017/ezydata-msg-box-mongo
database.mongo.database= ezydata-msg-box-mongo
database.mongo.collection.naming.case= UNDERSCORE
database.mongo.collection.naming.ignored_suffix= Entity
access_token.expires_in= 3600
database.mongo.uri=mongodb://localhost:27017/ezydata-msg-box-mongo
database.mongo.database=ezydata-msg-box-mongo
database.mongo.collection.naming.case=UNDERSCORE
database.mongo.collection.naming.ignored_suffix=Entity
access_token.expires_in=3600
cors.enable=true
cors.allowed_origins=http://localhost:3000/
2 changes: 0 additions & 2 deletions src/main/resources/log4j.properties
Original file line number Diff line number Diff line change
@@ -1,10 +1,8 @@
# log4j.rootLogger=DEBUG, fileAppender, consoleAppender

# For console
log4j.appender.console=org.apache.log4j.ConsoleAppender
log4j.appender.console.layout=org.apache.log4j.PatternLayout
log4j.appender.console.layout.ConversionPattern=%d{HH:mm:ss,SSS} %-5p [%t] %c{2} %3x - %m%n

# Specific
log4j.category.com.tvd12=INFO,console
log4j.category.com.tvd12.reflections=WARN,console
Expand Down