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  }