func invalidateAllCaches(c *Context, w http.ResponseWriter, r *http.Request) { debug.FreeOSMemory() app.InvalidateAllCaches() if einterfaces.GetClusterInterface() != nil { err := einterfaces.GetClusterInterface().InvalidateAllCaches() if err != nil { c.Err = err return } } w.Header().Set("Cache-Control", "no-cache, no-store, must-revalidate") ReturnStatusOK(w) }
func SlackImport(fileData multipart.File, fileSize int64, teamID string) (*model.AppError, *bytes.Buffer) { // Create log file log := bytes.NewBufferString(utils.T("api.slackimport.slack_import.log")) zipreader, err := zip.NewReader(fileData, fileSize) if err != nil || zipreader.File == nil { log.WriteString(utils.T("api.slackimport.slack_import.zip.app_error")) return model.NewLocAppError("SlackImport", "api.slackimport.slack_import.zip.app_error", nil, err.Error()), log } var channels []SlackChannel var users []SlackUser posts := make(map[string][]SlackPost) uploads := make(map[string]*zip.File) for _, file := range zipreader.File { reader, err := file.Open() if err != nil { log.WriteString(utils.T("api.slackimport.slack_import.open.app_error", map[string]interface{}{"Filename": file.Name})) return model.NewLocAppError("SlackImport", "api.slackimport.slack_import.open.app_error", map[string]interface{}{"Filename": file.Name}, err.Error()), log } if file.Name == "channels.json" { channels, _ = SlackParseChannels(reader) } else if file.Name == "users.json" { users, _ = SlackParseUsers(reader) } else { spl := strings.Split(file.Name, "/") if len(spl) == 2 && strings.HasSuffix(spl[1], ".json") { newposts, _ := SlackParsePosts(reader) channel := spl[0] if _, ok := posts[channel]; ok == false { posts[channel] = newposts } else { posts[channel] = append(posts[channel], newposts...) } } else if len(spl) == 3 && spl[0] == "__uploads" { uploads[spl[1]] = file } } } posts = SlackConvertUserMentions(users, posts) posts = SlackConvertChannelMentions(channels, posts) posts = SlackConvertPostsMarkup(posts) addedUsers := SlackAddUsers(teamID, users, log) botUser := SlackAddBotUser(teamID, log) SlackAddChannels(teamID, channels, posts, addedUsers, uploads, botUser, log) if botUser != nil { deactivateSlackBotUser(botUser) } app.InvalidateAllCaches() log.WriteString(utils.T("api.slackimport.slack_import.notes")) log.WriteString("=======\r\n\r\n") log.WriteString(utils.T("api.slackimport.slack_import.note1")) log.WriteString(utils.T("api.slackimport.slack_import.note2")) log.WriteString(utils.T("api.slackimport.slack_import.note3")) return nil, log }