func ProvidersNewItem()

in providers/vfeed/schema/providers.go [112:149]


func ProvidersNewItem(item *ProvidersItem) (*nvd.NVDCVEFeedJSON10DefCVEItem, error) {
	if err := item.validate(); err != nil {
		return nil, fmt.Errorf("validation error: %v", err)
	}

	return &nvd.NVDCVEFeedJSON10DefCVEItem{
		CVE: &nvd.CVEJSON40{
			CVEDataMeta: &nvd.CVEJSON40CVEDataMeta{
				ID:       item.ID,
				ASSIGNER: item.Vendor,
			},
			DataFormat:  providersDataFormat,
			DataType:    providersDataType,
			DataVersion: providersDataVersion,
			Description: &nvd.CVEJSON40Description{
				DescriptionData: []*nvd.CVEJSON40LangString{
					{
						Lang:  providersDataLang,
						Value: item.Description,
					},
				},
			},
			Problemtype: item.problemType(),
			References:  item.references(),
		},
		Configurations: item.Configuration.convertToNVD(),
		Impact: &nvd.NVDCVEFeedJSON10DefImpact{
			BaseMetricV2: &nvd.NVDCVEFeedJSON10DefImpactBaseMetricV2{
				CVSSV2: item.cvssV20(),
			},
			BaseMetricV3: &nvd.NVDCVEFeedJSON10DefImpactBaseMetricV3{
				CVSSV3: item.cvssV30(),
			},
		},
		LastModifiedDate: providersConvertTime(item.LastModifiedDate),
		PublishedDate:    providersConvertTime(item.PublishedDate),
	}, nil
}