Skip to content

Commit

Permalink
satellite/admin: setup payment account for user
Browse files Browse the repository at this point in the history
Currently a customer created via the IP does not get an payment account until he signs in.
That causes issues if the account should be deleted again.

Change-Id: I393c8f301e426301bb713c423d6ce011138d4ae4
  • Loading branch information
stefanbenten committed Jul 16, 2020
1 parent 080ba47 commit 0534b91
Show file tree
Hide file tree
Showing 3 changed files with 14 additions and 7 deletions.
2 changes: 1 addition & 1 deletion satellite/admin.go
Expand Up @@ -153,7 +153,7 @@ func NewAdmin(log *zap.Logger, full *identity.FullIdentity, db DB,
adminConfig := config.Admin
adminConfig.AuthorizationToken = config.Console.AuthToken

peer.Admin.Server = admin.NewServer(log.Named("admin"), peer.Admin.Listener, peer.DB, peer.Payments.Accounts.Invoices(), adminConfig)
peer.Admin.Server = admin.NewServer(log.Named("admin"), peer.Admin.Listener, peer.DB, peer.Payments.Accounts, adminConfig)
peer.Servers.Add(lifecycle.Item{
Name: "admin",
Run: peer.Admin.Server.Run,
Expand Down
8 changes: 4 additions & 4 deletions satellite/admin/server.go
Expand Up @@ -51,19 +51,19 @@ type Server struct {
mux *mux.Router

db DB
invoices payments.Invoices
payments payments.Accounts
}

// NewServer returns a new debug.Server.
func NewServer(log *zap.Logger, listener net.Listener, db DB, invoices payments.Invoices, config Config) *Server {
func NewServer(log *zap.Logger, listener net.Listener, db DB, accounts payments.Accounts, config Config) *Server {
server := &Server{
log: log,
log: log,

listener: listener,
mux: mux.NewRouter(),

db: db,
invoices: invoices,
payments: accounts,
}

server.server.Handler = &protectedServer{
Expand Down
11 changes: 9 additions & 2 deletions satellite/admin/user.go
Expand Up @@ -80,6 +80,13 @@ func (server *Server) addUser(w http.ResponseWriter, r *http.Request) {
http.Error(w, fmt.Sprintf("failed to insert user: %v", err), http.StatusInternalServerError)
return
}

err = server.payments.Setup(ctx, newuser.ID, newuser.Email)
if err != nil {
http.Error(w, fmt.Sprintf("failed to create payment account for user: %v", err), http.StatusInternalServerError)
return
}

//Set User Status to be activated, as we manually created it
newuser.Status = console.Active
newuser.PasswordHash = nil
Expand Down Expand Up @@ -280,7 +287,7 @@ func (server *Server) deleteUser(w http.ResponseWriter, r *http.Request) {
}

// ensure no unpaid invoices exist.
invoices, err := server.invoices.List(ctx, user.ID)
invoices, err := server.payments.Invoices().List(ctx, user.ID)
if err != nil {
http.Error(w, fmt.Sprintf("unable to list user invoices: %v", err), http.StatusInternalServerError)
return
Expand All @@ -294,7 +301,7 @@ func (server *Server) deleteUser(w http.ResponseWriter, r *http.Request) {
}
}

hasItems, err := server.invoices.CheckPendingItems(ctx, user.ID)
hasItems, err := server.payments.Invoices().CheckPendingItems(ctx, user.ID)
if err != nil {
http.Error(w, fmt.Sprintf("unable to list pending invoice items: %v", err), http.StatusInternalServerError)
return
Expand Down

0 comments on commit 0534b91

Please sign in to comment.