func AssetMarshaller()

in internal/gitlab/asset_marshaller.go [15:47]


func AssetMarshaller(assetLink []string) (*Assets, error) {
	assets := &Assets{
		Links: []*Link{},
	}

	if len(assetLink) == 0 {
		return assets, nil
	}

	var result *multierror.Error

	for _, asset := range assetLink {
		dec := json.NewDecoder(strings.NewReader(asset))
		t, _ := dec.Token()

		var err error

		switch t {
		case json.Delim('['):
			err = processMultipleAssets(asset, assets)
		case json.Delim('{'):
			err = processSingleAsset(asset, assets)
		default:
			err = fmt.Errorf("invalid delimiter for asset: %q", asset)
		}

		if err != nil {
			result = multierror.Append(result, err)
		}
	}

	return assets, result.ErrorOrNil()
}