@@ -15,6 +15,7 @@ import (
1515 "log"
1616 "net/http"
1717 "net/netip"
18+ "slices"
1819
1920 "github.com/aws/aws-sdk-go-v2/aws"
2021 "github.com/aws/aws-sdk-go-v2/config"
@@ -131,6 +132,7 @@ func New(ctx context.Context, cfg Config) (*Server, error) {
131132 cfg .Mux .Handle ("/static/" , http .FileServer (http .FS (staticFiles )))
132133 cfg .Mux .HandleFunc ("/api/list" , ret .list )
133134 cfg .Mux .HandleFunc ("/api/get" , ret .get )
135+ cfg .Mux .HandleFunc ("/api/get-all" , ret .getAll )
134136 cfg .Mux .HandleFunc ("/api/info" , ret .info )
135137 cfg .Mux .HandleFunc ("/api/put" , ret .put )
136138 cfg .Mux .HandleFunc ("/api/activate" , ret .activate )
@@ -221,6 +223,21 @@ func (s *Server) get(w http.ResponseWriter, r *http.Request) {
221223 })
222224}
223225
226+ func (s * Server ) getAll (w http.ResponseWriter , r * http.Request ) {
227+ serveJSON (s , w , r , func (req api.GetAllRequest , id db.Caller ) (* api.GetAllResponse , error ) {
228+ filtered , err := s .db .GetAllFiltered (id , req .Name , req .SkipVersions )
229+ if err != nil {
230+ return nil , err
231+ }
232+ slices .Sort (filtered .Versions )
233+ return & api.GetAllResponse {
234+ Active : filtered .Active ,
235+ Versions : filtered .Versions ,
236+ Values : filtered .Values ,
237+ }, nil
238+ })
239+ }
240+
224241func (s * Server ) info (w http.ResponseWriter , r * http.Request ) {
225242 serveJSON (s , w , r , func (req api.InfoRequest , id db.Caller ) (* api.SecretInfo , error ) {
226243 return s .db .Info (id , req .Name )
0 commit comments