remove member of a discussion
This commit is contained in:
		| @ -65,7 +65,7 @@ public class MessagesController { | |||||||
| 	} | 	} | ||||||
|  |  | ||||||
| 	@PatchMapping("/discussion/{id}/add") | 	@PatchMapping("/discussion/{id}/add") | ||||||
| 	public ResponseEntity<Discussion> AlterDiscussion(@RequestHeader("Authorization") String token, @PathVariable long id, @RequestBody User data){ | 	public ResponseEntity<Discussion> invite(@RequestHeader("Authorization") String token, @PathVariable long id, @RequestBody User data){ | ||||||
| 		User user = authServ.getUserFromToken(token); | 		User user = authServ.getUserFromToken(token); | ||||||
| 		if(user == null){ | 		if(user == null){ | ||||||
| 			return new UnauthorizedResponse<>(null); | 			return new UnauthorizedResponse<>(null); | ||||||
| @ -78,6 +78,20 @@ public class MessagesController { | |||||||
| 		return new ResponseEntity<>(disc, HttpStatus.OK); | 		return new ResponseEntity<>(disc, HttpStatus.OK); | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
|  | 	@PatchMapping("/discussion/{id}/remove") | ||||||
|  | 	public ResponseEntity<Discussion> removeMember(@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 member = userServ.getUserById(data.getRegNo()); | ||||||
|  | 		disc.delMember(member); | ||||||
|  | 		discRepo.save(disc); | ||||||
|  | 		return new ResponseEntity<>(disc, HttpStatus.OK); | ||||||
|  | 	} | ||||||
|  |  | ||||||
| 	@PostMapping("/discussion/{id}") | 	@PostMapping("/discussion/{id}") | ||||||
| 	public ResponseEntity<Discussion> sendMessage(@RequestHeader("Authorization") String token, @PathVariable long id, @RequestBody Message msg){ | 	public ResponseEntity<Discussion> sendMessage(@RequestHeader("Authorization") String token, @PathVariable long id, @RequestBody Message msg){ | ||||||
| 		User user = authServ.getUserFromToken(token); | 		User user = authServ.getUserFromToken(token); | ||||||
|  | |||||||
| @ -55,4 +55,8 @@ public class Discussion{ | |||||||
|     public void addMember(User user) { |     public void addMember(User user) { | ||||||
| 		members.add(user); | 		members.add(user); | ||||||
|     } |     } | ||||||
|  |  | ||||||
|  |     public void delMember(User user) { | ||||||
|  | 		members.remove(user); | ||||||
|  |     } | ||||||
| } | } | ||||||
|  | |||||||
| @ -7,7 +7,7 @@ | |||||||
|  |  | ||||||
| <script setup> | <script setup> | ||||||
| 	import { ref, reactive } from 'vue' | 	import { ref, reactive } from 'vue' | ||||||
| 	import { discussionsList, currentDiscussion, fetchDiscussion, createDiscussion, sendMessage, updateDiscussionName, invite} from '@/rest/msg.js' | 	import { discussionsList, currentDiscussion, fetchDiscussion, createDiscussion, sendMessage, updateDiscussionName, invite, removeMember} from '@/rest/msg.js' | ||||||
|  |  | ||||||
| 	const msgContent = ref(""); | 	const msgContent = ref(""); | ||||||
| 	const addMember = ref(false); | 	const addMember = ref(false); | ||||||
| @ -33,7 +33,7 @@ | |||||||
| 			</div> | 			</div> | ||||||
| 		</div> | 		</div> | ||||||
| 		<div id="members" v-if="currentDiscussion.length != 0"> | 		<div id="members" v-if="currentDiscussion.length != 0"> | ||||||
| 			<div class="memberItem" v-for="member in currentDiscussion.members" :key="member.id">{{ member.firstName }} {{ member.lastName.toUpperCase() }}</div> | 			<div class="memberItem" v-for="member in currentDiscussion.members" @click="removeMember(currentDiscussion.id, member.regNo)" :key="member.id"><span>{{ member.firstName }} {{ member.lastName.toUpperCase() }}</span></div> | ||||||
| 			<input type=text id="addMembers" @focus="addMember = true" @blur="addMember = false;$event.target.value = ''" @change="invite(currentDiscussion.id, $event.target.value)" :placeholder="addMember ? 'Regno' : '+'"/> | 			<input type=text id="addMembers" @focus="addMember = true" @blur="addMember = false;$event.target.value = ''" @change="invite(currentDiscussion.id, $event.target.value)" :placeholder="addMember ? 'Regno' : '+'"/> | ||||||
| 		</div> | 		</div> | ||||||
| 	</div> | 	</div> | ||||||
| @ -102,6 +102,19 @@ div#members{ | |||||||
| 	border: 1px solid darkorange; | 	border: 1px solid darkorange; | ||||||
| } | } | ||||||
|  |  | ||||||
|  | .memberItem:hover span{ | ||||||
|  | 	display: none; | ||||||
|  | } | ||||||
|  |  | ||||||
|  | .memberItem:hover{ | ||||||
|  | 	background-color: red; | ||||||
|  | } | ||||||
|  |  | ||||||
|  | .memberItem:hover:before{ | ||||||
|  | 	color: white; | ||||||
|  | 	content: "X" | ||||||
|  | } | ||||||
|  |  | ||||||
| #createDiscussion{ | #createDiscussion{ | ||||||
| 	height: 4vh; | 	height: 4vh; | ||||||
| 	margin: 5px; | 	margin: 5px; | ||||||
|  | |||||||
| @ -27,6 +27,10 @@ export async function invite(id, regNo){ | |||||||
| 	restPatch("/discussion/"+ id+ "/add", {regNo: parseInt(regNo)}).then(() => fetchDiscussion(id)) | 	restPatch("/discussion/"+ id+ "/add", {regNo: parseInt(regNo)}).then(() => fetchDiscussion(id)) | ||||||
| } | } | ||||||
|  |  | ||||||
|  | export async function removeMember(id, regNo){ | ||||||
|  | 	restPatch("/discussion/"+ id+ "/remove", {regNo: parseInt(regNo)}).then(() => fetchDiscussion(id)) | ||||||
|  | } | ||||||
|  |  | ||||||
| export async function sendMessage(id, content, responseId){ | export async function sendMessage(id, content, responseId){ | ||||||
| 	let data = { | 	let data = { | ||||||
| 		content: content, | 		content: content, | ||||||
|  | |||||||
		Reference in New Issue
	
	Block a user