fabric-samples/token-sdk/issuer/routes/routes.go
Arne Rutjes 99a1f49da0 add token sdk sample application
Signed-off-by: Arne Rutjes <arne123@gmail.com>
2023-10-10 09:00:23 -04:00

49 lines
1.1 KiB
Go

/*
Copyright IBM Corp. All Rights Reserved.
SPDX-License-Identifier: Apache-2.0
*/
package routes
import (
"context"
"fmt"
"github.com/hyperledger/fabric-samples/token-sdk/issuer/service"
)
type Controller struct {
Service service.TokenService
}
// Issue tokens to an account
// (POST /issue)
func (c Controller) Issue(ctx context.Context, request IssueRequestObject) (IssueResponseObject, error) {
code := request.Body.Amount.Code
value := uint64(request.Body.Amount.Value)
recipient := request.Body.Counterparty.Account
recipientNode := request.Body.Counterparty.Node
var message string
if request.Body.Message != nil {
message = *request.Body.Message
}
txID, err := c.Service.Issue(code, value, recipient, recipientNode, message)
if err != nil {
return IssuedefaultJSONResponse{
Body: Error{
Message: "can't issue tokens",
Payload: err.Error(),
},
StatusCode: 500,
}, nil
}
return Issue200JSONResponse{
IssueSuccessJSONResponse: IssueSuccessJSONResponse{
Message: fmt.Sprintf("issued %d %s to %s on %s", value, code, recipient, recipientNode),
Payload: txID,
},
}, nil
}