adding members management
This commit is contained in:
		@ -1,5 +1,6 @@
 | 
			
		||||
package ovh.herisson.Clyde.EndPoints.Msg;
 | 
			
		||||
 | 
			
		||||
import org.springframework.beans.factory.annotation.Autowired;
 | 
			
		||||
import org.springframework.http.HttpStatus;
 | 
			
		||||
import org.springframework.http.ResponseEntity;
 | 
			
		||||
import org.springframework.web.bind.annotation.CrossOrigin;
 | 
			
		||||
@ -13,9 +14,11 @@ import org.springframework.web.bind.annotation.RestController;
 | 
			
		||||
 | 
			
		||||
import lombok.AllArgsConstructor;
 | 
			
		||||
import ovh.herisson.Clyde.DTO.Msg.DiscussionDTO;
 | 
			
		||||
import ovh.herisson.Clyde.Repositories.UserRepository;
 | 
			
		||||
import ovh.herisson.Clyde.Repositories.Msg.DiscussionRepository;
 | 
			
		||||
import ovh.herisson.Clyde.Responses.UnauthorizedResponse;
 | 
			
		||||
import ovh.herisson.Clyde.Services.AuthenticatorService;
 | 
			
		||||
import ovh.herisson.Clyde.Services.UserService;
 | 
			
		||||
import ovh.herisson.Clyde.Services.Msg.DiscussionService;
 | 
			
		||||
import ovh.herisson.Clyde.Tables.User;
 | 
			
		||||
import ovh.herisson.Clyde.Tables.Msg.Discussion;
 | 
			
		||||
@ -29,6 +32,7 @@ public class MessagesController {
 | 
			
		||||
	private AuthenticatorService authServ;
 | 
			
		||||
	private DiscussionService discServ;
 | 
			
		||||
	private DiscussionRepository discRepo;
 | 
			
		||||
	private UserService userServ;
 | 
			
		||||
 | 
			
		||||
	@GetMapping("/discussions")
 | 
			
		||||
	public ResponseEntity<Iterable<Discussion>> getDiscussions(@RequestHeader("Authorization") String token ){
 | 
			
		||||
@ -60,6 +64,20 @@ public class MessagesController {
 | 
			
		||||
		return new ResponseEntity<>(disc, HttpStatus.OK);
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	@PatchMapping("/discussion/{id}/add")
 | 
			
		||||
	public ResponseEntity<Discussion> AlterDiscussion(@RequestHeader("Authorization") String token, @PathVariable long id, @RequestBody User data){
 | 
			
		||||
		User user = authServ.getUserFromToken(token);
 | 
			
		||||
		if(user == null){
 | 
			
		||||
			return new UnauthorizedResponse<>(null);
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		Discussion disc = discRepo.findById(id).orElse(null);
 | 
			
		||||
		User invited = userServ.getUserById(data.getRegNo());
 | 
			
		||||
		disc.addMember(invited);
 | 
			
		||||
		discRepo.save(disc);
 | 
			
		||||
		return new ResponseEntity<>(disc, HttpStatus.OK);
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	@PostMapping("/discussion/{id}")
 | 
			
		||||
	public ResponseEntity<Discussion> sendMessage(@RequestHeader("Authorization") String token, @PathVariable long id, @RequestBody Message msg){
 | 
			
		||||
		User user = authServ.getUserFromToken(token);
 | 
			
		||||
 | 
			
		||||
@ -51,4 +51,8 @@ public class Discussion{
 | 
			
		||||
		msg.setDiscussion(this);
 | 
			
		||||
		msgs.add(msg);
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
    public void addMember(User user) {
 | 
			
		||||
		members.add(user);
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -2,11 +2,13 @@ package ovh.herisson.Clyde.Tables.Msg;
 | 
			
		||||
 | 
			
		||||
import com.fasterxml.jackson.annotation.JsonIgnore;
 | 
			
		||||
 | 
			
		||||
import jakarta.persistence.CascadeType;
 | 
			
		||||
import jakarta.persistence.Entity;
 | 
			
		||||
import jakarta.persistence.GeneratedValue;
 | 
			
		||||
import jakarta.persistence.GenerationType;
 | 
			
		||||
import jakarta.persistence.Id;
 | 
			
		||||
import jakarta.persistence.ManyToOne;
 | 
			
		||||
import jakarta.persistence.OneToMany;
 | 
			
		||||
import jakarta.persistence.OneToOne;
 | 
			
		||||
import lombok.AllArgsConstructor;
 | 
			
		||||
import lombok.Getter;
 | 
			
		||||
@ -26,7 +28,7 @@ public class Message {
 | 
			
		||||
	private long id;
 | 
			
		||||
	private String content; 
 | 
			
		||||
 | 
			
		||||
	@OneToOne
 | 
			
		||||
	@ManyToOne
 | 
			
		||||
	private User author;
 | 
			
		||||
 | 
			
		||||
	public User getAuthor() {
 | 
			
		||||
 | 
			
		||||
@ -2,6 +2,7 @@ package ovh.herisson.Clyde.Tables;
 | 
			
		||||
 | 
			
		||||
import jakarta.persistence.*;
 | 
			
		||||
import ovh.herisson.Clyde.Tables.Msg.Discussion;
 | 
			
		||||
import ovh.herisson.Clyde.Tables.Msg.Message;
 | 
			
		||||
 | 
			
		||||
import java.util.Date;
 | 
			
		||||
import java.util.List;
 | 
			
		||||
@ -24,6 +25,11 @@ public class User {
 | 
			
		||||
    private ovh.herisson.Clyde.Tables.Role role;
 | 
			
		||||
    private String password;
 | 
			
		||||
 | 
			
		||||
	////// Extension Messagerie /////
 | 
			
		||||
	@OneToMany(mappedBy = "author", cascade = CascadeType.ALL)
 | 
			
		||||
	private List<Message> msgs;
 | 
			
		||||
	/////////////////////////////////
 | 
			
		||||
 | 
			
		||||
	@ManyToMany( mappedBy = "members" )
 | 
			
		||||
	private List<Discussion> discussions;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
		Reference in New Issue
	
	Block a user