finish
This commit is contained in:
		@ -13,6 +13,7 @@ import ovh.herisson.Clyde.Tables.UserCurriculum;
 | 
			
		||||
 | 
			
		||||
import java.util.ArrayList;
 | 
			
		||||
import java.util.HashMap;
 | 
			
		||||
import java.util.List;
 | 
			
		||||
import java.util.Map;
 | 
			
		||||
 | 
			
		||||
@RestController
 | 
			
		||||
@ -149,13 +150,13 @@ public class CourseController {
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    //Get all the courses followed by an user
 | 
			
		||||
    @GetMapping("/usercourses/{userId}")
 | 
			
		||||
    public ResponseEntity<ArrayList<Course>> getAllUserCourses(@PathVariable long userId){
 | 
			
		||||
        User u = userService.getUserById(userId);
 | 
			
		||||
    @GetMapping("/usercourses")
 | 
			
		||||
    public ResponseEntity<List<Course>> getAllUserCourses(@RequestHeader("Authorization") String token){
 | 
			
		||||
        User u = authServ.getUserFromToken(token);
 | 
			
		||||
 | 
			
		||||
        //We get all the actual curriculums of the user
 | 
			
		||||
        ArrayList<UserCurriculum> userCurricula = userCurriculumService.findByStudentAndActual(u, true);
 | 
			
		||||
        ArrayList<Course> toReturn = new ArrayList<>();
 | 
			
		||||
        List<UserCurriculum> userCurricula = userCurriculumService.findByStudentAndActual(u, true);
 | 
			
		||||
        List<Course> toReturn = new ArrayList<>();
 | 
			
		||||
 | 
			
		||||
        //We iterate through all the curriculums and we extract the courses
 | 
			
		||||
        for (int i = 0; i < userCurricula.size(); i++){
 | 
			
		||||
 | 
			
		||||
@ -110,7 +110,4 @@ public class ForumController {
 | 
			
		||||
		forumServ.answerTopic(t, data, u);
 | 
			
		||||
		return new ResponseEntity<>(HttpStatus.ACCEPTED);
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
	// TODO: <tonitch> Check if authorization to view a post/forum/...
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -51,7 +51,7 @@ public class ProtectionService {
 | 
			
		||||
 | 
			
		||||
        HashMap<String ,Object> toReturn = new HashMap<>();
 | 
			
		||||
 | 
			
		||||
        toReturn.put("courseId",course.getCourseID());
 | 
			
		||||
        toReturn.put("courseID",course.getCourseID());
 | 
			
		||||
        toReturn.put("credits",course.getCredits());
 | 
			
		||||
        toReturn.put("title", course.getTitle());
 | 
			
		||||
        toReturn.put("owner", userWithoutPassword(course.getOwner()));
 | 
			
		||||
 | 
			
		||||
@ -1,7 +1,9 @@
 | 
			
		||||
package ovh.herisson.Clyde.Tables;
 | 
			
		||||
 | 
			
		||||
import jakarta.persistence.*;
 | 
			
		||||
import lombok.AllArgsConstructor;
 | 
			
		||||
import lombok.Data;
 | 
			
		||||
import lombok.NoArgsConstructor;
 | 
			
		||||
import ovh.herisson.Clyde.Tables.Msg.Forum;
 | 
			
		||||
 | 
			
		||||
import java.util.List;
 | 
			
		||||
@ -11,6 +13,8 @@ import org.hibernate.annotations.OnDeleteAction;
 | 
			
		||||
 | 
			
		||||
@Entity
 | 
			
		||||
@Data
 | 
			
		||||
@NoArgsConstructor
 | 
			
		||||
@AllArgsConstructor
 | 
			
		||||
public class Course {
 | 
			
		||||
    @Id
 | 
			
		||||
    @GeneratedValue(strategy = GenerationType.AUTO)
 | 
			
		||||
@ -37,34 +41,4 @@ public class Course {
 | 
			
		||||
        this.title = title;
 | 
			
		||||
        this.owner = owner;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public Course() {}
 | 
			
		||||
 | 
			
		||||
    public int getCourseID() {
 | 
			
		||||
        return courseID;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public int getCredits() {
 | 
			
		||||
        return credits;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public void setCredits(int credits){
 | 
			
		||||
        this.credits = credits;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public String getTitle() {
 | 
			
		||||
        return title;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public void setTitle(String title){
 | 
			
		||||
        this.title = title;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public User getOwner() {
 | 
			
		||||
        return owner;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public void setOwner(User owner) {
 | 
			
		||||
        this.owner = owner;
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -1,10 +1,17 @@
 | 
			
		||||
package ovh.herisson.Clyde.Tables;
 | 
			
		||||
 | 
			
		||||
import jakarta.persistence.*;
 | 
			
		||||
import lombok.AllArgsConstructor;
 | 
			
		||||
import lombok.Data;
 | 
			
		||||
import lombok.NoArgsConstructor;
 | 
			
		||||
 | 
			
		||||
import org.hibernate.annotations.OnDelete;
 | 
			
		||||
import org.hibernate.annotations.OnDeleteAction;
 | 
			
		||||
 | 
			
		||||
@Entity
 | 
			
		||||
@Data
 | 
			
		||||
@AllArgsConstructor
 | 
			
		||||
@NoArgsConstructor
 | 
			
		||||
public class UserCurriculum {
 | 
			
		||||
    @Id
 | 
			
		||||
    @GeneratedValue(strategy = GenerationType.AUTO)
 | 
			
		||||
@ -26,48 +33,10 @@ public class UserCurriculum {
 | 
			
		||||
    //True if the user has that curriculum at the moment false if not
 | 
			
		||||
    private boolean actual;
 | 
			
		||||
 | 
			
		||||
    public UserCurriculum(User user, Curriculum curriculum, int year, boolean actual){
 | 
			
		||||
        this.user = user;
 | 
			
		||||
        this.curriculum = curriculum;
 | 
			
		||||
	public UserCurriculum(User u, Curriculum cu, int year, boolean actual){
 | 
			
		||||
		this.user = u;
 | 
			
		||||
		this.curriculum = cu;
 | 
			
		||||
		this.year = year;
 | 
			
		||||
		this.actual = actual;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
    public UserCurriculum() {}
 | 
			
		||||
 | 
			
		||||
    public int getId() {
 | 
			
		||||
        return id;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public User getUser() {
 | 
			
		||||
        return user;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public void setUser(User user) {
 | 
			
		||||
        this.user = user;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public Curriculum getCurriculum() {
 | 
			
		||||
        return curriculum;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public void setCurriculum(Curriculum curriculum) {
 | 
			
		||||
        this.curriculum = curriculum;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public int getYear() {
 | 
			
		||||
        return year;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public void setYear(int year) {
 | 
			
		||||
        this.year = year;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public void setActual(boolean actual) {
 | 
			
		||||
        this.actual = actual;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public boolean isActual() {
 | 
			
		||||
        return actual;
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -8,16 +8,16 @@
 | 
			
		||||
<script setup>
 | 
			
		||||
import { ref, reactive } from 'vue'
 | 
			
		||||
import i18n from '@/i18n.js'
 | 
			
		||||
import { getCourses } from '@/rest/courses.js'
 | 
			
		||||
import { getCourses, getUserActualCourses } from '@/rest/courses.js'
 | 
			
		||||
import { ForumsOfCurrentCourse, getForumsOfCourse, createForum } from '@/rest/forum.js'
 | 
			
		||||
import { PostsOfCurrentForum, getPostsOfForum, createPost } from '@/rest/forum.js'
 | 
			
		||||
import { fetchedPost, fetchPost, sendAnswer } from '@/rest/forum.js'
 | 
			
		||||
import { getSelf } from '@/rest/Users.js'
 | 
			
		||||
 | 
			
		||||
const courses = await reactive(getCourses());
 | 
			
		||||
const Role = (await getSelf()).role;
 | 
			
		||||
const courses = Role === 'Admin' || Role === 'Secretary' ? await reactive(getCourses()) : await reactive(getUserActualCourses());
 | 
			
		||||
const selectedCourse = ref();
 | 
			
		||||
const selectedForum = ref();
 | 
			
		||||
const Role = (await getSelf()).role;
 | 
			
		||||
 | 
			
		||||
const addForumName = ref("");
 | 
			
		||||
const addPost = ref(false);
 | 
			
		||||
@ -30,7 +30,7 @@ const addPostContent = ref("");
 | 
			
		||||
	<div id="app">
 | 
			
		||||
		<div id="ForumSelector">
 | 
			
		||||
			<select id="cours" value="" v-model="selectedCourse"  @change="getForumsOfCourse(selectedCourse)">
 | 
			
		||||
				<option v-for="course in courses" :value="course.courseId">{{course.title}}</option>
 | 
			
		||||
				<option v-for="course in courses" :value="course.courseID">{{course.title}}</option>
 | 
			
		||||
			</select>
 | 
			
		||||
 | 
			
		||||
			<select id="forum" value="" v-model="selectedForum"  @change="getPostsOfForum(selectedForum !== 'create' ? selectedForum : null)" v-if="ForumsOfCurrentCourse != null">
 | 
			
		||||
 | 
			
		||||
@ -76,6 +76,6 @@ export async function alterCourse(id, changes){
 | 
			
		||||
 * Return a list containing all the actual courses of a user
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
export async function getUserActualCourses(userId){
 | 
			
		||||
	return restGet("/usercourses/"+userId)
 | 
			
		||||
export async function getUserActualCourses(){
 | 
			
		||||
	return restGet("/usercourses")
 | 
			
		||||
}
 | 
			
		||||
		Reference in New Issue
	
	Block a user