All files / src/endpoint/json create-instance.ts

100% Statements 12/12
100% Branches 2/2
100% Functions 2/2
100% Lines 12/12

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37    3x 3x               4x 4x 4x 4x 4x   4x               4x       4x   4x       3x  
import Node from 'type/node';
import DraftField from 'type/draft-field';
import JsonEndpoint from 'endpoint/json';
import CreateInstanceOperation from 'operation/create-instance';
 
interface Input {
	readonly fields: DraftField[];
}
 
class JsonCreateInstanceEndpoint extends JsonEndpoint<Input> {
	protected async process(): Promise<Node> {
		const id = this.getUrlParameter('id');
		const type_id = this.getUrlParameter('type_id');
		const fields = this.getDraftFields();
		const repository = this.getRepository();
		const account = this.getAccount();
 
		const operation = new CreateInstanceOperation({
			id,
			type_id,
			fields,
			repository,
			account
		});
 
		return operation.perform();
	}
 
	private getDraftFields(): DraftField[] {
		const request_body = this.getRequestBody();
 
		return request_body.fields || [];
	}
}
 
export default JsonCreateInstanceEndpoint;