7 log "github.com/sirupsen/logrus"
9 "github.com/bytom/blockchain/txfeed"
12 // POST /create-txfeed
13 func (a *API) createTxFeed(ctx context.Context, in struct {
14 Alias string `json:"alias"`
15 Filter string `json:"filter"`
17 if err := a.bcr.TxFeedTracker.Create(ctx, in.Alias, in.Filter); err != nil {
18 log.WithField("error", err).Error("Add TxFeed Failed")
19 return NewErrorResponse(err)
21 return NewSuccessResponse(nil)
24 // POST /get-transaction-feed
25 func (a *API) getTxFeed(ctx context.Context, in struct {
26 Alias string `json:"alias,omitempty"`
28 var tmpTxFeed interface{}
29 rawTxfeed, err := a.bcr.GetTxFeedByAlias(ctx, in.Alias)
31 return NewErrorResponse(err)
33 err = json.Unmarshal(rawTxfeed, &tmpTxFeed)
35 return NewErrorResponse(err)
37 data := map[string]interface{}{"txfeed": tmpTxFeed}
38 return NewSuccessResponse(data)
41 // POST /delete-transaction-feed
42 func (a *API) deleteTxFeed(ctx context.Context, in struct {
43 Alias string `json:"alias,omitempty"`
45 if err := a.bcr.TxFeedTracker.Delete(ctx, in.Alias); err != nil {
46 return NewErrorResponse(err)
48 return NewSuccessResponse(nil)
51 // POST /update-transaction-feed
52 func (a *API) updateTxFeed(ctx context.Context, in struct {
53 Alias string `json:"alias"`
54 Filter string `json:"filter"`
56 if err := a.bcr.TxFeedTracker.Delete(ctx, in.Alias); err != nil {
57 return NewErrorResponse(err)
59 if err := a.bcr.TxFeedTracker.Create(ctx, in.Alias, in.Filter); err != nil {
60 log.WithField("error", err).Error("Update TxFeed Failed")
61 return NewErrorResponse(err)
63 return NewSuccessResponse(nil)
66 func (a *API) getTxFeeds() ([]txfeed.TxFeed, error) {
67 txFeed := txfeed.TxFeed{}
68 txFeeds := make([]txfeed.TxFeed, 0)
70 iter := a.bcr.TxFeedTracker.DB.Iterator()
74 if err := json.Unmarshal(iter.Value(), &txFeed); err != nil {
77 txFeeds = append(txFeeds, txFeed)
83 // listTxFeeds is an http handler for listing txfeeds. It does not take a filter.
84 // POST /list-transaction-feeds
85 func (a *API) listTxFeeds(ctx context.Context) Response {
86 txFeeds, err := a.getTxFeeds()
88 return NewErrorResponse(err)
91 return NewSuccessResponse(txFeeds)