github.com/NpoolPlatform/chain-middleware@v0.0.0-20240228100535-eb1bcf896eb9/pkg/mw/coin/usedfor/delete.go (about)

     1  package coinusedfor
     2  
     3  import (
     4  	"context"
     5  	"time"
     6  
     7  	coinusedforcrud "github.com/NpoolPlatform/chain-middleware/pkg/crud/coin/usedfor"
     8  	npool "github.com/NpoolPlatform/message/npool/chain/mw/v1/coin/usedfor"
     9  
    10  	"github.com/NpoolPlatform/chain-middleware/pkg/db"
    11  	"github.com/NpoolPlatform/chain-middleware/pkg/db/ent"
    12  )
    13  
    14  func (h *Handler) DeleteCoinUsedFor(ctx context.Context) (*npool.CoinUsedFor, error) {
    15  	info, err := h.GetCoinUsedFor(ctx)
    16  	if err != nil {
    17  		return nil, err
    18  	}
    19  	if info == nil {
    20  		return nil, nil
    21  	}
    22  
    23  	err = db.WithClient(ctx, func(_ctx context.Context, cli *ent.Client) error {
    24  		now := uint32(time.Now().Unix())
    25  		if _, err := coinusedforcrud.UpdateSet(
    26  			cli.CoinUsedFor.UpdateOneID(info.ID),
    27  			&coinusedforcrud.Req{
    28  				DeletedAt: &now,
    29  			},
    30  		).Save(_ctx); err != nil {
    31  			return err
    32  		}
    33  		return nil
    34  	})
    35  	if err != nil {
    36  		return nil, err
    37  	}
    38  
    39  	return info, nil
    40  }