Feat settings cascade (#3)
Co-authored-by: Jeffrey Smith <jasafpro@gmail.com> Co-committed-by: Jeffrey Smith <jasafpro@gmail.com>
This commit was merged in pull request #3.
This commit is contained in:
@@ -388,6 +388,36 @@ func (s *PackageStore) SetPackageSettings(ctx context.Context, id string, settin
|
||||
return nil
|
||||
}
|
||||
|
||||
// ── Team-level settings (v0.2.0) ─────────────────
|
||||
|
||||
func (s *PackageStore) GetTeamSettings(ctx context.Context, pkgID, teamID string) (json.RawMessage, error) {
|
||||
var settings string
|
||||
err := DB.QueryRowContext(ctx,
|
||||
`SELECT settings FROM package_team_settings WHERE package_id = ? AND team_id = ?`,
|
||||
pkgID, teamID).Scan(&settings)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return json.RawMessage(settings), nil
|
||||
}
|
||||
|
||||
func (s *PackageStore) SetTeamSettings(ctx context.Context, pkgID, teamID string, settings json.RawMessage) error {
|
||||
_, err := DB.ExecContext(ctx, `
|
||||
INSERT INTO package_team_settings (package_id, team_id, settings, updated_at)
|
||||
VALUES (?, ?, ?, datetime('now'))
|
||||
ON CONFLICT (package_id, team_id)
|
||||
DO UPDATE SET settings = EXCLUDED.settings, updated_at = datetime('now')`,
|
||||
pkgID, teamID, string(settings))
|
||||
return err
|
||||
}
|
||||
|
||||
func (s *PackageStore) DeleteTeamSettings(ctx context.Context, pkgID, teamID string) error {
|
||||
_, err := DB.ExecContext(ctx,
|
||||
`DELETE FROM package_team_settings WHERE package_id = ? AND team_id = ?`,
|
||||
pkgID, teamID)
|
||||
return err
|
||||
}
|
||||
|
||||
func nullStrPtr(s *string) sql.NullString {
|
||||
if s == nil {
|
||||
return sql.NullString{}
|
||||
|
||||
Reference in New Issue
Block a user