99 and ,
1010 desc ,
1111 eq ,
12- joinTable ,
12+ leftJoin ,
1313 like ,
14+ manyToManyJoin ,
1415 neq ,
1516 notInArray ,
1617 or ,
@@ -199,6 +200,7 @@ export async function updateArticle(
199200 published_at : input . is_published ? new Date ( ) : null ,
200201 } ,
201202 } ) ;
203+
202204 return article ;
203205 } catch ( error ) {
204206 handleRepositoryException ( error ) ;
@@ -229,6 +231,11 @@ export async function updateMyArticle(
229231 metadata : input . metadata ,
230232 } ,
231233 } ) ;
234+ // a 1, t 1
235+ // a 1, t 2
236+ // a 1, t 3
237+
238+ // a-> (2,3,4)
232239
233240 if ( input . tag_ids ) {
234241 await persistenceRepository . articleTag . deleteRows ( {
@@ -238,8 +245,8 @@ export async function updateMyArticle(
238245 ) ,
239246 } ) ;
240247
241- await input . tag_ids . forEach ( ( tag_id ) => {
242- persistenceRepository . articleTag . createOne ( {
248+ input . tag_ids . forEach ( async ( tag_id ) => {
249+ await persistenceRepository . articleTag . createOne ( {
243250 article_id : article . id ,
244251 tag_id : tag_id ,
245252 } ) ;
@@ -294,7 +301,7 @@ export async function findRecentArticles(
294301 orderBy : [ desc ( "published_at" ) ] ,
295302 columns : [ "id" , "title" , "handle" ] ,
296303 joins : [
297- joinTable < Article , User > ( {
304+ leftJoin < Article , User > ( {
298305 as : "user" ,
299306 joinTo : "users" ,
300307 localField : "author_id" ,
@@ -337,7 +344,7 @@ export async function articleFeed(
337344 "excerpt" ,
338345 ] ,
339346 joins : [
340- joinTable < Article , User > ( {
347+ leftJoin < Article , User > ( {
341348 as : "user" ,
342349 joinTo : "users" ,
343350 localField : "author_id" ,
@@ -386,7 +393,7 @@ export async function userArticleFeed(
386393 "excerpt" ,
387394 ] ,
388395 joins : [
389- joinTable < Article , User > ( {
396+ leftJoin < Article , User > ( {
390397 as : "user" ,
391398 joinTo : "users" ,
392399 localField : "author_id" ,
@@ -429,19 +436,20 @@ export async function articleDetailByHandle(article_handle: string) {
429436 "updated_at" ,
430437 ] ,
431438 joins : [
432- joinTable < Article , User > ( {
439+ leftJoin < Article , User > ( {
433440 as : "user" ,
434441 joinTo : "users" ,
435442 localField : "author_id" ,
436443 foreignField : "id" ,
437444 columns : [ "id" , "name" , "username" , "profile_photo" ] ,
438445 } ) ,
439- // joinTable<Article, Tag>({
440- // as: "tags",
441- // joinTo: "tags",
442- // localField: "author_id",
443- // foreignField: "id",
444- // }),
446+ manyToManyJoin < Article , Tag > ( {
447+ as : "tags" ,
448+ pivotTable : DatabaseTableName . article_tag ,
449+ localField : "id" ,
450+ foreignField : "id" ,
451+ columns : [ "id" , "name" , "icon" , "color" , "description" ] ,
452+ } ) ,
445453 ] ,
446454 limit : 1 ,
447455 } ) ;
@@ -476,7 +484,7 @@ export async function articleDetailByUUID(uuid: string) {
476484 "updated_at" ,
477485 ] ,
478486 joins : [
479- joinTable < Article , User > ( {
487+ leftJoin < Article , User > ( {
480488 as : "user" ,
481489 joinTo : "users" ,
482490 localField : "author_id" ,
0 commit comments