Skip to content

Commit

Permalink
create group endpoint
Browse files Browse the repository at this point in the history
  • Loading branch information
shanev committed Jun 16, 2019
1 parent e4083d5 commit 9287679
Show file tree
Hide file tree
Showing 2 changed files with 49 additions and 2 deletions.
2 changes: 0 additions & 2 deletions x/group/handler.go
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,6 @@ func handleMsgCreateGroup(ctx sdk.Context, keeper Keeper, msg MsgCreateGroup) sd
}
}


func handleMsgCreateProposal(ctx sdk.Context, keeper Keeper, msg MsgCreateProposal) sdk.Result {
id, res := keeper.Propose(ctx, msg.Proposer, msg.Group, msg.Msgs)
if res.Code != sdk.CodeOK {
Expand Down Expand Up @@ -73,4 +72,3 @@ func handleMsgUpdateGroup(ctx sdk.Context, keeper Keeper, msg MsgUpdateGroup) sd
keeper.UpdateGroupInfo(ctx, msg.GroupID, msg.Data)
return sdk.Result{}
}

49 changes: 49 additions & 0 deletions x/group/rest.go
Original file line number Diff line number Diff line change
Expand Up @@ -7,13 +7,62 @@ import (
"github.com/gorilla/mux"

"github.com/cosmos/cosmos-sdk/client/context"
clientrest "github.com/cosmos/cosmos-sdk/client/rest"
sdk "github.com/cosmos/cosmos-sdk/types"
"github.com/cosmos/cosmos-sdk/types/rest"
)

// RegisterRoutes registers staking-related REST handlers to a router
func RegisterRoutes(cliCtx context.CLIContext, r *mux.Router) {
registerQueryRoutes(cliCtx, r)
registerTxRoutes(cliCtx, r)
}

func registerTxRoutes(cliCtx context.CLIContext, r *mux.Router) {
// Withdraw all delegator rewards
r.HandleFunc(
"/group/create",
createdGroupHandlerFn(cliCtx),
).Methods("POST")
}

type createGroupReq struct {
BaseReq rest.BaseReq `json:"base_req"`
Members []string `json:"members"`
}

func createdGroupHandlerFn(cliCtx context.CLIContext) http.HandlerFunc {
return func(w http.ResponseWriter, r *http.Request) {
var req createGroupReq

if !rest.ReadRESTReq(w, r, cliCtx.Codec, &req) {
return
}

req.BaseReq = req.BaseReq.Sanitize()
if !req.BaseReq.ValidateBasic(w) {
return
}

var members []Member
for _, memberStr := range req.Members {
memberAddr, _ := sdk.AccAddressFromBech32(memberStr)
member := Member{
Address: memberAddr,
Weight: sdk.NewInt(10),
}
members = append(members, member)
}

signer := cliCtx.GetFromAddress()
info := Group{
Members: members,
DecisionThreshold: sdk.NewInt(10),
}
msg := NewMsgCreateGroup(info, signer)

clientrest.WriteGenerateStdTxResponse(w, cliCtx, req.BaseReq, []sdk.Msg{msg})
}
}

func registerQueryRoutes(cliCtx context.CLIContext, r *mux.Router) {
Expand Down

0 comments on commit 9287679

Please sign in to comment.