github.com/status-im/status-go@v1.1.0/protocol/discord/assets.go (about)

     1  package discord
     2  
     3  import (
     4  	"io/ioutil"
     5  	"net/http"
     6  	"time"
     7  
     8  	"github.com/ethereum/go-ethereum/log"
     9  	"github.com/status-im/status-go/images"
    10  )
    11  
    12  func DownloadAvatarAsset(url string) ([]byte, error) {
    13  	imgs, err := images.GenerateIdentityImagesFromURL(url)
    14  	if err != nil {
    15  		return nil, err
    16  	}
    17  	payload := imgs[0].Payload
    18  	return payload, nil
    19  }
    20  
    21  func DownloadAsset(url string) ([]byte, string, error) {
    22  	client := http.Client{Timeout: time.Minute}
    23  	res, err := client.Get(url)
    24  	if err != nil {
    25  		return nil, "", err
    26  	}
    27  	defer func() {
    28  		if err := res.Body.Close(); err != nil {
    29  			log.Error("failed to close message asset http request body", "err", err)
    30  		}
    31  	}()
    32  
    33  	contentType := res.Header.Get("Content-Type")
    34  	bodyBytes, err := ioutil.ReadAll(res.Body)
    35  	return bodyBytes, contentType, err
    36  }