mirror of
				https://gitlab.com/comunic/comunicapiv2
				synced 2025-11-03 19:14:03 +00:00 
			
		
		
		
	Can get general settings
This commit is contained in:
		@@ -15,6 +15,7 @@ import { PostsController } from "./PostsController";
 | 
				
			|||||||
import { CommentsController } from "./CommentsController";
 | 
					import { CommentsController } from "./CommentsController";
 | 
				
			||||||
import { LikesController } from "./LikesController";
 | 
					import { LikesController } from "./LikesController";
 | 
				
			||||||
import { SurveyController } from "./SurveyController";
 | 
					import { SurveyController } from "./SurveyController";
 | 
				
			||||||
 | 
					import { SettingsController } from "./SettingsController";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/**
 | 
					/**
 | 
				
			||||||
 * Controllers routes
 | 
					 * Controllers routes
 | 
				
			||||||
@@ -79,6 +80,10 @@ export const Routes : Route[] = [
 | 
				
			|||||||
	{path: "/user/getAdvancedUserInfos", cb: (h) => UserController.GetAdvancedInfo(h), needLogin: false}, // Legacy
 | 
						{path: "/user/getAdvancedUserInfos", cb: (h) => UserController.GetAdvancedInfo(h), needLogin: false}, // Legacy
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						// Settings controller
 | 
				
			||||||
 | 
						{path: "/settings/get_general", cb: (h) => SettingsController.GetGeneral(h)},
 | 
				
			||||||
 | 
						
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	// Friends controller
 | 
						// Friends controller
 | 
				
			||||||
	{path: "/friends/getList", cb: (h) => FriendsController.GetList(h)},
 | 
						{path: "/friends/getList", cb: (h) => FriendsController.GetList(h)},
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										39
									
								
								src/controllers/SettingsController.ts
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										39
									
								
								src/controllers/SettingsController.ts
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,39 @@
 | 
				
			|||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * Settings controller
 | 
				
			||||||
 | 
					 * 
 | 
				
			||||||
 | 
					 * @author Pierre HUBERT
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import { RequestHandler } from "../entities/RequestHandler";
 | 
				
			||||||
 | 
					import { UserHelper } from "../helpers/UserHelper";
 | 
				
			||||||
 | 
					import { UserController } from "./UserController";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					export class SettingsController {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						/**
 | 
				
			||||||
 | 
						 * Get general account settings
 | 
				
			||||||
 | 
						 * 
 | 
				
			||||||
 | 
						 * @param h Request handler
 | 
				
			||||||
 | 
						 */
 | 
				
			||||||
 | 
						public static async GetGeneral(h: RequestHandler) {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							const userInfo = await UserHelper.GetUserInfo(h.getUserId());
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							h.send({
 | 
				
			||||||
 | 
								id: userInfo.id,
 | 
				
			||||||
 | 
								email: userInfo.email,
 | 
				
			||||||
 | 
								firstName: userInfo.firstName,
 | 
				
			||||||
 | 
								lastName: userInfo.lastName,
 | 
				
			||||||
 | 
								is_public: userInfo.isPublic,
 | 
				
			||||||
 | 
								is_open: userInfo.isOpen,
 | 
				
			||||||
 | 
								allow_comments: !userInfo.blockComments,
 | 
				
			||||||
 | 
								allow_posts_from_friends: userInfo.allowPostsFromFriends,
 | 
				
			||||||
 | 
								allow_comunic_mails: userInfo.allowMails,
 | 
				
			||||||
 | 
								public_friends_list: userInfo.friendsListPublic,
 | 
				
			||||||
 | 
								virtual_directory: userInfo.virtualDirectory,
 | 
				
			||||||
 | 
								personnal_website: userInfo.personnalWebsite,
 | 
				
			||||||
 | 
								publicNote: userInfo.publicNote,
 | 
				
			||||||
 | 
							})
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
@@ -16,6 +16,7 @@ export enum UserPageStatus {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
export interface UserInfo  {
 | 
					export interface UserInfo  {
 | 
				
			||||||
	id: number,
 | 
						id: number,
 | 
				
			||||||
 | 
						email: string;
 | 
				
			||||||
	firstName: string,
 | 
						firstName: string,
 | 
				
			||||||
	lastName: string,
 | 
						lastName: string,
 | 
				
			||||||
	timeCreate: number,
 | 
						timeCreate: number,
 | 
				
			||||||
@@ -27,6 +28,7 @@ export interface UserInfo  {
 | 
				
			|||||||
	publicNote ?: string,
 | 
						publicNote ?: string,
 | 
				
			||||||
	blockComments : boolean,
 | 
						blockComments : boolean,
 | 
				
			||||||
	allowPostsFromFriends: boolean,
 | 
						allowPostsFromFriends: boolean,
 | 
				
			||||||
 | 
						allowMails: boolean
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
export interface SecuritySettings {
 | 
					export interface SecuritySettings {
 | 
				
			||||||
@@ -44,6 +46,7 @@ export interface UserBuilder extends UserInfo, SecuritySettings {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
export class User implements UserBuilder {
 | 
					export class User implements UserBuilder {
 | 
				
			||||||
	id: number;
 | 
						id: number;
 | 
				
			||||||
 | 
						email: string;
 | 
				
			||||||
	firstName: string;
 | 
						firstName: string;
 | 
				
			||||||
	lastName: string;
 | 
						lastName: string;
 | 
				
			||||||
	timeCreate: number;
 | 
						timeCreate: number;
 | 
				
			||||||
@@ -55,6 +58,7 @@ export class User implements UserBuilder {
 | 
				
			|||||||
	publicNote?: string;
 | 
						publicNote?: string;
 | 
				
			||||||
	blockComments: boolean;
 | 
						blockComments: boolean;
 | 
				
			||||||
	allowPostsFromFriends: boolean;
 | 
						allowPostsFromFriends: boolean;
 | 
				
			||||||
 | 
						allowMails: boolean;
 | 
				
			||||||
	security_question_1?: string;
 | 
						security_question_1?: string;
 | 
				
			||||||
	security_answer_1?: string;
 | 
						security_answer_1?: string;
 | 
				
			||||||
	security_question_2?: string;
 | 
						security_question_2?: string;
 | 
				
			||||||
@@ -68,6 +72,15 @@ export class User implements UserBuilder {
 | 
				
			|||||||
			}
 | 
								}
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
						
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						get isPublic() : boolean {
 | 
				
			||||||
 | 
							return this.pageStatus == UserPageStatus.PUBLIC;
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						get isOpen() : boolean {
 | 
				
			||||||
 | 
							return this.pageStatus == UserPageStatus.OPEN;
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	get hasVirtualDirectory() : boolean {
 | 
						get hasVirtualDirectory() : boolean {
 | 
				
			||||||
		return this.virtualDirectory != null 
 | 
							return this.virtualDirectory != null 
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -193,6 +193,7 @@ export class UserHelper {
 | 
				
			|||||||
	private static async DbToUser(row: any) : Promise<User> {
 | 
						private static async DbToUser(row: any) : Promise<User> {
 | 
				
			||||||
		return new User({
 | 
							return new User({
 | 
				
			||||||
			id: row.ID,
 | 
								id: row.ID,
 | 
				
			||||||
 | 
								email: row.mail,
 | 
				
			||||||
			firstName: row.prenom,
 | 
								firstName: row.prenom,
 | 
				
			||||||
			lastName: row.nom,
 | 
								lastName: row.nom,
 | 
				
			||||||
			timeCreate: new Date(row.date_creation).getTime()/1000,
 | 
								timeCreate: new Date(row.date_creation).getTime()/1000,
 | 
				
			||||||
@@ -204,6 +205,7 @@ export class UserHelper {
 | 
				
			|||||||
			publicNote: row.public_note,
 | 
								publicNote: row.public_note,
 | 
				
			||||||
			blockComments: row.bloquecommentaire == 1,
 | 
								blockComments: row.bloquecommentaire == 1,
 | 
				
			||||||
			allowPostsFromFriends: row.autoriser_post_amis == 1,
 | 
								allowPostsFromFriends: row.autoriser_post_amis == 1,
 | 
				
			||||||
 | 
								allowMails: row.autorise_mail == 1,
 | 
				
			||||||
			security_question_1: row.question1,
 | 
								security_question_1: row.question1,
 | 
				
			||||||
			security_answer_1: row.reponse1,
 | 
								security_answer_1: row.reponse1,
 | 
				
			||||||
			security_question_2: row.question2,
 | 
								security_question_2: row.question2,
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user