github.com/machinefi/w3bstream@v1.6.5-rc9.0.20240426031326-b8c7c4876e72/cmd/srv-applet-mgr/apis/projectoperator/pos.go (about) 1 package projectoperator 2 3 import ( 4 "context" 5 6 "github.com/machinefi/w3bstream/cmd/srv-applet-mgr/apis/middleware" 7 "github.com/machinefi/w3bstream/pkg/depends/kit/httptransport/httpx" 8 "github.com/machinefi/w3bstream/pkg/modules/projectoperator" 9 "github.com/machinefi/w3bstream/pkg/types" 10 ) 11 12 type CreateProjectOperator struct { 13 httpx.MethodPost 14 ProjectID types.SFID `in:"path" name:"projectID"` 15 OperatorID types.SFID `in:"path" name:"operatorID"` 16 } 17 18 func (r *CreateProjectOperator) Path() string { return "/:projectID/:operatorID" } 19 20 func (r *CreateProjectOperator) Output(ctx context.Context) (interface{}, error) { 21 ctx, err := middleware.MustCurrentAccountFromContext(ctx). 22 WithOperatorBySFID(ctx, r.OperatorID) 23 if err != nil { 24 return nil, err 25 } 26 ctx, err = middleware.MustCurrentAccountFromContext(ctx). 27 WithProjectContextBySFID(ctx, r.ProjectID) 28 if err != nil { 29 return nil, err 30 } 31 32 return projectoperator.Create(ctx, r.ProjectID, r.OperatorID) 33 }