aboutsummaryrefslogtreecommitdiff
path: root/internal/postgres
diff options
context:
space:
mode:
Diffstat (limited to 'internal/postgres')
-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
+ }
+}