[MM-48031] Work template read API (#21661)
Этот коммит содержится в:
@@ -8557,3 +8557,34 @@ func (c *Client4) AddUserToGroupSyncables(userID string) (*Response, error) {
|
||||
defer closeBody(r)
|
||||
return BuildResponse(r), nil
|
||||
}
|
||||
|
||||
// Worktemplates sections
|
||||
|
||||
func (c *Client4) worktemplatesRoute() string {
|
||||
return "/worktemplates"
|
||||
}
|
||||
|
||||
// GetWorktemplateCategories returns categories of worktemplates
|
||||
func (c *Client4) GetWorktemplateCategories() ([]*WorkTemplateCategory, *Response, error) {
|
||||
r, err := c.DoAPIGet(c.worktemplatesRoute()+"/categories", "")
|
||||
if err != nil {
|
||||
return nil, BuildResponse(r), err
|
||||
}
|
||||
defer closeBody(r)
|
||||
|
||||
var categories []*WorkTemplateCategory
|
||||
err = json.NewDecoder(r.Body).Decode(&categories)
|
||||
return categories, BuildResponse(r), err
|
||||
}
|
||||
|
||||
func (c *Client4) GetWorkTemplatesByCategory(category string) ([]*WorkTemplate, *Response, error) {
|
||||
r, err := c.DoAPIGet(c.worktemplatesRoute()+"/categories/"+category+"/templates", "")
|
||||
if err != nil {
|
||||
return nil, BuildResponse(r), err
|
||||
}
|
||||
defer closeBody(r)
|
||||
|
||||
var templates []*WorkTemplate
|
||||
err = json.NewDecoder(r.Body).Decode(&templates)
|
||||
return templates, BuildResponse(r), err
|
||||
}
|
||||
|
||||
71
model/worktemplate.go
Обычный файл
71
model/worktemplate.go
Обычный файл
@@ -0,0 +1,71 @@
|
||||
// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.
|
||||
// See LICENSE.txt for license information.
|
||||
|
||||
package model
|
||||
|
||||
type WorkTemplateCategory struct {
|
||||
ID string `json:"id"`
|
||||
Name string `json:"name"`
|
||||
}
|
||||
|
||||
type WorkTemplate struct {
|
||||
ID string `json:"id"`
|
||||
Category string `json:"category"`
|
||||
UseCase string `json:"useCase"`
|
||||
Illustration string `json:"illustration"`
|
||||
Visibility string `json:"visibility"`
|
||||
FeatureFlag *WorkTemplateFeatureFlag `json:"featureFlag,omitempty"`
|
||||
Description Description `json:"description"`
|
||||
Content []WorkTemplateContent `json:"content"`
|
||||
}
|
||||
|
||||
type WorkTemplateFeatureFlag struct {
|
||||
Name string `json:"name"`
|
||||
Value string `json:"value"`
|
||||
}
|
||||
|
||||
type DescriptionContent struct {
|
||||
Message string `json:"message"`
|
||||
Illustration string `json:"illustration"`
|
||||
}
|
||||
|
||||
type Description struct {
|
||||
Channel *DescriptionContent `json:"channel"`
|
||||
Board *DescriptionContent `json:"board"`
|
||||
Playbook *DescriptionContent `json:"playbook"`
|
||||
Integration *DescriptionContent `json:"integration"`
|
||||
}
|
||||
|
||||
type WorkTemplateChannel struct {
|
||||
ID string `json:"id"`
|
||||
Name string `json:"name"`
|
||||
Purpose string `json:"purpose"`
|
||||
Playbook string `json:"playbook"`
|
||||
Illustration string `json:"illustration"`
|
||||
}
|
||||
|
||||
type WorkTemplateBoard struct {
|
||||
ID string `json:"id"`
|
||||
Template string `json:"template"`
|
||||
Name string `json:"name"`
|
||||
Channel string `json:"channel"`
|
||||
Illustration string `json:"illustration"`
|
||||
}
|
||||
|
||||
type WorkTemplatePlaybook struct {
|
||||
Template string `json:"template"`
|
||||
Name string `json:"name"`
|
||||
ID string `json:"id"`
|
||||
Illustration string `json:"illustration"`
|
||||
}
|
||||
|
||||
type WorkTemplateIntegration struct {
|
||||
ID string `json:"id"`
|
||||
}
|
||||
|
||||
type WorkTemplateContent struct {
|
||||
Channel *WorkTemplateChannel `json:"channel,omitempty"`
|
||||
Board *WorkTemplateBoard `json:"board,omitempty"`
|
||||
Playbook *WorkTemplatePlaybook `json:"playbook,omitempty"`
|
||||
Integration *WorkTemplateIntegration `json:"integration,omitempty"`
|
||||
}
|
||||
Ссылка в новой задаче
Block a user