Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- func (s *ContractService) ParseMetadataFromUri(
- uri string,
- ) (StandardMetadata, error) {
- var metadata StandardMetadata
- if utils.IsURL(uri) {
- resp, err := http.Get(uri)
- if err != nil {
- return metadata, err
- }
- body, err := ioutil.ReadAll(resp.Body)
- defer func() {
- _ = resp.Body.Close()
- }()
- if err != nil {
- return metadata, err
- }
- err = json.Unmarshal(body, &metadata)
- if err != nil {
- return metadata, err
- }
- } else {
- cid := ""
- if utils.IsIPFS(uri) {
- cidRegex := regexp.MustCompile(utils.CIDRegex)
- cid = cidRegex.FindString(uri)
- } else {
- cid = uri
- }
- url := fmt.Sprintf("%s/ipfs/%s", "https://gateway.pinata.cloud", cid)
- resp, err := http.Get(url)
- if err != nil {
- return metadata, err
- }
- body, err := ioutil.ReadAll(resp.Body)
- defer func() {
- _ = resp.Body.Close()
- }()
- if err != nil {
- return metadata, err
- }
- err = json.Unmarshal(body, &metadata)
- if err != nil {
- return metadata, err
- }
- }
- return metadata, nil
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement