Advertisement
viettiennguyen029

21/01

Jan 20th, 2022
1,187
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. func (s *ContractService) ParseMetadataFromUri(
  2.     uri string,
  3. ) (StandardMetadata, error) {
  4.  
  5.     var metadata StandardMetadata
  6.     if utils.IsURL(uri) {
  7.         resp, err := http.Get(uri)
  8.         if err != nil {
  9.             return metadata, err
  10.         }
  11.  
  12.         body, err := ioutil.ReadAll(resp.Body)
  13.         defer func() {
  14.             _ = resp.Body.Close()
  15.         }()
  16.         if err != nil {
  17.             return metadata, err
  18.         }
  19.  
  20.         err = json.Unmarshal(body, &metadata)
  21.         if err != nil {
  22.             return metadata, err
  23.         }
  24.     } else {
  25.         cid := ""
  26.         if utils.IsIPFS(uri) {
  27.             cidRegex := regexp.MustCompile(utils.CIDRegex)
  28.             cid = cidRegex.FindString(uri)
  29.         } else {
  30.             cid = uri
  31.         }
  32.  
  33.         url := fmt.Sprintf("%s/ipfs/%s", "https://gateway.pinata.cloud", cid)
  34.  
  35.         resp, err := http.Get(url)
  36.         if err != nil {
  37.             return metadata, err
  38.         }
  39.  
  40.         body, err := ioutil.ReadAll(resp.Body)
  41.         defer func() {
  42.             _ = resp.Body.Close()
  43.         }()
  44.         if err != nil {
  45.             return metadata, err
  46.         }
  47.  
  48.         err = json.Unmarshal(body, &metadata)
  49.         if err != nil {
  50.             return metadata, err
  51.         }
  52.     }
  53.  
  54.     return metadata, nil
  55. }
Advertisement
Advertisement
Advertisement
RAW Paste Data Copied
Advertisement