aboutsummaryrefslogtreecommitdiff
path: root/internal/postgres/unit.go
diff options
context:
space:
mode:
authorJonathan Amsterdam <jba@google.com>2020-12-04 08:59:17 -0500
committerJonathan Amsterdam <jba@google.com>2020-12-07 20:34:35 +0000
commit28e964bf4bb6abbfa556ca688ce5d8317a0f52d1 (patch)
tree85b4286ff7ffee6cc44dbfacf08805d5aa8014d6 /internal/postgres/unit.go
parentfd734f2d179669e2e4ce792d123b0413e983c3c8 (diff)
downloadgo-x-pkgsite-28e964bf4bb6abbfa556ca688ce5d8317a0f52d1.tar.xz
internal/frontend: show module readme links in sub-units
Show a module's README links on all units within the module. For golang/go#42968 Change-Id: I8701a04a16e1dd766b1b23ce12d52d01190840fd Reviewed-on: https://go-review.googlesource.com/c/pkgsite/+/275276 Trust: Jonathan Amsterdam <jba@google.com> Run-TryBot: Jonathan Amsterdam <jba@google.com> TryBot-Result: kokoro <noreply+kokoro@google.com> Reviewed-by: Julie Qiu <julie@golang.org>
Diffstat (limited to 'internal/postgres/unit.go')
-rw-r--r--internal/postgres/unit.go25
1 files changed, 25 insertions, 0 deletions
diff --git a/internal/postgres/unit.go b/internal/postgres/unit.go
index 49e9a151..8a2fec9b 100644
--- a/internal/postgres/unit.go
+++ b/internal/postgres/unit.go
@@ -404,3 +404,28 @@ func (db *DB) getPathsInModule(ctx context.Context, modulePath, resolvedVersion
}
return paths, nil
}
+
+// GetModuleReadme returns the README corresponding to the modulePath and version.
+func (db *DB) GetModuleReadme(ctx context.Context, modulePath, resolvedVersion string) (_ *internal.Readme, err error) {
+ defer derrors.Wrap(&err, "GetModuleReadme(ctx, %q, %q)", modulePath, resolvedVersion)
+ var readme internal.Readme
+ err = db.db.QueryRow(ctx, `
+ SELECT file_path, contents
+ FROM modules m
+ INNER JOIN units u
+ ON u.module_id = m.id
+ INNER JOIN readmes r
+ ON u.id = r.unit_id
+ WHERE
+ m.module_path=$1
+ AND m.version=$2
+ AND m.module_path=u.path`, modulePath, resolvedVersion).Scan(&readme.Filepath, &readme.Contents)
+ switch err {
+ case sql.ErrNoRows:
+ return nil, derrors.NotFound
+ case nil:
+ return &readme, nil
+ default:
+ return nil, err
+ }
+}