faf7e12c13eaaaa19677086fd5b2f06c4bca86a5
Christian Fraß [add] typescript logic

Christian Fraß authored 3 years ago

source/repositories/concept.ts   1) namespace repositories
source/repositories/concept.ts   2) {
source/repositories/concept.ts   3) 	
Christian Fraß [mod] makefile

Christian Fraß authored 3 years ago

source/repositories/concept.ts   4) 	export var concept_core : helpers.repository_sqltable =
source/repositories/concept.ts   5) 	{
source/repositories/concept.ts   6) 		"setup": function ()
source/repositories/concept.ts   7) 		{
source/repositories/concept.ts   8) 			return helpers.database.query_do_named("concept.setup-core");
source/repositories/concept.ts   9) 		},
source/repositories/concept.ts  10) 		"teardown": function ()
source/repositories/concept.ts  11) 		{
source/repositories/concept.ts  12) 			throw (new Error("not implemented"));
source/repositories/concept.ts  13) 		},
source/repositories/concept.ts  14) 		"create": function (row)
source/repositories/concept.ts  15) 		{
source/repositories/concept.ts  16) 			return helpers.database.query_put_free
source/repositories/concept.ts  17) 			(
source/repositories/concept.ts  18) 				"INSERT INTO concepts(type_id, description) VALUES (:type_id, :description);",
source/repositories/concept.ts  19) 				{
source/repositories/concept.ts  20) 					"type_id": row["type_id"],
source/repositories/concept.ts  21) 					"description": row["description"],
source/repositories/concept.ts  22) 				}
source/repositories/concept.ts  23) 			);
source/repositories/concept.ts  24) 		},
source/repositories/concept.ts  25) 		"update": function (concept_id, row)
source/repositories/concept.ts  26) 		{
source/repositories/concept.ts  27) 			return helpers.database.query_do_free
source/repositories/concept.ts  28) 			(
source/repositories/concept.ts  29) 				"UPDATE concepts SET type_id = :type_id, description = :description WHERE (id = :id)",
source/repositories/concept.ts  30) 				{
source/repositories/concept.ts  31) 					"id": concept_id,
source/repositories/concept.ts  32) 					"type_id": row["type_id"],
source/repositories/concept.ts  33) 					"description": row["description"],
source/repositories/concept.ts  34) 				}
source/repositories/concept.ts  35) 			);
source/repositories/concept.ts  36) 		},
source/repositories/concept.ts  37) 		"delete": function (concept_id)
source/repositories/concept.ts  38) 		{
source/repositories/concept.ts  39) 			return helpers.database.query_do_free
source/repositories/concept.ts  40) 			(
source/repositories/concept.ts  41) 				"DELETE FROM concepts WHERE (id = :id)",
source/repositories/concept.ts  42) 				{
source/repositories/concept.ts  43) 					"id": concept_id,
source/repositories/concept.ts  44) 				}
source/repositories/concept.ts  45) 			);
source/repositories/concept.ts  46) 		},
source/repositories/concept.ts  47) 		"read": function (concept_id)
source/repositories/concept.ts  48) 		{
source/repositories/concept.ts  49) 			return (
source/repositories/concept.ts  50) 				helpers.database.query_get_free
source/repositories/concept.ts  51) 				(
source/repositories/concept.ts  52) 					"SELECT type_id,description FROM concepts WHERE (id = :id)",
source/repositories/concept.ts  53) 					{
source/repositories/concept.ts  54) 						"id": concept_id,
source/repositories/concept.ts  55) 					}
source/repositories/concept.ts  56) 				)
source/repositories/concept.ts  57) 				.then
source/repositories/concept.ts  58) 				(
source/repositories/concept.ts  59) 					(rows) => (
source/repositories/concept.ts  60) 						(rows.length === 1)
source/repositories/concept.ts  61) 						? Promise.resolve<type_row>(rows[0])
source/repositories/concept.ts  62) 						: Promise.reject<type_row>(new Error("not found"))
source/repositories/concept.ts  63) 					)
source/repositories/concept.ts  64) 				)
source/repositories/concept.ts  65) 			);
source/repositories/concept.ts  66) 		},
source/repositories/concept.ts  67) 		"purge": async function (column, value)
source/repositories/concept.ts  68) 		{
source/repositories/concept.ts  69) 			throw (new Error("not implemented"));
source/repositories/concept.ts  70) 		},
source/repositories/concept.ts  71) 		"take": async function (column, value)
source/repositories/concept.ts  72) 		{
source/repositories/concept.ts  73) 			throw (new Error("not implemented"));
source/repositories/concept.ts  74) 		},
source/repositories/concept.ts  75) 	};
source/repositories/concept.ts  76) 	
source/repositories/concept.ts  77) 	
source/repositories/concept.ts  78) 	export var concept_tags : helpers.repository_sqltable =
source/repositories/concept.ts  79) 	{
source/repositories/concept.ts  80) 		"setup": function ()
source/repositories/concept.ts  81) 		{
source/repositories/concept.ts  82) 			return helpers.database.query_do_named("concept.setup-tags");
source/repositories/concept.ts  83) 		},
source/repositories/concept.ts  84) 		"teardown": function ()
source/repositories/concept.ts  85) 		{
source/repositories/concept.ts  86) 			throw (new Error("not implemented"));
source/repositories/concept.ts  87) 		},
source/repositories/concept.ts  88) 		"create": function (row)
source/repositories/concept.ts  89) 		{
source/repositories/concept.ts  90) 			return helpers.database.query_put_free
source/repositories/concept.ts  91) 			(
source/repositories/concept.ts  92) 				"INSERT INTO concept_tags(concept_id, tag_id) VALUES (:concept_id, :tag_id);",
source/repositories/concept.ts  93) 				{
source/repositories/concept.ts  94) 					"concept_id": row["concept_id"],
source/repositories/concept.ts  95) 					"tag_id": row["tag_id"],
source/repositories/concept.ts  96) 				}
source/repositories/concept.ts  97) 			);
source/repositories/concept.ts  98) 		},
source/repositories/concept.ts  99) 		"update": function (concept_tag_id, row)
source/repositories/concept.ts 100) 		{
source/repositories/concept.ts 101) 			return helpers.database.query_do_free
source/repositories/concept.ts 102) 			(
source/repositories/concept.ts 103) 				"UPDATE concept_tags SET concept_id = :concept_id, tag_id = :tag_id WHERE (id = :id)",
source/repositories/concept.ts 104) 				{
source/repositories/concept.ts 105) 					"id": concept_tag_id,
source/repositories/concept.ts 106) 					"concept_id": row["concept_id"],
source/repositories/concept.ts 107) 					"tag_id": row["tag_id"],
source/repositories/concept.ts 108) 				}
source/repositories/concept.ts 109) 			);
source/repositories/concept.ts 110) 		},
source/repositories/concept.ts 111) 		"delete": function (concept_tag_id)
source/repositories/concept.ts 112) 		{
source/repositories/concept.ts 113) 			return helpers.database.query_do_free
source/repositories/concept.ts 114) 			(
source/repositories/concept.ts 115) 				"DELETE FROM concept_tags WHERE (id = :id)",
source/repositories/concept.ts 116) 				{
source/repositories/concept.ts 117) 					"id": concept_tag_id,
source/repositories/concept.ts 118) 				}
source/repositories/concept.ts 119) 			);
source/repositories/concept.ts 120) 		},
source/repositories/concept.ts 121) 		"read": async function (concept_tag_id)
source/repositories/concept.ts 122) 		{
source/repositories/concept.ts 123) 			return (
source/repositories/concept.ts 124) 				helpers.database.query_get_free
source/repositories/concept.ts 125) 				(
source/repositories/concept.ts 126) 					"SELECT concept_id,tag_id FROM concept_tags WHERE (id = :id)",
source/repositories/concept.ts 127) 					{
source/repositories/concept.ts 128) 						"id": concept_tag_id,
source/repositories/concept.ts 129) 					}
source/repositories/concept.ts 130) 				)
source/repositories/concept.ts 131) 				.then
source/repositories/concept.ts 132) 				(
source/repositories/concept.ts 133) 					(rows) => (
source/repositories/concept.ts 134) 						(rows.length === 1)
source/repositories/concept.ts 135) 						? Promise.resolve<type_row>(rows[0])
source/repositories/concept.ts 136) 						: Promise.reject<type_row>(new Error("not found"))
source/repositories/concept.ts 137) 					)
source/repositories/concept.ts 138) 				)
source/repositories/concept.ts 139) 			);
source/repositories/concept.ts 140) 		},
source/repositories/concept.ts 141) 		"purge": async function (column, value)
source/repositories/concept.ts 142) 		{
source/repositories/concept.ts 143) 			return helpers.database.query_do_free
source/repositories/concept.ts 144) 			(
source/repositories/concept.ts 145) 				"DELETE FROM concept_tags WHERE (" + column + " = :value)",
source/repositories/concept.ts 146) 				{
source/repositories/concept.ts 147) 					"value": value,
source/repositories/concept.ts 148) 				}
source/repositories/concept.ts 149) 			);
source/repositories/concept.ts 150) 		},
source/repositories/concept.ts 151) 		"take": async function (column, value)
source/repositories/concept.ts 152) 		{
source/repositories/concept.ts 153) 			return await helpers.database.query_get_free
source/repositories/concept.ts 154) 			(
source/repositories/concept.ts 155) 				"SELECT concept_id,tag_id FROM concept_tags WHERE (" + column + " = :value)",
source/repositories/concept.ts 156) 				{
source/repositories/concept.ts 157) 					"value": value,
source/repositories/concept.ts 158) 				}
source/repositories/concept.ts 159) 			);
source/repositories/concept.ts 160) 		},
source/repositories/concept.ts 161) 	};
source/repositories/concept.ts 162) 	
source/repositories/concept.ts 163) 	
Christian Fraß [add] typescript logic

Christian Fraß authored 3 years ago

source/repositories/concept.ts 164) 	/**
source/repositories/concept.ts 165) 	 */
Christian Fraß [mod] makefile

Christian Fraß authored 3 years ago

source/repositories/concept.ts 166) 	export var concept_expressions : helpers.repository_sqltable =
source/repositories/concept.ts 167) 	{
source/repositories/concept.ts 168) 		"setup": function ()
source/repositories/concept.ts 169) 		{
source/repositories/concept.ts 170) 			return helpers.database.query_do_named("concept.setup-expressions");
source/repositories/concept.ts 171) 		},
source/repositories/concept.ts 172) 		"teardown": function ()
source/repositories/concept.ts 173) 		{
source/repositories/concept.ts 174) 			throw (new Error("not implemented"));
source/repositories/concept.ts 175) 		},
source/repositories/concept.ts 176) 		"create": function (row)
source/repositories/concept.ts 177) 		{
source/repositories/concept.ts 178) 			return helpers.database.query_put_free
source/repositories/concept.ts 179) 			(
source/repositories/concept.ts 180) 				"INSERT INTO concept_expressions(concept_id, expression_id) VALUES (:concept_id, :expression_id);",
source/repositories/concept.ts 181) 				{
source/repositories/concept.ts 182) 					"concept_id": row["concept_id"],
source/repositories/concept.ts 183) 					"expression_id": row["expression_id"],
source/repositories/concept.ts 184) 				}
source/repositories/concept.ts 185) 			);
source/repositories/concept.ts 186) 		},
source/repositories/concept.ts 187) 		"update": function (concept_expression_id, row)
source/repositories/concept.ts 188) 		{
source/repositories/concept.ts 189) 			return helpers.database.query_do_free
source/repositories/concept.ts 190) 			(
source/repositories/concept.ts 191) 				"UPDATE concept_expressions SET concept_id = :concept_id, expression_id = :expression_id WHERE (id = :id)",
source/repositories/concept.ts 192) 				{
source/repositories/concept.ts 193) 					"id": concept_expression_id,
source/repositories/concept.ts 194) 					"concept_id": row["concept_id"],
source/repositories/concept.ts 195) 					"expression_id": row["expression_id"],
source/repositories/concept.ts 196) 				}
source/repositories/concept.ts 197) 			);
source/repositories/concept.ts 198) 		},
source/repositories/concept.ts 199) 		"delete": function (concept_expression_id)
source/repositories/concept.ts 200) 		{
source/repositories/concept.ts 201) 			return helpers.database.query_do_free
source/repositories/concept.ts 202) 			(
source/repositories/concept.ts 203) 				"DELETE FROM concept_expressions WHERE (id = :id)",
source/repositories/concept.ts 204) 				{
source/repositories/concept.ts 205) 					"id": concept_expression_id,
source/repositories/concept.ts 206) 				}
source/repositories/concept.ts 207) 			);
source/repositories/concept.ts 208) 		},
source/repositories/concept.ts 209) 		"read": async function (concept_expression_id)
source/repositories/concept.ts 210) 		{
source/repositories/concept.ts 211) 			return (
source/repositories/concept.ts 212) 				helpers.database.query_get_free
source/repositories/concept.ts 213) 				(
source/repositories/concept.ts 214) 					"SELECT concept_id,expression_id FROM concept_expressions WHERE (id = :id)",
source/repositories/concept.ts 215) 					{
source/repositories/concept.ts 216) 						"id": concept_expression_id,
source/repositories/concept.ts 217) 					}
source/repositories/concept.ts 218) 				)
source/repositories/concept.ts 219) 				.then
source/repositories/concept.ts 220) 				(
source/repositories/concept.ts 221) 					(rows) => (
source/repositories/concept.ts 222) 						(rows.length === 1)
source/repositories/concept.ts 223) 						? Promise.resolve<type_row>(rows[0])
source/repositories/concept.ts 224) 						: Promise.reject<type_row>(new Error("not found"))
source/repositories/concept.ts 225) 					)
source/repositories/concept.ts 226) 				)
source/repositories/concept.ts 227) 			);
source/repositories/concept.ts 228) 		},
source/repositories/concept.ts 229) 		"purge": async function (column, value)
source/repositories/concept.ts 230) 		{
source/repositories/concept.ts 231) 			return helpers.database.query_do_free
source/repositories/concept.ts 232) 			(
source/repositories/concept.ts 233) 				"DELETE FROM concept_expressions WHERE (" + column + " = :value)",
source/repositories/concept.ts 234) 				{
source/repositories/concept.ts 235) 					"value": value,
source/repositories/concept.ts 236) 				}
source/repositories/concept.ts 237) 			);
source/repositories/concept.ts 238) 		},
source/repositories/concept.ts 239) 		"take": async function (column, value)
source/repositories/concept.ts 240) 		{
source/repositories/concept.ts 241) 			return await helpers.database.query_get_free
source/repositories/concept.ts 242) 			(
source/repositories/concept.ts 243) 				"SELECT concept_id,expression_id FROM concept_expressions WHERE (" + column + " = :value)",
source/repositories/concept.ts 244) 				{
source/repositories/concept.ts 245) 					"value": value,
source/repositories/concept.ts 246) 				}
source/repositories/concept.ts 247) 			);
source/repositories/concept.ts 248) 		},
source/repositories/concept.ts 249) 	};
source/repositories/concept.ts 250) 	
source/repositories/concept.ts 251) 	
Christian Fraß [add] typescript logic

Christian Fraß authored 3 years ago

source/repositories/concept.ts 252) 	export var concept : (
source/repositories/concept.ts 253) 		helpers.repository<int, entities.concept>
source/repositories/concept.ts 254) 		&
source/repositories/concept.ts 255) 		{
source/repositories/concept.ts 256) 			get_translations : (language_from : string, language_to : string, part : string)=>Promise<Array<type_row>>;
Christian Fraß [mod] makefile

Christian Fraß authored 3 years ago

source/repositories/concept.ts 257) 			search : (part : string)=>Promise<Array<int>>;
Christian Fraß [add] typescript logic

Christian Fraß authored 3 years ago

source/repositories/concept.ts 258) 			export : ()=>Promise<Array<type_row>>;
source/repositories/concept.ts 259) 		}
source/repositories/concept.ts 260) 	) =
source/repositories/concept.ts 261) 	{
source/repositories/concept.ts 262) 		"setup": async function ()
source/repositories/concept.ts 263) 		{
Christian Fraß [mod] makefile

Christian Fraß authored 3 years ago

source/repositories/concept.ts 264) 			await concept_core.setup();
source/repositories/concept.ts 265) 			await concept_tags.setup();
source/repositories/concept.ts 266) 			await concept_expressions.setup();
Christian Fraß [add] typescript logic

Christian Fraß authored 3 years ago

source/repositories/concept.ts 267) 			return Promise.resolve<void>(undefined);
source/repositories/concept.ts 268) 		},
source/repositories/concept.ts 269) 		"teardown": async function ()
source/repositories/concept.ts 270) 		{
Christian Fraß [mod] makefile

Christian Fraß authored 3 years ago

source/repositories/concept.ts 271) 			await concept_expressions.teardown();
source/repositories/concept.ts 272) 			await concept_tags.teardown();
source/repositories/concept.ts 273) 			await concept_core.teardown();
Christian Fraß [add] typescript logic

Christian Fraß authored 3 years ago

source/repositories/concept.ts 274) 			return Promise.resolve<void>(undefined);
source/repositories/concept.ts 275) 		},
source/repositories/concept.ts 276) 		"create": async function (concept_entity)
source/repositories/concept.ts 277) 		{
source/repositories/concept.ts 278) 			const row_core : type_row = {"type_id": concept_entity.type_id, "description": concept_entity.description};
Christian Fraß [mod] makefile

Christian Fraß authored 3 years ago

source/repositories/concept.ts 279) 			const concept_id : int = await concept_core.create(row_core);
Christian Fraß [add] api

Christian Fraß authored 3 years ago

source/repositories/concept.ts 280) 			for await (const tag_id of concept_entity.tag_ids)
Christian Fraß [add] typescript logic

Christian Fraß authored 3 years ago

source/repositories/concept.ts 281) 			{
source/repositories/concept.ts 282) 				const row_tag : type_row = {"concept_id": concept_id, "tag_id": tag_id};
Christian Fraß [mod] makefile

Christian Fraß authored 3 years ago

source/repositories/concept.ts 283) 				const concept_tag_id : int = await concept_tags.create(row_tag);
Christian Fraß [add] typescript logic

Christian Fraß authored 3 years ago

source/repositories/concept.ts 284) 			}
Christian Fraß [add] api

Christian Fraß authored 3 years ago

source/repositories/concept.ts 285) 			for await (const expression_id of concept_entity.expression_ids)
Christian Fraß [add] typescript logic

Christian Fraß authored 3 years ago

source/repositories/concept.ts 286) 			{
Christian Fraß [mod] makefile

Christian Fraß authored 3 years ago

source/repositories/concept.ts 287) 				const row_expressions : type_row = {"concept_id": concept_id, "expression_id": expression_id};
source/repositories/concept.ts 288) 				const concept_expressions_id : int = await concept_expressions.create(row_expressions);
Christian Fraß [add] typescript logic

Christian Fraß authored 3 years ago

source/repositories/concept.ts 289) 			}
source/repositories/concept.ts 290) 			return Promise.resolve<int>(concept_id);
source/repositories/concept.ts 291) 		},
source/repositories/concept.ts 292) 		"update": function (concept_id, concept_entity)
source/repositories/concept.ts 293) 		{
source/repositories/concept.ts 294) 			throw (new Error("not implemented"));
source/repositories/concept.ts 295) 		},
source/repositories/concept.ts 296) 		"delete": async function (concept_id)
source/repositories/concept.ts 297) 		{
Christian Fraß [mod] makefile

Christian Fraß authored 3 years ago

source/repositories/concept.ts 298) 			await concept_expressions.purge("concept_id", concept_id);
source/repositories/concept.ts 299) 			await concept_tags.purge("concept_id", concept_id);
source/repositories/concept.ts 300) 			await concept_core.delete(concept_id);
Christian Fraß [add] typescript logic

Christian Fraß authored 3 years ago

source/repositories/concept.ts 301) 			return Promise.resolve<void>(undefined);
source/repositories/concept.ts 302) 		},
source/repositories/concept.ts 303) 		"read": async function (concept_id)
source/repositories/concept.ts 304) 		{
Christian Fraß [mod] makefile

Christian Fraß authored 3 years ago

source/repositories/concept.ts 305) 			const row_core : type_row = await concept_core.read(concept_id);;
source/repositories/concept.ts 306) 			const rows_tags : Array<type_row> = await concept_tags.take("concept_id", concept_id);
source/repositories/concept.ts 307) 			const rows_expressions : Array<type_row> = await concept_expressions.take("concept_id", concept_id);
Christian Fraß [add] typescript logic

Christian Fraß authored 3 years ago

source/repositories/concept.ts 308) 			const concept_entity : entities.concept =
source/repositories/concept.ts 309) 			{
source/repositories/concept.ts 310) 				"type_id": row_core["type_id"],
source/repositories/concept.ts 311) 				"description": row_core["description"],
Christian Fraß [add] api

Christian Fraß authored 3 years ago

source/repositories/concept.ts 312) 				"tag_ids": rows_tags.map(row_tag => row_tag["tag_id"]),
source/repositories/concept.ts 313) 				"expression_ids": rows_expressions.map(row_expression => row_expression["expression_id"]),
Christian Fraß [add] typescript logic

Christian Fraß authored 3 years ago

source/repositories/concept.ts 314) 			};
source/repositories/concept.ts 315) 			return Promise.resolve<entities.concept>(concept_entity);
source/repositories/concept.ts 316) 		},
Christian Fraß [mod] logic

Christian Fraß authored 3 years ago

source/repositories/concept.ts 317) 		"get_translations": function (language_from, language_to, part)
Christian Fraß [add] typescript logic

Christian Fraß authored 3 years ago

source/repositories/concept.ts 318) 		{
source/repositories/concept.ts 319) 			return helpers.database.query_get_named
source/repositories/concept.ts 320) 			(
source/repositories/concept.ts 321) 				"concept.get_translations",
source/repositories/concept.ts 322) 				{
Christian Fraß [mod] logic

Christian Fraß authored 3 years ago

source/repositories/concept.ts 323) 					"language_from": language_from,
source/repositories/concept.ts 324) 					"language_to": language_to,
Christian Fraß [add] typescript logic

Christian Fraß authored 3 years ago

source/repositories/concept.ts 325) 					"part": part.replace(new RegExp("-", "g"), "%"),
source/repositories/concept.ts 326) 				}
source/repositories/concept.ts 327) 			);
source/repositories/concept.ts 328) 		},
Christian Fraß [mod] makefile

Christian Fraß authored 3 years ago

source/repositories/concept.ts 329) 		"search": function (part) : Promise<Array<int>>
Christian Fraß [add] typescript logic

Christian Fraß authored 3 years ago

source/repositories/concept.ts 330) 		{
Christian Fraß [mod] makefile

Christian Fraß authored 3 years ago

source/repositories/concept.ts 331) 			return (
source/repositories/concept.ts 332) 				helpers.database.query_get_named("concept.search", {"part": part.replace(new RegExp("-", "g"), "%")})
source/repositories/concept.ts 333) 				.then<Array<int>>
source/repositories/concept.ts 334) 				(
source/repositories/concept.ts 335) 					(rows) => Promise.resolve<Array<int>>(rows.map(row => row["id"]))
source/repositories/concept.ts 336) 				)
source/repositories/concept.ts 337) 			);
Christian Fraß [mod] logic

Christian Fraß authored 3 years ago

source/repositories/concept.ts 338) 		},
Christian Fraß [mod] makefile

Christian Fraß authored 3 years ago

source/repositories/concept.ts 339) 		"export": function () : Promise<Array<type_row>>
Christian Fraß [mod] logic

Christian Fraß authored 3 years ago

source/repositories/concept.ts 340) 		{
Christian Fraß [mod] makefile

Christian Fraß authored 3 years ago

source/repositories/concept.ts 341) 			return helpers.database.query_get_named("concept.dump", {"part": null});