Skip to content

Commit

Permalink
burn api
Browse files Browse the repository at this point in the history
  • Loading branch information
jekabolt committed Jun 29, 2022
1 parent 45889cd commit e8ee999
Show file tree
Hide file tree
Showing 11 changed files with 1,938 additions and 71 deletions.
51 changes: 51 additions & 0 deletions art-admin/app/nft/nft.go
Original file line number Diff line number Diff line change
Expand Up @@ -167,6 +167,57 @@ func (s *Server) UploadOffchainMetadata(ctx context.Context, _ *emptypb.Empty) (
}, nil
}

func (s *Server) Burn(ctx context.Context, req *pb_nft.BurnRequest) (*emptypb.Empty, error) {
err := s.db.BurnNft(req)
if err != nil {
log.Error().Err(err).Msgf("Burn:s.db.BurnNft [%v]", err.Error())
return nil, fmt.Errorf("cannot submit burn data: %s", err.Error())
}
return nil, err
}

func (s *Server) GetAllBurned(ctx context.Context, _ *emptypb.Empty) (*pb_nft.BurnList, error) {
all, err := s.db.GetBurned()
if err != nil {
log.Error().Err(err).Msgf("GetAllBurned:s.db.BurnNft [%v]", err.Error())
return nil, fmt.Errorf("cannot get burn data: %s", err.Error())
}
return &pb_nft.BurnList{
Data: all,
}, nil
}

func (s *Server) GetAllBurnedPending(ctx context.Context, _ *emptypb.Empty) (*pb_nft.BurnList, error) {
pending, err := s.db.GetBurnedPending()
if err != nil {
log.Error().Err(err).Msgf("GetAllBurned:s.db.BurnNft [%v]", err.Error())
return nil, fmt.Errorf("cannot get burn data: %s", err.Error())
}
return &pb_nft.BurnList{
Data: pending,
}, nil
}

func (s *Server) GetAllBurnedError(ctx context.Context, _ *emptypb.Empty) (*pb_nft.BurnList, error) {
errors, err := s.db.GetBurnedErrors()
if err != nil {
log.Error().Err(err).Msgf("GetAllBurned:s.db.BurnNft [%v]", err.Error())
return nil, fmt.Errorf("cannot get burn data: %s", err.Error())
}
return &pb_nft.BurnList{
Data: errors,
}, nil
}

func (s *Server) UpdateBurnShippingStatus(ctx context.Context, req *pb_nft.ShippingStatusUpdateRequest) (*emptypb.Empty, error) {
err := s.db.UpdateShippingStatus(req)
if err != nil {
log.Error().Err(err).Msgf("GetAllBurned:s.db.BurnNft [%v]", err.Error())
return nil, fmt.Errorf("cannot update shipping status: %s", err.Error())
}
return nil, err
}

// TODO: get metadata from
func (s *Server) UploadIPFSMetadata(ctx context.Context, _ *emptypb.Empty) (*emptypb.Empty, error) {
return nil, nil
Expand Down
2 changes: 1 addition & 1 deletion art-admin/app/static/swagger/api.swagger.json
Original file line number Diff line number Diff line change
@@ -1 +1 @@
{"swagger":"2.0","basePath":"","info":{"title":"","version":"1.0.0","description":""},"schemes":null,"consumes":["application/json"],"produces":["application/json"],"paths":{"/api/auth/login":{"post":{"operationId":"Login","parameters":[{"in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/authLoginRequest"}}],"responses":{"200":{"description":"A successful response.","schema":{"$ref":"#/definitions/authLoginResponse"}},"default":{"description":"An unexpected error response.","schema":{"$ref":"#/definitions/rpcStatus"}}},"tags":["Auth"]}},"/api/nft":{"post":{"operationId":"UpdateNFTOffchainUrl","parameters":[{"in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/nftUpdateNFTOffchainUrlRequest"}}],"responses":{"200":{"description":"A successful response.","schema":{"$ref":"#/definitions/nftNFTMintRequestWithStatus"}},"default":{"description":"An unexpected error response.","schema":{"$ref":"#/definitions/rpcStatus"}}},"tags":["Nft"]}},"/api/nft/ipfs":{"post":{"operationId":"UploadIPFSMetadata","parameters":[{"in":"body","name":"body","required":true,"schema":{"properties":{}}}],"responses":{"200":{"description":"A successful response.","schema":{"properties":{}}},"default":{"description":"An unexpected error response.","schema":{"$ref":"#/definitions/rpcStatus"}}},"summary":"TODO: add rpc for getting metadata offchain url","tags":["Nft"]}},"/api/nft/offchain":{"post":{"operationId":"UploadOffchainMetadata","parameters":[{"in":"body","name":"body","required":true,"schema":{"properties":{}}}],"responses":{"200":{"description":"A successful response.","schema":{"$ref":"#/definitions/nftMetadataOffchainUrl"}},"default":{"description":"An unexpected error response.","schema":{"$ref":"#/definitions/rpcStatus"}}},"tags":["Nft"]}},"/api/nft/requests":{"get":{"operationId":"ListNFTMintRequests","responses":{"200":{"description":"A successful response.","schema":{"$ref":"#/definitions/nftNFTMintRequestListArray"}},"default":{"description":"An unexpected error response.","schema":{"$ref":"#/definitions/rpcStatus"}}},"tags":["Nft"]},"post":{"operationId":"UpsertNFTMintRequest","parameters":[{"in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/nftNFTMintRequestToUpload"}}],"responses":{"200":{"description":"A successful response.","schema":{"$ref":"#/definitions/nftNFTMintRequestWithStatus"}},"default":{"description":"An unexpected error response.","schema":{"$ref":"#/definitions/rpcStatus"}}},"tags":["Nft"]}},"/api/nft/requests/{id}":{"delete":{"operationId":"DeleteNFTMintRequestById","parameters":[{"in":"path","name":"id","required":true,"type":"string"}],"responses":{"200":{"description":"A successful response.","schema":{"$ref":"#/definitions/nftDeleteStatus"}},"default":{"description":"An unexpected error response.","schema":{"$ref":"#/definitions/rpcStatus"}}},"tags":["Nft"]}},"/api/nft/{id}":{"delete":{"operationId":"DeleteNFOffchainUrl","parameters":[{"in":"path","name":"id","required":true,"type":"string"}],"responses":{"200":{"description":"A successful response.","schema":{"$ref":"#/definitions/nftNFTMintRequestWithStatus"}},"default":{"description":"An unexpected error response.","schema":{"$ref":"#/definitions/rpcStatus"}}},"tags":["Nft"]}}},"definitions":{"authLoginRequest":{"properties":{"password":{"type":"string"}},"type":"object"},"authLoginResponse":{"properties":{"authToken":{"type":"string"}},"type":"object"},"nftDeleteStatus":{"properties":{"message":{"type":"string"}},"type":"object"},"nftImageList":{"description":"image","properties":{"compressed":{"type":"string"},"fullSize":{"type":"string"}},"type":"object"},"nftImageToUpload":{"properties":{"raw":{"type":"string"}},"type":"object"},"nftMetadataOffchainUrl":{"description":"Upload offchain metadata _metadata.json","properties":{"Url":{"type":"string"}},"type":"object"},"nftNFTMintRequest":{"properties":{"TxHash":{"type":"string"},"description":{"type":"string"},"ethAddress":{"type":"string"},"id":{"format":"int64","type":"string"},"mintSequenceNumber":{"format":"int64","type":"string"}},"type":"object"},"nftNFTMintRequestListArray":{"properties":{"nftMintRequests":{"items":{"$ref":"#/definitions/nftNFTMintRequestWithStatus"},"type":"array"}},"type":"object"},"nftNFTMintRequestToUpload":{"properties":{"nftMintRequest":{"$ref":"#/definitions/nftNFTMintRequest"},"sampleImages":{"items":{"$ref":"#/definitions/nftImageToUpload"},"type":"array"}},"type":"object"},"nftNFTMintRequestWithStatus":{"properties":{"nftMintRequest":{"$ref":"#/definitions/nftNFTMintRequest"},"nftOffchainUrl":{"type":"string"},"sampleImages":{"items":{"$ref":"#/definitions/nftImageList"},"type":"array"},"status":{"type":"string"}},"type":"object"},"nftUpdateNFTOffchainUrlRequest":{"description":"Update NFT offchain url","properties":{"id":{"type":"string"},"nftOffchainUrl":{"type":"string"}},"type":"object"},"protobufAny":{"additionalProperties":{},"properties":{"@type":{"type":"string"}},"type":"object"},"rpcStatus":{"properties":{"code":{"format":"int32","type":"integer"},"details":{"items":{"$ref":"#/definitions/protobufAny"},"type":"array"},"message":{"type":"string"}},"type":"object"}}}
{"swagger":"2.0","basePath":"","info":{"title":"","version":"1.0.0","description":""},"schemes":null,"consumes":["application/json"],"produces":["application/json"],"paths":{"/api/auth/login":{"post":{"operationId":"Login","parameters":[{"in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/authLoginRequest"}}],"responses":{"200":{"description":"A successful response.","schema":{"$ref":"#/definitions/authLoginResponse"}},"default":{"description":"An unexpected error response.","schema":{"$ref":"#/definitions/rpcStatus"}}},"tags":["Auth"]}},"/api/nft":{"post":{"operationId":"UpdateNFTOffchainUrl","parameters":[{"in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/nftUpdateNFTOffchainUrlRequest"}}],"responses":{"200":{"description":"A successful response.","schema":{"$ref":"#/definitions/nftNFTMintRequestWithStatus"}},"default":{"description":"An unexpected error response.","schema":{"$ref":"#/definitions/rpcStatus"}}},"tags":["Nft"]}},"/api/nft/burn":{"get":{"operationId":"GetAllBurned","responses":{"200":{"description":"A successful response.","schema":{"$ref":"#/definitions/nftBurnList"}},"default":{"description":"An unexpected error response.","schema":{"$ref":"#/definitions/rpcStatus"}}},"tags":["Nft"]},"post":{"operationId":"Burn","parameters":[{"in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/nftBurnRequest"}}],"responses":{"200":{"description":"A successful response.","schema":{"properties":{}}},"default":{"description":"An unexpected error response.","schema":{"$ref":"#/definitions/rpcStatus"}}},"tags":["Nft"]}},"/api/nft/burn/error":{"get":{"operationId":"GetAllBurnedError","responses":{"200":{"description":"A successful response.","schema":{"$ref":"#/definitions/nftBurnList"}},"default":{"description":"An unexpected error response.","schema":{"$ref":"#/definitions/rpcStatus"}}},"tags":["Nft"]}},"/api/nft/burn/pending":{"get":{"operationId":"GetAllBurnedPending","responses":{"200":{"description":"A successful response.","schema":{"$ref":"#/definitions/nftBurnList"}},"default":{"description":"An unexpected error response.","schema":{"$ref":"#/definitions/rpcStatus"}}},"tags":["Nft"]}},"/api/nft/ipfs":{"post":{"operationId":"UploadIPFSMetadata","parameters":[{"in":"body","name":"body","required":true,"schema":{"properties":{}}}],"responses":{"200":{"description":"A successful response.","schema":{"properties":{}}},"default":{"description":"An unexpected error response.","schema":{"$ref":"#/definitions/rpcStatus"}}},"summary":"TODO: add rpc for getting metadata offchain url","tags":["Nft"]}},"/api/nft/offchain":{"post":{"operationId":"UploadOffchainMetadata","parameters":[{"in":"body","name":"body","required":true,"schema":{"properties":{}}}],"responses":{"200":{"description":"A successful response.","schema":{"$ref":"#/definitions/nftMetadataOffchainUrl"}},"default":{"description":"An unexpected error response.","schema":{"$ref":"#/definitions/rpcStatus"}}},"tags":["Nft"]}},"/api/nft/requests":{"get":{"operationId":"ListNFTMintRequests","responses":{"200":{"description":"A successful response.","schema":{"$ref":"#/definitions/nftNFTMintRequestListArray"}},"default":{"description":"An unexpected error response.","schema":{"$ref":"#/definitions/rpcStatus"}}},"tags":["Nft"]},"post":{"operationId":"UpsertNFTMintRequest","parameters":[{"in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/nftNFTMintRequestToUpload"}}],"responses":{"200":{"description":"A successful response.","schema":{"$ref":"#/definitions/nftNFTMintRequestWithStatus"}},"default":{"description":"An unexpected error response.","schema":{"$ref":"#/definitions/rpcStatus"}}},"tags":["Nft"]}},"/api/nft/requests/{id}":{"delete":{"operationId":"DeleteNFTMintRequestById","parameters":[{"in":"path","name":"id","required":true,"type":"string"}],"responses":{"200":{"description":"A successful response.","schema":{"$ref":"#/definitions/nftDeleteStatus"}},"default":{"description":"An unexpected error response.","schema":{"$ref":"#/definitions/rpcStatus"}}},"tags":["Nft"]}},"/api/nft/shipping/status":{"post":{"operationId":"UpdateBurnShippingStatus","parameters":[{"in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/nftShippingStatusUpdateRequest"}}],"responses":{"200":{"description":"A successful response.","schema":{"properties":{}}},"default":{"description":"An unexpected error response.","schema":{"$ref":"#/definitions/rpcStatus"}}},"tags":["Nft"]}},"/api/nft/{id}":{"delete":{"operationId":"DeleteNFOffchainUrl","parameters":[{"in":"path","name":"id","required":true,"type":"string"}],"responses":{"200":{"description":"A successful response.","schema":{"$ref":"#/definitions/nftNFTMintRequestWithStatus"}},"default":{"description":"An unexpected error response.","schema":{"$ref":"#/definitions/rpcStatus"}}},"tags":["Nft"]}}},"definitions":{"authLoginRequest":{"properties":{"password":{"type":"string"}},"type":"object"},"authLoginResponse":{"properties":{"authToken":{"type":"string"}},"type":"object"},"nftBurnList":{"properties":{"data":{"items":{"$ref":"#/definitions/nftBurnShippingInfo"},"type":"array"}},"type":"object"},"nftBurnRequest":{"description":"Burn","properties":{"address":{"type":"string"},"mintSequenceNumber":{"format":"int64","type":"string"},"shipping":{"$ref":"#/definitions/nftShippingTo"},"txid":{"type":"string"}},"type":"object"},"nftBurnShippingInfo":{"properties":{"burn":{"$ref":"#/definitions/nftBurnRequest"},"id":{"format":"int64","type":"string"},"status":{"$ref":"#/definitions/nftShippingStatus"}},"type":"object"},"nftDeleteStatus":{"properties":{"message":{"type":"string"}},"type":"object"},"nftImageList":{"description":"image","properties":{"compressed":{"type":"string"},"fullSize":{"type":"string"}},"type":"object"},"nftImageToUpload":{"properties":{"raw":{"type":"string"}},"type":"object"},"nftMetadataOffchainUrl":{"description":"Upload offchain metadata _metadata.json","properties":{"Url":{"type":"string"}},"type":"object"},"nftNFTMintRequest":{"properties":{"TxHash":{"type":"string"},"description":{"type":"string"},"ethAddress":{"type":"string"},"id":{"format":"int64","type":"string"},"mintSequenceNumber":{"format":"int64","type":"string"}},"type":"object"},"nftNFTMintRequestListArray":{"properties":{"nftMintRequests":{"items":{"$ref":"#/definitions/nftNFTMintRequestWithStatus"},"type":"array"}},"type":"object"},"nftNFTMintRequestToUpload":{"properties":{"nftMintRequest":{"$ref":"#/definitions/nftNFTMintRequest"},"sampleImages":{"items":{"$ref":"#/definitions/nftImageToUpload"},"type":"array"}},"type":"object"},"nftNFTMintRequestWithStatus":{"properties":{"nftMintRequest":{"$ref":"#/definitions/nftNFTMintRequest"},"nftOffchainUrl":{"type":"string"},"sampleImages":{"items":{"$ref":"#/definitions/nftImageList"},"type":"array"},"status":{"type":"string"}},"type":"object"},"nftShippingStatus":{"properties":{"error":{"type":"string"},"success":{"type":"boolean"},"timeSent":{"format":"int64","type":"string"},"trackNumber":{"type":"string"}},"type":"object"},"nftShippingStatusUpdateRequest":{"properties":{"id":{"type":"string"},"status":{"$ref":"#/definitions/nftShippingStatus"}},"type":"object"},"nftShippingTo":{"properties":{"address":{"type":"string"},"city":{"type":"string"},"country":{"type":"string"},"email":{"type":"string"},"fullName":{"type":"string"},"zipCode":{"type":"string"}},"type":"object"},"nftUpdateNFTOffchainUrlRequest":{"description":"Update NFT offchain url","properties":{"id":{"type":"string"},"nftOffchainUrl":{"type":"string"}},"type":"object"},"protobufAny":{"additionalProperties":{},"properties":{"@type":{"type":"string"}},"type":"object"},"rpcStatus":{"properties":{"code":{"format":"int32","type":"integer"},"details":{"items":{"$ref":"#/definitions/protobufAny"},"type":"array"},"message":{"type":"string"}},"type":"object"}}}
Loading

0 comments on commit e8ee999

Please sign in to comment.