Implement POST /channels endpoint for APIv4 (#5241)
Этот коммит содержится в:
коммит произвёл
GitHub
родитель
2ac4f36587
Коммит
609d4f43d9
@@ -6,7 +6,6 @@ package api
|
||||
import (
|
||||
"net/http"
|
||||
"strconv"
|
||||
"strings"
|
||||
|
||||
l4g "github.com/alecthomas/log4go"
|
||||
"github.com/gorilla/mux"
|
||||
@@ -48,9 +47,7 @@ func InitChannel() {
|
||||
}
|
||||
|
||||
func createChannel(c *Context, w http.ResponseWriter, r *http.Request) {
|
||||
|
||||
channel := model.ChannelFromJson(r.Body)
|
||||
|
||||
if channel == nil {
|
||||
c.SetInvalidParam("createChannel", "channel")
|
||||
return
|
||||
@@ -60,16 +57,6 @@ func createChannel(c *Context, w http.ResponseWriter, r *http.Request) {
|
||||
channel.TeamId = c.TeamId
|
||||
}
|
||||
|
||||
if channel.Type == model.CHANNEL_DIRECT {
|
||||
c.Err = model.NewLocAppError("createDirectChannel", "api.channel.create_channel.direct_channel.app_error", nil, "")
|
||||
return
|
||||
}
|
||||
|
||||
if strings.Index(channel.Name, "__") > 0 {
|
||||
c.Err = model.NewLocAppError("createDirectChannel", "api.channel.create_channel.invalid_character.app_error", nil, "")
|
||||
return
|
||||
}
|
||||
|
||||
if channel.Type == model.CHANNEL_OPEN && !app.SessionHasPermissionToTeam(c.Session, channel.TeamId, model.PERMISSION_CREATE_PUBLIC_CHANNEL) {
|
||||
c.SetPermissionError(model.PERMISSION_CREATE_PUBLIC_CHANNEL)
|
||||
return
|
||||
@@ -80,23 +67,7 @@ func createChannel(c *Context, w http.ResponseWriter, r *http.Request) {
|
||||
return
|
||||
}
|
||||
|
||||
if channel.TeamId == c.TeamId {
|
||||
|
||||
// Get total number of channels on current team
|
||||
if count, err := app.GetNumberOfChannelsOnTeam(channel.TeamId); err != nil {
|
||||
c.Err = model.NewLocAppError("createChannel", "api.channel.get_channels.error", nil, err.Error())
|
||||
return
|
||||
} else {
|
||||
if int64(count+1) > *utils.Cfg.TeamSettings.MaxChannelsPerTeam {
|
||||
c.Err = model.NewLocAppError("createChannel", "api.channel.create_channel.max_channel_limit.app_error", map[string]interface{}{"MaxChannelsPerTeam": *utils.Cfg.TeamSettings.MaxChannelsPerTeam}, "")
|
||||
return
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
channel.CreatorId = c.Session.UserId
|
||||
|
||||
if sc, err := app.CreateChannel(channel, true); err != nil {
|
||||
if sc, err := app.CreateChannelWithUser(channel, c.Session.UserId); err != nil {
|
||||
c.Err = err
|
||||
return
|
||||
} else {
|
||||
|
||||
@@ -55,7 +55,7 @@ func TestCreateChannel(t *testing.T) {
|
||||
|
||||
rchannel.Data.(*model.Channel).Id = ""
|
||||
if _, err := Client.CreateChannel(rchannel.Data.(*model.Channel)); err != nil {
|
||||
if err.Message != "A channel with that URL already exists" {
|
||||
if err.Id != "store.sql_channel.save_channel.exists.app_error" {
|
||||
t.Fatal(err)
|
||||
}
|
||||
}
|
||||
@@ -1768,7 +1768,9 @@ func TestAutocompleteChannels(t *testing.T) {
|
||||
channel2 = Client.Must(Client.CreateChannel(channel2)).Data.(*model.Channel)
|
||||
|
||||
channel3 := &model.Channel{DisplayName: "BadChannelC", Name: "c" + model.NewId() + "a", Type: model.CHANNEL_OPEN, TeamId: model.NewId()}
|
||||
channel3 = th.SystemAdminClient.Must(th.SystemAdminClient.CreateChannel(channel3)).Data.(*model.Channel)
|
||||
if _, err := th.SystemAdminClient.CreateChannel(channel3); err == nil {
|
||||
t.Fatal("channel must have valid team id")
|
||||
}
|
||||
|
||||
channel4 := &model.Channel{DisplayName: "BadChannelD", Name: "d" + model.NewId() + "a", Type: model.CHANNEL_PRIVATE, TeamId: team.Id}
|
||||
channel4 = Client.Must(Client.CreateChannel(channel4)).Data.(*model.Channel)
|
||||
|
||||
Ссылка в новой задаче
Block a user