faf7e12c13eaaaa19677086fd5b2f06c4bca86a5
Christian Fraß [add] typescript logic

Christian Fraß authored 3 years ago

source/services/concept.ts   1) namespace services.concept
source/services/concept.ts   2) {
source/services/concept.ts   3) 	
source/services/concept.ts   4) 	/**
source/services/concept.ts   5) 	 */
Christian Fraß [mod] makefile

Christian Fraß authored 3 years ago

source/services/concept.ts   6) 	export type type_bloated =
source/services/concept.ts   7) 	{
source/services/concept.ts   8) 		id : int;
source/services/concept.ts   9) 		description : string;
source/services/concept.ts  10) 		type :
source/services/concept.ts  11) 		{
source/services/concept.ts  12) 			id : int;
source/services/concept.ts  13) 			value : string;
source/services/concept.ts  14) 		};
source/services/concept.ts  15) 		tags : Array<
source/services/concept.ts  16) 			{
source/services/concept.ts  17) 				id : int;
source/services/concept.ts  18) 				value : string;
source/services/concept.ts  19) 			}
source/services/concept.ts  20) 		>;
source/services/concept.ts  21) 		expressions : Array<
source/services/concept.ts  22) 			{
source/services/concept.ts  23) 				id : int;
source/services/concept.ts  24) 				language :
source/services/concept.ts  25) 				{
source/services/concept.ts  26) 					id : int;
source/services/concept.ts  27) 					value : string;
source/services/concept.ts  28) 				};
source/services/concept.ts  29) 				value : string;
source/services/concept.ts  30) 			}
source/services/concept.ts  31) 		>;
source/services/concept.ts  32) 	};
source/services/concept.ts  33) 	
source/services/concept.ts  34) 	
source/services/concept.ts  35) 	/**
source/services/concept.ts  36) 	 */
source/services/concept.ts  37) 	export type type_exposal =
source/services/concept.ts  38) 	{
source/services/concept.ts  39) 		id : int;
source/services/concept.ts  40) 		description : string;
source/services/concept.ts  41) 		type : string;
source/services/concept.ts  42) 		tags : Array<string>;
source/services/concept.ts  43) 		expressions : {[language : string] : Array<string>};
source/services/concept.ts  44) 	};
source/services/concept.ts  45) 	
source/services/concept.ts  46) 	
source/services/concept.ts  47) 	/**
source/services/concept.ts  48) 	 */
Christian Fraß [add] api

Christian Fraß authored 3 years ago

source/services/concept.ts  49) 	function parse_tags
source/services/concept.ts  50) 	(
Christian Fraß [mod] makefile

Christian Fraß authored 3 years ago

source/services/concept.ts  51) 		tags_raw : string
source/services/concept.ts  52) 	) : Array<string>
Christian Fraß [add] typescript logic

Christian Fraß authored 3 years ago

source/services/concept.ts  53) 	{
Christian Fraß [mod] makefile

Christian Fraß authored 3 years ago

source/services/concept.ts  54) 		return (
source/services/concept.ts  55) 			(tags_raw === null)
source/services/concept.ts  56) 			? []
source/services/concept.ts  57) 			: tags_raw.split(",")
source/services/concept.ts  58) 		);
Christian Fraß [add] typescript logic

Christian Fraß authored 3 years ago

source/services/concept.ts  59) 	}
source/services/concept.ts  60) 	
source/services/concept.ts  61) 	
source/services/concept.ts  62) 	/**
source/services/concept.ts  63) 	 */
Christian Fraß [mod] makefile

Christian Fraß authored 3 years ago

source/services/concept.ts  64) 	function parse_expressions
Christian Fraß [add] typescript logic

Christian Fraß authored 3 years ago

source/services/concept.ts  65) 	(
Christian Fraß [mod] makefile

Christian Fraß authored 3 years ago

source/services/concept.ts  66) 		expressions_raw : string
source/services/concept.ts  67) 	) : {[language : string] : Array<string>}
Christian Fraß [add] typescript logic

Christian Fraß authored 3 years ago

source/services/concept.ts  68) 	{
Christian Fraß [mod] makefile

Christian Fraß authored 3 years ago

source/services/concept.ts  69) 		let result : {[language : string] : Array<string>} = {};
source/services/concept.ts  70) 		const parts : Array<string> = expressions_raw.split(",");
source/services/concept.ts  71) 		parts.forEach
Christian Fraß [add] typescript logic

Christian Fraß authored 3 years ago

source/services/concept.ts  72) 		(
Christian Fraß [mod] makefile

Christian Fraß authored 3 years ago

source/services/concept.ts  73) 			(part) =>
Christian Fraß [add] typescript logic

Christian Fraß authored 3 years ago

source/services/concept.ts  74) 			{
Christian Fraß [mod] makefile

Christian Fraß authored 3 years ago

source/services/concept.ts  75) 				const [language, value] : Array<string> = part.split(":", 2);
source/services/concept.ts  76) 				if (! result.hasOwnProperty(language)) result[language] = [];
source/services/concept.ts  77) 				result[language].push(value);
Christian Fraß [add] typescript logic

Christian Fraß authored 3 years ago

source/services/concept.ts  78) 			}
source/services/concept.ts  79) 		);
Christian Fraß [mod] makefile

Christian Fraß authored 3 years ago

source/services/concept.ts  80) 		return result;
source/services/concept.ts  81) 	}
source/services/concept.ts  82) 	
source/services/concept.ts  83) 	
Christian Fraß [add] api

Christian Fraß authored 3 years ago

source/services/concept.ts  84) 	/**
source/services/concept.ts  85) 	 */
source/services/concept.ts  86) 	export function add
source/services/concept.ts  87) 	(
source/services/concept.ts  88) 		concept_entity : entities.concept
source/services/concept.ts  89) 	) : Promise<int>
source/services/concept.ts  90) 	{
source/services/concept.ts  91) 		return repositories.concept.create(concept_entity);
source/services/concept.ts  92) 	}
source/services/concept.ts  93) 	
source/services/concept.ts  94) 	
Christian Fraß [mod] makefile

Christian Fraß authored 3 years ago

source/services/concept.ts  95) 	/**
source/services/concept.ts  96) 	 */
source/services/concept.ts  97) 	export async function bloat
source/services/concept.ts  98) 	(
source/services/concept.ts  99) 		concept_id : int
source/services/concept.ts 100) 	) : Promise<type_bloated>
source/services/concept.ts 101) 	{
source/services/concept.ts 102) 		const concept_entity : entities.concept = await repositories.concept.read(concept_id);
source/services/concept.ts 103) 		const type_value : string = (await repositories.type.read(concept_entity.type_id))["value"];
source/services/concept.ts 104) 		let result : type_bloated =
source/services/concept.ts 105) 		{
source/services/concept.ts 106) 			"id": concept_id,
source/services/concept.ts 107) 			"description": concept_entity.description,
source/services/concept.ts 108) 			"type":
Christian Fraß [add] typescript logic

Christian Fraß authored 3 years ago

source/services/concept.ts 109) 			{
Christian Fraß [mod] makefile

Christian Fraß authored 3 years ago

source/services/concept.ts 110) 				"id": concept_entity.type_id,
source/services/concept.ts 111) 				"value": type_value,
source/services/concept.ts 112) 			},
source/services/concept.ts 113) 			"tags": [],
source/services/concept.ts 114) 			"expressions": [],
source/services/concept.ts 115) 		};
Christian Fraß [add] api

Christian Fraß authored 3 years ago

source/services/concept.ts 116) 		for await (const tag_id of concept_entity.tag_ids)
Christian Fraß [mod] makefile

Christian Fraß authored 3 years ago

source/services/concept.ts 117) 		{
source/services/concept.ts 118) 			const tag_value : string = (await repositories.tag.read(tag_id))["value"];
source/services/concept.ts 119) 			result.tags.push({"id": tag_id, "value": tag_value});
source/services/concept.ts 120) 		}
Christian Fraß [add] api

Christian Fraß authored 3 years ago

source/services/concept.ts 121) 		for await (const expression_id of concept_entity.expression_ids)
Christian Fraß [mod] makefile

Christian Fraß authored 3 years ago

source/services/concept.ts 122) 		{
source/services/concept.ts 123) 			const expression_row : type_row = await repositories.expression.read(expression_id);
source/services/concept.ts 124) 			const language_id : int = expression_row["language_id"];
source/services/concept.ts 125) 			const language_row : type_row = (await repositories.language.read(expression_row["language_id"]));
source/services/concept.ts 126) 			result.expressions.push
source/services/concept.ts 127) 			(
source/services/concept.ts 128) 				{
source/services/concept.ts 129) 					"id": expression_id,
source/services/concept.ts 130) 					"language":
Christian Fraß [add] typescript logic

Christian Fraß authored 3 years ago

source/services/concept.ts 131) 					{
Christian Fraß [mod] makefile

Christian Fraß authored 3 years ago

source/services/concept.ts 132) 						"id": language_id,
source/services/concept.ts 133) 						"value": language_row["value"]
source/services/concept.ts 134) 					},
source/services/concept.ts 135) 					"value": expression_row["value"]
source/services/concept.ts 136) 				}
source/services/concept.ts 137) 			);
source/services/concept.ts 138) 		}
source/services/concept.ts 139) 		return Promise.resolve<type_bloated>(result);
source/services/concept.ts 140) 	}
source/services/concept.ts 141) 	
source/services/concept.ts 142) 	
source/services/concept.ts 143) 	/**
source/services/concept.ts 144) 	 */
source/services/concept.ts 145) 	export async function expose
source/services/concept.ts 146) 	(
source/services/concept.ts 147) 		concept_id : int
source/services/concept.ts 148) 	) : Promise<type_exposal>
source/services/concept.ts 149) 	{
source/services/concept.ts 150) 		const bloated : type_bloated = await bloat(concept_id);
source/services/concept.ts 151) 		return Promise.resolve<type_exposal>
Christian Fraß [add] typescript logic

Christian Fraß authored 3 years ago

source/services/concept.ts 152) 		(
source/services/concept.ts 153) 			{
Christian Fraß [mod] makefile

Christian Fraß authored 3 years ago

source/services/concept.ts 154) 				"id": bloated.id,
source/services/concept.ts 155) 				"description": bloated.description,
source/services/concept.ts 156) 				"type": bloated.type.value,
source/services/concept.ts 157) 				"tags": bloated.tags.map(tag_entry => tag_entry.value),
source/services/concept.ts 158) 				"expressions": (
source/services/concept.ts 159) 					() =>
Christian Fraß [add] typescript logic

Christian Fraß authored 3 years ago

source/services/concept.ts 160) 					{
Christian Fraß [mod] makefile

Christian Fraß authored 3 years ago

source/services/concept.ts 161) 						let expressions : {[language : string] : Array<string>} = {};
source/services/concept.ts 162) 						bloated.expressions.forEach
Christian Fraß [add] typescript logic

Christian Fraß authored 3 years ago

source/services/concept.ts 163) 						(
Christian Fraß [mod] makefile

Christian Fraß authored 3 years ago

source/services/concept.ts 164) 							expression_entry =>
Christian Fraß [add] typescript logic

Christian Fraß authored 3 years ago

source/services/concept.ts 165) 							{
Christian Fraß [mod] makefile

Christian Fraß authored 3 years ago

source/services/concept.ts 166) 								const language : string = expression_entry.language.value;
source/services/concept.ts 167) 								if (! expressions.hasOwnProperty(language))
source/services/concept.ts 168) 								{
source/services/concept.ts 169) 									expressions[language] = [];
source/services/concept.ts 170) 								}
source/services/concept.ts 171) 								expressions[language].push(expression_entry.value);
Christian Fraß [add] typescript logic

Christian Fraß authored 3 years ago

source/services/concept.ts 172) 							}
source/services/concept.ts 173) 						);
Christian Fraß [mod] makefile

Christian Fraß authored 3 years ago

source/services/concept.ts 174) 						return expressions;
Christian Fraß [add] typescript logic

Christian Fraß authored 3 years ago

source/services/concept.ts 175) 					}
Christian Fraß [mod] makefile

Christian Fraß authored 3 years ago

source/services/concept.ts 176) 				) (),
Christian Fraß [add] typescript logic

Christian Fraß authored 3 years ago

source/services/concept.ts 177) 			}
source/services/concept.ts 178) 		);
source/services/concept.ts 179) 	}
source/services/concept.ts 180) 	
source/services/concept.ts 181) 	
Christian Fraß [mod] logic

Christian Fraß authored 3 years ago

source/services/concept.ts 182) 	/**
source/services/concept.ts 183) 	 */
Christian Fraß [mod] makefile

Christian Fraß authored 3 years ago

source/services/concept.ts 184) 	export async function export_
source/services/concept.ts 185) 	(
source/services/concept.ts 186) 	) : Promise<Array<type_exposal>>
Christian Fraß [mod] logic

Christian Fraß authored 3 years ago

source/services/concept.ts 187) 	{
Christian Fraß [mod] makefile

Christian Fraß authored 3 years ago

source/services/concept.ts 188) 		const rows : Array<type_row> = await repositories.concept.export();
source/services/concept.ts 189) 		return Promise.resolve<Array<type_exposal>>
source/services/concept.ts 190) 		(
source/services/concept.ts 191) 			rows.map
source/services/concept.ts 192) 			(
source/services/concept.ts 193) 				(row) => (
source/services/concept.ts 194) 					{
source/services/concept.ts 195) 						"id": row["id"],
source/services/concept.ts 196) 						"type": row["type"],
source/services/concept.ts 197) 						"description": row["description"],
source/services/concept.ts 198) 						"tags": parse_tags(row["tags"]),
source/services/concept.ts 199) 						"expressions": parse_expressions(row["expressions"]),
source/services/concept.ts 200) 					}
source/services/concept.ts 201) 				)
source/services/concept.ts 202) 			)
Christian Fraß [mod] logic

Christian Fraß authored 3 years ago

source/services/concept.ts 203) 		);
source/services/concept.ts 204) 	}
Christian Fraß [mod] makefile

Christian Fraß authored 3 years ago

source/services/concept.ts 205) 
Christian Fraß [mod] logic

Christian Fraß authored 3 years ago

source/services/concept.ts 206) 	
source/services/concept.ts 207) 	/**
source/services/concept.ts 208) 	 */
Christian Fraß [mod] makefile

Christian Fraß authored 3 years ago

source/services/concept.ts 209) 	export async function search
Christian Fraß [mod] logic

Christian Fraß authored 3 years ago

source/services/concept.ts 210) 	(
Christian Fraß [mod] makefile

Christian Fraß authored 3 years ago

source/services/concept.ts 211) 		part : string
source/services/concept.ts 212) 	) : Promise<Array<type_exposal>>
Christian Fraß [mod] logic

Christian Fraß authored 3 years ago

source/services/concept.ts 213) 	{
Christian Fraß [mod] makefile

Christian Fraß authored 3 years ago

source/services/concept.ts 214) 		const concept_ids : Array<int> = await repositories.concept.search(part);
source/services/concept.ts 215) 		let result : Array<type_exposal> = [];
source/services/concept.ts 216) 		for await (const concept_id of concept_ids)
source/services/concept.ts 217) 		{
source/services/concept.ts 218) 			result.push(await expose(concept_id));
source/services/concept.ts 219) 		}
source/services/concept.ts 220) 		return Promise.resolve<Array<type_exposal>>(result);
Christian Fraß [mod] logic

Christian Fraß authored 3 years ago

source/services/concept.ts 221) 	}
source/services/concept.ts 222) 	
source/services/concept.ts 223) 	
Christian Fraß [add] typescript logic

Christian Fraß authored 3 years ago

source/services/concept.ts 224) 	/**
source/services/concept.ts 225) 	 */
source/services/concept.ts 226) 	export function get_translations
source/services/concept.ts 227) 	(
source/services/concept.ts 228) 		language_from : string,
source/services/concept.ts 229) 		language_to : string,
source/services/concept.ts 230) 		part : string
source/services/concept.ts 231) 	) : Promise<Array<type_row>>
source/services/concept.ts 232) 	{
source/services/concept.ts 233) 		return repositories.concept.get_translations
source/services/concept.ts 234) 		(
source/services/concept.ts 235) 			language_from,
source/services/concept.ts 236) 			language_to,
source/services/concept.ts 237) 			part
source/services/concept.ts 238) 		);
source/services/concept.ts 239) 	}
source/services/concept.ts 240) 	
source/services/concept.ts 241) 	
source/services/concept.ts 242) 	/**
source/services/concept.ts 243) 	 */
Christian Fraß [mod] makefile

Christian Fraß authored 3 years ago

source/services/concept.ts 244) 	export async function suck
Christian Fraß [mod] logic

Christian Fraß authored 3 years ago

source/services/concept.ts 245) 	(
Christian Fraß [mod] makefile

Christian Fraß authored 3 years ago

source/services/concept.ts 246) 		concept_thing : any
source/services/concept.ts 247) 	) : Promise<int>
Christian Fraß [mod] logic

Christian Fraß authored 3 years ago

source/services/concept.ts 248) 	{
Christian Fraß [mod] makefile

Christian Fraß authored 3 years ago

source/services/concept.ts 249) 		const type_id : int = await services.type.give(concept_thing["type"]);
source/services/concept.ts 250) 		const concept_id : int = await repositories.concept_core.create
source/services/concept.ts 251) 		(
source/services/concept.ts 252) 			{
source/services/concept.ts 253) 				"type_id": type_id,
source/services/concept.ts 254) 				"description": concept_thing["description"],
source/services/concept.ts 255) 			}
source/services/concept.ts 256) 		);
source/services/concept.ts 257) 		for await (const tag_value of concept_thing["tags"])
source/services/concept.ts 258) 		{
source/services/concept.ts 259) 			const tag_id : int = await services.tag.give(tag_value);
source/services/concept.ts 260) 			const concept_tag_id : int = await repositories.concept_tags.create
Christian Fraß [add] typescript logic

Christian Fraß authored 3 years ago

source/services/concept.ts 261) 			(
Christian Fraß [mod] makefile

Christian Fraß authored 3 years ago

source/services/concept.ts 262) 				{
source/services/concept.ts 263) 					"concept_id": concept_id,
source/services/concept.ts 264) 					"tag_id": tag_id,
source/services/concept.ts 265) 				}
source/services/concept.ts 266) 			);
source/services/concept.ts 267) 		}
source/services/concept.ts 268) 		for await (const [language_value, expression_values] of Object.entries(concept_thing["expressions"]))
source/services/concept.ts 269) 		{
source/services/concept.ts 270) 			const language_id : int = await services.language.give(language_value);
source/services/concept.ts 271) 			for await (const expression_value of <Array<string>>(expression_values))
source/services/concept.ts 272) 			{
source/services/concept.ts 273) 				const expression_id : int = await services.expression.give(language_id, expression_value);
source/services/concept.ts 274) 				const concept_expression_id : int = await repositories.concept_expressions.create
Christian Fraß [mod] logic

Christian Fraß authored 3 years ago

source/services/concept.ts 275) 				(
Christian Fraß [mod] makefile

Christian Fraß authored 3 years ago

source/services/concept.ts 276) 					{
source/services/concept.ts 277) 						"concept_id": concept_id,
source/services/concept.ts 278) 						"expression_id": expression_id,
source/services/concept.ts 279) 					}
source/services/concept.ts 280) 				);
source/services/concept.ts 281) 			}
source/services/concept.ts 282) 		}
source/services/concept.ts 283) 		return concept_id;