package user import ( database "cf-capital/module_server/handlers/connection" "context" "database/sql" "strings" log "github.com/rs/zerolog/log" ) type User struct { ID string `json:"user_id"` } func (manager User) DeleteUser() { //connection tx, ctx, db := database.Connect() log.Print("deleting") //deleteUser deleteUser(tx, ctx, manager.ID) database.Close(tx, db) } func deleteUser(tx *sql.Tx, ctx context.Context, UserID string) { log.Print("Deleting", UserID) //_, err := tx.ExecContext(ctx, "DELETE FROM users WHERE id = ?", UserID) // //if err != nil { // log.Println(err) // tx.Rollback() // return //} // //log.Println("Deleting pan_validation_logs ", UserID) //_, err = tx.ExecContext(ctx, "DELETE FROM pan_validation_logs WHERE user_id = ?", UserID) // //if err != nil { // log.Println(err) // tx.Rollback() // return //} rows, err := tx.Query("SELECT account_id FROM account where investor_id = ?", UserID) var accounts []int for rows.Next() { var accountId int err = rows.Scan(&accountId) if err != nil { log.Print(err.Error()) } accounts = append(accounts, accountId) } args := make([]interface{}, len(accounts)) for i, id := range accounts { args[i] = id } _, err = tx.ExecContext(ctx, "DELETE FROM account WHERE investor_id = ?", UserID) if err != nil { log.Error().Err(err).Msg(err.Error()) tx.Rollback() return } if len(args) > 0 { log.Print(args) _, err = tx.ExecContext(ctx, "DELETE FROM pass_book WHERE account_id in (?"+strings.Repeat(",?", len(args)-1)+")", args...) if err != nil { log.Error().Err(err).Msg(err.Error()) tx.Rollback() return } _, err = tx.ExecContext(ctx, "DELETE FROM transaction WHERE account_id in (?"+strings.Repeat(",?", len(args)-1)+")", args...) if err != nil { log.Error().Err(err).Msg(err.Error()) tx.Rollback() return } } /*_, err = tx.ExecContext(ctx, "DELETE FROM digital_sign_details WHERE user_id = ?", UserID) if err != nil { log.Error().Err(err).Msg(err.Error()) tx.Rollback() return } _, err = tx.ExecContext(ctx, "DELETE FROM documents WHERE user_id = ?", UserID) if err != nil { log.Error().Err(err).Msg(err.Error()) tx.Rollback() return } _, err = tx.ExecContext(ctx, "DELETE FROM bank_account WHERE investor_id = ?", UserID) if err != nil { log.Error().Err(err).Msg(err.Error()) tx.Rollback() return } _, err = tx.ExecContext(ctx, "DELETE FROM bank_validation_logs WHERE user_id = ?", UserID) if err != nil { log.Error().Err(err).Msg(err.Error()) tx.Rollback() return } _, err = tx.ExecContext(ctx, "DELETE FROM transaction_log WHERE user_id = ?", UserID) if err != nil { log.Error().Err(err).Msg(err.Error()) tx.Rollback() return }*/ }