[MM-48031] Work template read API (#21661)

Этот коммит содержится в:
Julien Tant
2022-11-29 14:53:03 -07:00
коммит произвёл GitHub
родитель a240cd53eb
Коммит 3e928f57fb
20 изменённых файлов: 1356 добавлений и 1 удалений

Просмотреть файл

@@ -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 Обычный файл
Просмотреть файл

@@ -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"`
}