mirror of
				https://gitlab.com/comunic/comunicapiv2
				synced 2025-10-30 17:14:43 +00:00 
			
		
		
		
	Add links support
This commit is contained in:
		| @@ -1,7 +1,7 @@ | ||||
| import { RequestHandler } from "../entities/RequestHandler"; | ||||
| import { UserHelper } from "../helpers/UserHelper"; | ||||
| import { PostsHelper } from "../helpers/PostsHelper"; | ||||
| import { Post, PostVisibilityLevel, PostKind, PostAccessLevel, PostPageKind, PostFile } from "../entities/Post"; | ||||
| import { Post, PostVisibilityLevel, PostKind, PostAccessLevel, PostPageKind, PostFile, PostLink } from "../entities/Post"; | ||||
| import { MoviesController } from "./MoviesController"; | ||||
| import { MoviesHelper } from "../helpers/MoviesHelper"; | ||||
| import { SurveyHelper } from "../helpers/SurveyHelper"; | ||||
| @@ -13,7 +13,7 @@ import { GroupsAccessLevel } from "../entities/Group"; | ||||
| import { GroupsHelper } from "../helpers/GroupsHelper"; | ||||
| import { time } from "../utils/DateUtils"; | ||||
| import { findKey } from "../utils/ArrayUtils"; | ||||
| import { check_string_before_insert, check_youtube_id } from "../utils/StringUtils"; | ||||
| import { check_string_before_insert, check_youtube_id, checkURL } from "../utils/StringUtils"; | ||||
| import { pathUserData } from "../utils/UserDataUtils"; | ||||
| import { statSync } from "fs"; | ||||
| import { lookup } from "mime-types"; | ||||
| @@ -215,6 +215,22 @@ export class PostsController { | ||||
|  | ||||
| 				break; | ||||
| 			 | ||||
| 			 | ||||
| 			// Web links | ||||
| 			case PostKind.POST_KIND_WEBLINK: | ||||
|  | ||||
| 				const url = h.postURL("url"); | ||||
|  | ||||
| 				// For now, for safety, we do not fetch page content | ||||
| 				newPost.link = new PostLink({ | ||||
| 					url: url, | ||||
| 					title: undefined, | ||||
| 					description: undefined, | ||||
| 					image: undefined | ||||
| 				}); | ||||
|  | ||||
| 				break; | ||||
| 			 | ||||
|  | ||||
| 			default: | ||||
| 				h.error(500, "Unsupported kind of post!"); | ||||
|   | ||||
| @@ -1,7 +1,7 @@ | ||||
| import { Response, Request } from "express"; | ||||
| import { APIHelper } from "../helpers/APIHelper"; | ||||
| import { APIClient } from "./APIClient"; | ||||
| import { checkMail, removeHTMLNodes } from "../utils/StringUtils"; | ||||
| import { checkMail, removeHTMLNodes, checkURL } from "../utils/StringUtils"; | ||||
| import { AccountHelper } from "../helpers/AccountHelper"; | ||||
| import { UploadedFile } from "express-fileupload"; | ||||
| import { prepareFileCreation, generateNewUserDataFileName, pathUserData } from "../utils/UserDataUtils"; | ||||
| @@ -337,6 +337,21 @@ export class RequestHandler { | ||||
| 		return dir; | ||||
| 	} | ||||
|  | ||||
| 	/** | ||||
| 	 * Get an URL included in a POST request | ||||
| 	 *  | ||||
| 	 * @param name The name of the POST field containing | ||||
| 	 * the URL | ||||
| 	 */ | ||||
| 	public postURL(name: string) : string { | ||||
| 		const url = this.postString(name); | ||||
|  | ||||
| 		if(!checkURL(url)) | ||||
| 			this.error(401, "Specified URL in '"+name+"' seems to be invalid!"); | ||||
|  | ||||
| 		return url; | ||||
| 	} | ||||
|  | ||||
| 	/** | ||||
| 	 * Get information about an uploaded file | ||||
| 	 *  | ||||
|   | ||||
		Reference in New Issue
	
	Block a user