本文整理汇总了Golang中github.com/gistia/slackbot/utils.Command.ParseArgs方法的典型用法代码示例。如果您正苦于以下问题:Golang Command.ParseArgs方法的具体用法?Golang Command.ParseArgs怎么用?Golang Command.ParseArgs使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类github.com/gistia/slackbot/utils.Command
的用法示例。
在下文中一共展示了Command.ParseArgs方法的8个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Golang代码示例。
示例1: addTime
func (r bot) addTime(p *robots.Payload, cmd utils.Command) error {
args, err := cmd.ParseArgs("mavenlink-id", "time-in-hours")
if err != nil {
return err
}
mvnID, timeStr := args[0], args[1]
hours, err := strconv.ParseFloat(timeStr, 64)
if err != nil {
return err
}
mvn, err := mavenlink.NewFor(p.UserName)
if err != nil {
return err
}
story, err := mvn.GetStory(mvnID)
if err != nil {
return err
}
minutes := int(hours * 60)
_, err = mvn.AddTimeEntry(story, minutes)
if err != nil {
return err
}
r.handler.Send(p, fmt.Sprintf("Added *%.1f* hours to story *%s - %s*",
hours, story.Id, story.Title))
return nil
}
示例2: estimate
func (r bot) estimate(p *robots.Payload, cmd utils.Command) error {
args, err := cmd.ParseArgs("pivotal-id", "estimate")
if err != nil {
return err
}
pvtId, estimate := args[0], args[1]
pvt, err := pivotal.NewFor(p.UserName)
if err != nil {
return err
}
// pvtStory, err := pvt.GetStory(pvtId)
// if err != nil {
// return err
// }
//
numEstimate, err := strconv.Atoi(estimate)
if err != nil {
return err
}
story, err := pvt.EstimateStory(pvtId, numEstimate)
if err != nil {
return err
}
s := "Story successfully updated:\n"
r.handler.SendWithAttachments(p, s, []robots.Attachment{
utils.FmtAttachment("", story.Name, story.Url, ""),
})
return nil
}
示例3: assign
func (r bot) assign(p *robots.Payload, cmd utils.Command) error {
res, err := cmd.ParseArgs("pivotal-story-id", "username")
if err != nil {
return err
}
storyId, username := res[0], res[1]
pvt, err := pivotal.NewFor(p.UserName)
if err != nil {
return err
}
user, err := db.GetUserByName(username)
if err != nil {
return err
}
if user == nil {
return errors.New("User *" + username + "* not found")
}
story, err := pvt.AssignStory(storyId, *user.PivotalId)
if err != nil {
return err
}
s := "Story successfully updated:\n"
r.handler.SendWithAttachments(p, s, []robots.Attachment{
utils.FmtAttachment("", story.Name, story.Url, ""),
})
return nil
}
示例4: unassigned
func (r bot) unassigned(p *robots.Payload, cmd utils.Command) error {
res, err := cmd.ParseArgs("project")
if err != nil {
return err
}
name := res[0]
pr, err := getProject(name)
if err != nil {
return err
}
pvt, err := pivotal.NewFor(p.UserName)
if err != nil {
return err
}
msg := "Unassigned stories for *" + name + "*:\n"
stories, err := pvt.GetUnassignedStories(pr.StrPivotalId())
if len(stories) < 1 {
r.handler.Send(p, "No unassigned stories for *"+name+"*")
return nil
}
for _, s := range stories {
msg += fmt.Sprintf("%d - %s\n", s.Id, s.Name)
}
r.handler.Send(p, msg)
return nil
}
示例5: vote
func (r bot) vote(p *robots.Payload, cmd utils.Command) error {
args, err := cmd.ParseArgs("vote")
if err != nil {
return err
}
vote := args[0]
session, err := db.GetCurrentSession(p.ChannelName)
if err != nil {
return err
}
if session == nil {
r.handler.Send(p, "No active poker session on *"+p.ChannelName+"*. Use `/poker session` to start a new session.")
return nil
}
story, err := session.GetCurrentStory()
if err != nil {
return err
}
if story == nil {
r.handler.Send(p, "No current story on *"+p.ChannelName+"*. Use `/poker story` to start a new session.")
return nil
}
err = story.CastVote(p.UserName, vote)
if err != nil {
return err
}
r.handler.Send(p, "Vote cast for *"+p.UserName+"*")
users := session.Users
if users != "" {
expUsers := strings.Split(users, ",")
votes, err := story.GetVotes()
if err != nil {
return err
}
for _, v := range votes {
expUsers = utils.RemoveFromSlice(expUsers, v.User)
}
if len(expUsers) < 1 {
r.handler.Send(p, "Everyone voted, revealing votes.")
r.revealVotes(p, cmd)
r.handler.Send(p, "Now set the estimate for this story with `!poker set <estimate>`")
}
}
return nil
}
示例6: sendMyStories
func (r bot) sendMyStories(p *robots.Payload, cmd utils.Command) error {
args, err := cmd.ParseArgs("pvt-project-id")
if err != nil {
return err
}
project := args[0]
pvt, err := conn(p.UserName)
if err != nil {
return err
}
user, err := db.GetUserByName(p.UserName)
if err != nil {
return err
}
filter := map[string]string{
"owned_by": user.StrPivotalId(),
"state": "started,finished,delivered",
}
stories, err := pvt.FilteredStories(project, filter)
if err != nil {
return err
}
if len(stories) < 1 {
r.handler.Send(p, "No open stories for *"+p.UserName+"*")
return nil
}
str := "Current stories for *" + p.UserName + "*:\n"
atts := []robots.Attachment{}
for _, s := range stories {
fallback := fmt.Sprintf("%d - %s - %s\n", s.Id, s.Name, s.State)
title := fmt.Sprintf("%d - %s\n", s.Id, s.Name)
a := utils.FmtAttachment(fallback, title, s.Url, s.State)
atts = append(atts, a)
}
r.handler.SendWithAttachments(p, str, atts)
return nil
}
示例7: setEstimation
func (r bot) setEstimation(p *robots.Payload, cmd utils.Command) error {
args, err := cmd.ParseArgs("estimation")
if err != nil {
return err
}
estimation := args[0]
session, err := db.GetCurrentSession(p.ChannelName)
if err != nil {
return err
}
if session == nil {
r.handler.Send(p, "No active poker session on *"+p.ChannelName+"*. Use `/poker session` to start a new session.")
return nil
}
story, err := session.GetCurrentStory()
if err != nil {
return err
}
if story == nil {
r.handler.Send(p, "No current story on *"+p.ChannelName+"*. Use `/poker story` to start a new session.")
return nil
}
err = story.UpdateEstimation(estimation)
if err != nil {
return err
}
r.handler.Send(p, "Tracked estimation of *"+estimation+"* hours for *"+story.Title+"*")
story, err = session.GetCurrentStory()
if err != nil {
return err
}
if story != nil {
r.nextStory(p, cmd)
}
return nil
}
示例8: set
func (r bot) set(p *robots.Payload, cmd utils.Command) error {
args, err := cmd.ParseArgs("start-date", "end-date")
if err != nil {
return err
}
start, end := args[0], args[1]
desc := cmd.StrFrom(2)
startDate, err := time.Parse("2006-01-02", start)
if err != nil {
return err
}
endDate, err := time.Parse("2006-01-02", end)
if err != nil {
return err
}
_, err = db.CreateVacation(p.UserName, desc, &startDate, &endDate)
r.handler.Send(p, "Vacation created")
return nil
}