mirror of
				https://codeberg.org/yeentown/barkey.git
				synced 2025-11-04 07:24:13 +00:00 
			
		
		
		
	Validate Note on createNote (#4881)
This commit is contained in:
		
							parent
							
								
									1ff5151786
								
							
						
					
					
						commit
						9e20fc5c88
					
				
					 1 changed files with 26 additions and 2 deletions
				
			
		| 
						 | 
				
			
			@ -25,6 +25,28 @@ import { ensure } from '../../../prelude/ensure';
 | 
			
		|||
 | 
			
		||||
const logger = apLogger;
 | 
			
		||||
 | 
			
		||||
export function validateNote(object: any, uri: string) {
 | 
			
		||||
	const expectHost = extractDbHost(uri);
 | 
			
		||||
 | 
			
		||||
	if (object == null) {
 | 
			
		||||
		return new Error('invalid Note: object is null');
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	if (!['Note', 'Question', 'Article'].includes(object.type)) {
 | 
			
		||||
		return new Error(`invalid Note: invalied object type ${object.type}`);
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	if (object.id && extractDbHost(object.id) !== expectHost) {
 | 
			
		||||
		return new Error(`invalid Note: id has different host. expected: ${expectHost}, actual: ${extractDbHost(object.id)}`);
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	if (object.attributedTo && extractDbHost(object.attributedTo) !== expectHost) {
 | 
			
		||||
		return new Error(`invalid Note: attributedTo has different host. expected: ${expectHost}, actual: ${extractDbHost(object.attributedTo)}`);
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	return null;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Noteをフェッチします。
 | 
			
		||||
 *
 | 
			
		||||
| 
						 | 
				
			
			@ -59,8 +81,10 @@ export async function createNote(value: any, resolver?: Resolver, silent = false
 | 
			
		|||
 | 
			
		||||
	const object: any = await resolver.resolve(value);
 | 
			
		||||
 | 
			
		||||
	if (!object || !['Note', 'Question', 'Article'].includes(object.type)) {
 | 
			
		||||
		logger.error(`invalid note: ${value}`, {
 | 
			
		||||
	const entryUri = value.id || value;
 | 
			
		||||
	const err = validateNote(object, entryUri);
 | 
			
		||||
	if (err) {
 | 
			
		||||
		logger.error(`${err.message}`, {
 | 
			
		||||
			resolver: {
 | 
			
		||||
				history: resolver.getHistory()
 | 
			
		||||
			},
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		
		Reference in a new issue