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