Only fetch post content when necessary
This commit is contained in:
parent
966214d03f
commit
07154fb8b4
|
@ -125,8 +125,25 @@ func FetchTimeline(
|
||||||
'post' AS timeline_type,
|
'post' AS timeline_type,
|
||||||
author_id AS owner_id,
|
author_id AS owner_id,
|
||||||
thread.title AS title,
|
thread.title AS title,
|
||||||
|
`,
|
||||||
|
)
|
||||||
|
if q.IncludePostDescription {
|
||||||
|
qb.Add(
|
||||||
|
`
|
||||||
post_version.text_parsed AS parsed_desc,
|
post_version.text_parsed AS parsed_desc,
|
||||||
post_version.text_raw AS raw_desc,
|
post_version.text_raw AS raw_desc,
|
||||||
|
`,
|
||||||
|
)
|
||||||
|
} else {
|
||||||
|
qb.Add(
|
||||||
|
`
|
||||||
|
'' AS parsed_desc,
|
||||||
|
'' AS raw_desc,
|
||||||
|
`,
|
||||||
|
)
|
||||||
|
}
|
||||||
|
qb.Add(
|
||||||
|
`
|
||||||
NULL::uuid AS asset_id,
|
NULL::uuid AS asset_id,
|
||||||
NULL AS discord_message_id,
|
NULL AS discord_message_id,
|
||||||
NULL AS url,
|
NULL AS url,
|
||||||
|
@ -217,7 +234,9 @@ func FetchTimeline(
|
||||||
qb.Add(`LIMIT $? OFFSET $?`, q.Limit, q.Offset)
|
qb.Add(`LIMIT $? OFFSET $?`, q.Limit, q.Offset)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
perf.StartBlock("SQL", "Query timeline")
|
||||||
results, err := db.Query[TimelineItemAndStuff](ctx, dbConn, qb.String(), qb.Args()...)
|
results, err := db.Query[TimelineItemAndStuff](ctx, dbConn, qb.String(), qb.Args()...)
|
||||||
|
perf.EndBlock()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, oops.New(err, "failed to fetch timeline items")
|
return nil, oops.New(err, "failed to fetch timeline items")
|
||||||
}
|
}
|
||||||
|
@ -226,12 +245,10 @@ func FetchTimeline(
|
||||||
if results[idx].Owner != nil {
|
if results[idx].Owner != nil {
|
||||||
results[idx].Owner.AvatarAsset = results[idx].AvatarAsset
|
results[idx].Owner.AvatarAsset = results[idx].AvatarAsset
|
||||||
}
|
}
|
||||||
if results[idx].Item.Type == models.TimelineItemTypePost && !q.IncludePostDescription {
|
|
||||||
results[idx].Item.RawDescription = ""
|
|
||||||
results[idx].Item.ParsedDescription = ""
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
perf.StartBlock("TIMELINE", "Fixup projects")
|
||||||
|
defer perf.EndBlock()
|
||||||
projectsSeen := make(map[int]bool)
|
projectsSeen := make(map[int]bool)
|
||||||
var projectIds []int
|
var projectIds []int
|
||||||
var snippetIds []int
|
var snippetIds []int
|
||||||
|
@ -256,6 +273,7 @@ func FetchTimeline(
|
||||||
SnippetID int `db:"snippet_id"`
|
SnippetID int `db:"snippet_id"`
|
||||||
ProjectID int `db:"project_id"`
|
ProjectID int `db:"project_id"`
|
||||||
}
|
}
|
||||||
|
perf.StartBlock("SQL", "Fetch snippet projects")
|
||||||
snippetProjects, err := db.Query[snippetProjectRow](ctx, dbConn,
|
snippetProjects, err := db.Query[snippetProjectRow](ctx, dbConn,
|
||||||
`
|
`
|
||||||
SELECT $columns
|
SELECT $columns
|
||||||
|
@ -264,6 +282,7 @@ func FetchTimeline(
|
||||||
`,
|
`,
|
||||||
snippetIds,
|
snippetIds,
|
||||||
)
|
)
|
||||||
|
perf.EndBlock()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, oops.New(err, "failed to fetch project ids for timeline")
|
return nil, oops.New(err, "failed to fetch project ids for timeline")
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue