func (r bot) rename(p *robots.Payload, cmd utils.Command) error { old := cmd.Arg(0) new := cmd.Arg(1) if new == "" || old == "" { r.handler.Send(p, "You need to provide the old and new name. Usage: `!project rename <old-name> <new-name>`") return nil } pr, err := db.GetProjectByName(old) if err != nil { return err } if pr == nil { r.handler.Send(p, "Project *"+old+"* not found.") return nil } pr.Name = new err = db.UpdateProject(*pr) if err != nil { return err } r.handler.Send(p, "Project *"+old+"* renamed to *"+new+"*") return nil }
func (r bot) setSprint(p *robots.Payload, cmd utils.Command) error { name := cmd.Arg(0) if name == "" { r.handler.Send(p, "Missing project name") return nil } id := cmd.Arg(1) if id == "" { r.handler.Send(p, "Missing mavenlink story id to assign as current sprint") return nil } ps, err := db.GetProjectByName(name) if err != nil { return err } mvn, err := mavenlink.NewFor(p.UserName) if err != nil { return err } mvnStory, err := mvn.GetStory(id) if err != nil { return err } if mvnStory == nil { r.handler.Send(p, "Story with id "+id+" wasn't found") return nil } fmt.Println("Got story", mvnStory.Id) ps.MvnSprintStoryId = mvnStory.Id if err := db.UpdateProject(*ps); err != nil { return err } r.handler.Send(p, "Project *"+name+"* updated.") return nil }
func (r bot) setChannel(p *robots.Payload, cmd utils.Command) error { name := cmd.Arg(0) if name == "" { r.handler.Send(p, "Missing project name") return nil } ps, err := db.GetProjectByName(name) if err != nil { return err } ps.Channel = p.ChannelName if err := db.UpdateProject(*ps); err != nil { return err } r.handler.Send(p, "Project *"+name+"* assigned to *"+ps.Channel+"* channel.") return nil }
func (r bot) addSprint(p *robots.Payload, cmd utils.Command) error { name := cmd.Arg(0) if name == "" { r.handler.Send(p, "Missing project name") return nil } ps, err := db.GetProjectByName(name) if err != nil { return err } mvn, err := mavenlink.NewFor(p.UserName) if err != nil { return err } sprintName := cmd.StrFrom(1) if sprintName == "" { sprintName = "Sprint 1" if ps.MvnSprintStoryId != "" { s, err := mvn.GetStory(ps.MvnSprintStoryId) if err != nil { return err } matched, err := regexp.MatchString(`Sprint [\d]+`, s.Title) if err != nil { return err } if matched { num, err := strconv.ParseInt(strings.Split(s.Title, " ")[1], 10, 64) if err != nil { return err } sprintName = fmt.Sprintf("Sprint %d", (num + 1)) } } } s := mavenlink.Story{ Title: sprintName, WorkspaceId: strconv.FormatInt(ps.MavenlinkId, 10), StoryType: "milestone", } ns, err := mvn.CreateStory(s) if err != nil { return err } fmt.Printf("%+v\n", ns) ps.MvnSprintStoryId = ns.Id err = db.UpdateProject(*ps) if err != nil { return err } s = *ns r.handler.Send(p, "Added new sprint to *"+ps.Name+"*: "+s.Id+" - "+s.Title) return nil }