github.com/adacta-ru/mattermost-server/v6@v6.0.0/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/adacta-ru/mattermost-server/v6/mlog"
    11  )
    12  
    13  func slackParseChannels(data io.Reader, channelType string) ([]slackChannel, error) {
    14  	decoder := json.NewDecoder(data)
    15  
    16  	var channels []slackChannel
    17  	if err := decoder.Decode(&channels); err != nil {
    18  		mlog.Warn("Slack Import: Error occurred when parsing some Slack channels. Import may work anyway.")
    19  		return channels, err
    20  	}
    21  
    22  	for i := range channels {
    23  		channels[i].Type = channelType
    24  	}
    25  
    26  	return channels, nil
    27  }
    28  
    29  func slackParseUsers(data io.Reader) ([]slackUser, error) {
    30  	decoder := json.NewDecoder(data)
    31  
    32  	var users []slackUser
    33  	err := decoder.Decode(&users)
    34  	// This actually returns errors that are ignored.
    35  	// In this case it is erroring because of a null that Slack
    36  	// introduced. So we just return the users here.
    37  	return users, err
    38  }
    39  
    40  func slackParsePosts(data io.Reader) ([]slackPost, error) {
    41  	decoder := json.NewDecoder(data)
    42  
    43  	var posts []slackPost
    44  	if err := decoder.Decode(&posts); err != nil {
    45  		mlog.Warn("Slack Import: Error occurred when parsing some Slack posts. Import may work anyway.")
    46  		return posts, err
    47  	}
    48  	return posts, nil
    49  }