mirror of
				https://gitlab.com/comunic/comunicapiv2
				synced 2025-11-03 19:14:03 +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