github.com/mattermost/mattermost-server/server/v8@v8.0.0-20230610055354-a6d1d38b273d/platform/services/slackimport/parsers.go (about) 1 // Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved. 2 // See LICENSE.txt for license information. 3 4 package slackimport 5 6 import ( 7 "encoding/json" 8 "io" 9 10 "github.com/mattermost/mattermost-server/server/public/model" 11 "github.com/mattermost/mattermost-server/server/public/shared/mlog" 12 ) 13 14 func slackParseChannels(data io.Reader, channelType model.ChannelType) ([]slackChannel, error) { 15 decoder := json.NewDecoder(data) 16 17 var channels []slackChannel 18 if err := decoder.Decode(&channels); err != nil { 19 mlog.Warn("Slack Import: Error occurred when parsing some Slack channels. Import may work anyway.", mlog.Err(err)) 20 return channels, err 21 } 22 23 for i := range channels { 24 channels[i].Type = channelType 25 } 26 27 return channels, nil 28 } 29 30 func slackParseUsers(data io.Reader) ([]slackUser, error) { 31 decoder := json.NewDecoder(data) 32 33 var users []slackUser 34 err := decoder.Decode(&users) 35 // This actually returns errors that are ignored. 36 // In this case it is erroring because of a null that Slack 37 // introduced. So we just return the users here. 38 return users, err 39 } 40 41 func slackParsePosts(data io.Reader) ([]slackPost, error) { 42 decoder := json.NewDecoder(data) 43 44 var posts []slackPost 45 if err := decoder.Decode(&posts); err != nil { 46 mlog.Warn("Slack Import: Error occurred when parsing some Slack posts. Import may work anyway.", mlog.Err(err)) 47 return posts, err 48 } 49 return posts, nil 50 }