Adding the discussion architectures and creating new discussions
This commit is contained in:
		| @ -7,9 +7,9 @@ | ||||
|  | ||||
| <script setup> | ||||
| 	import { ref, reactive } from 'vue' | ||||
| 	import { getDiscussions, currentDiscussion, fetchDiscussion } from '@/rest/msg.js' | ||||
| 	import { getDiscussions, currentDiscussion, fetchDiscussion, createDiscussion } from '@/rest/msg.js' | ||||
|  | ||||
| 	const discussionsList = reactive(await getDiscussions()); | ||||
| 	const discussionsList = ref(await getDiscussions()); | ||||
|  | ||||
| </script> | ||||
|  | ||||
| @ -17,6 +17,7 @@ | ||||
| 	<div id="msg"> | ||||
| 		<div id="discList"> | ||||
| 			<div @click="fetchDiscussion(discussion.id)" class="discItem" v-for="discussion in discussionsList" :key="discussion.id">{{ discussion.name }}</div> | ||||
| 			<button id="createDiscussion" @click="createDiscussion('New Discussion'); getDiscussions().then(e => { discussionsList = e; })">+</button> | ||||
| 		</div> | ||||
| 		<div id="discussion"> | ||||
| 			<h1 id=msgName >{{currentDiscussion.name}}</h1> | ||||
| @ -50,6 +51,8 @@ div#discList{ | ||||
| 	border-radius: 10px; | ||||
| 	overflow: hidden; | ||||
| 	padding: 10px; | ||||
| 	display: flex; | ||||
| 	flex-direction: column; | ||||
|  | ||||
| } | ||||
|  | ||||
| @ -66,6 +69,17 @@ div#discList{ | ||||
| 	border: 1px solid darkorange; | ||||
| } | ||||
|  | ||||
| #createDiscussion{ | ||||
| 	height: 4vh; | ||||
| 	margin: 5px; | ||||
| 	color: white; | ||||
| 	background-color: green; | ||||
| 	border-radius: 0 30px 30px 0; | ||||
| 	border: none; | ||||
| 	font-weight: 900; | ||||
| 	font-size: 2em; | ||||
| } | ||||
|  | ||||
| div#discussion{ | ||||
| 	display: flex; | ||||
| 	flex-direction: column; | ||||
|  | ||||
| @ -5,30 +5,19 @@ | ||||
|  * Description: Messages frontend api consumer | ||||
|  *******************************************************/ | ||||
|  | ||||
| import { restGet } from './restConsumer.js' | ||||
| import { restGet, restPost } from './restConsumer.js' | ||||
| import { ref } from 'vue' | ||||
|  | ||||
| export const currentDiscussion = ref({}); | ||||
|  | ||||
| /** | ||||
|  * @return array of | ||||
|  * - id | ||||
|  * - name | ||||
|  * - members | ||||
|  */ | ||||
| export async function getDiscussions(){ | ||||
| 	return [ | ||||
| 		{  | ||||
| 			id: 1, | ||||
| 			name: "Discussion#1", | ||||
| 			members: [1, 2, 3, 4], | ||||
| 		}, | ||||
| 		{  | ||||
| 			id: 2, | ||||
| 			name: "Discussion#2", | ||||
| 			members: [1, 4], | ||||
| 		}, | ||||
| 		{  | ||||
| 			id: 3, | ||||
| 			name: "Discussion#3", | ||||
| 			members: [1, 3], | ||||
| 		} | ||||
| 	] | ||||
| 	// return restGet("/discussions"); | ||||
| 	return restGet("/discussions"); | ||||
| } | ||||
|  | ||||
| export async function fetchDiscussion(id){ | ||||
| @ -83,3 +72,11 @@ export async function fetchDiscussion(id){ | ||||
| 	// currentDiscussion.value = restGet("/discussion/" + id); | ||||
| } | ||||
|  | ||||
| export async function createDiscussion(name){ | ||||
| 	restPost("/discussion", {name: name}); | ||||
| } | ||||
|  | ||||
|  | ||||
| export async function invite(id, regNo){ | ||||
| 	restPost("/discussion/"+ id+ "/invite", {user: regNo}); | ||||
| } | ||||
|  | ||||
		Reference in New Issue
	
	Block a user