77# SPDX-License-Identifier: MIT
88# -------------------------------------------------------------------------------
99
10- """Python interface to the SW360 platform"""
10+ """Python interface to the Siemens SW360 platform"""
1111
1212import json
1313import os
@@ -413,18 +413,13 @@ def create_new_project(self, name, project_type, visibility,
413413 :rtype: JSON SW360 result object
414414 :raises SW360Error: if there is a negative HTTP response
415415 """
416- hdr = self .api_headers .copy ()
417- hdr ["Content-Type" ] = "application/hal+json"
418- hdr ["Accept" ] = "application/hal+json"
419-
420416 for param in "name" , "visibility" , "version" , "description" :
421417 project_details [param ] = locals ()[param ]
422418 project_details ["projectType" ] = project_type
423419
424- project_json = json .dumps (project_details )
425420 url = self .url + "resource/api/projects"
426421 response = requests .post (
427- url , project_json , headers = hdr
422+ url , json = project_details , headers = self . api_headers
428423 )
429424
430425 if response .ok :
@@ -446,15 +441,8 @@ def update_project(self, project, project_id):
446441 :raises SW360Error: if there is a negative HTTP response
447442 """
448443 # 2019-04-03: error 405 - method not allowed
449- hdr = self .api_headers .copy ()
450- hdr ["Content-Type" ] = "application/hal+json"
451- hdr ["Accept" ] = "application/hal+json"
452-
453- project_json = json .dumps (project )
454444 url = self .url + "resource/api/projects/" + project_id
455- response = requests .patch (
456- url , project_json , headers = hdr
457- )
445+ response = requests .patch (url , json = project , headers = self .api_headers )
458446
459447 if response .ok :
460448 return response .json ()
@@ -484,21 +472,15 @@ def update_project_releases(self, releases, project_id, add=False):
484472
485473 if add :
486474 old_releases = self .get_project_releases (project_id )
487- if old_releases is not None :
475+ if (old_releases is not None and "_embedded" in old_releases
476+ and "sw360:releases" in old_releases ["_embedded" ]):
488477 old_releases = old_releases ["_embedded" ]["sw360:releases" ]
489478 old_releases = [r ["_links" ]["self" ]["href" ] for r in old_releases ]
490479 old_releases = [r .split ("/" )[- 1 ] for r in old_releases ]
491480 releases = old_releases + list (releases )
492481
493- hdr = self .api_headers .copy ()
494- hdr ["Content-Type" ] = "application/hal+json"
495- hdr ["Accept" ] = "application/hal+json"
496- project_json = json .dumps (releases )
497-
498482 url = self .url + "resource/api/projects/" + project_id + "/releases"
499- response = requests .post (
500- url , project_json , headers = hdr ,
501- )
483+ response = requests .post (url , json = releases , headers = self .api_headers )
502484
503485 if response .ok :
504486 return True
@@ -670,18 +652,13 @@ def create_new_release(self, name, version, component_id, release_details={}):
670652 :raises SW360Error: if there is a negative HTTP response
671653 """
672654
673- hdr = self .api_headers .copy ()
674- hdr ["Content-Type" ] = "application/hal+json"
675- hdr ["Accept" ] = "application/hal+json"
676-
677655 for param in "name" , "version" :
678656 release_details [param ] = locals ()[param ]
679657 release_details ["componentId" ] = component_id
680658
681- release_json = json .dumps (release_details )
682659 url = self .url + "resource/api/releases"
683660 response = requests .post (
684- url , release_json , headers = hdr
661+ url , json = release_details , headers = self . api_headers
685662 )
686663 if response .ok :
687664 return response .json ()
@@ -705,15 +682,8 @@ def update_release(self, release, release_id):
705682 if not release_id :
706683 raise SW360Error (message = "No release id provided!" )
707684
708- hdr = self .api_headers .copy ()
709- hdr ["Content-Type" ] = "application/hal+json"
710- hdr ["Accept" ] = "application/hal+json"
711-
712- release_json = json .dumps (release )
713685 url = self .url + "resource/api/releases/" + release_id
714- response = requests .patch (
715- url , release_json , headers = hdr
716- )
686+ response = requests .patch (url , json = release , headers = self .api_headers )
717687 if response .ok :
718688 return response .json ()
719689
@@ -930,20 +900,14 @@ def create_new_component(self, name, description, component_type, homepage,
930900 :raises SW360Error: if there is a negative HTTP response
931901 """
932902
933- hdr = self .api_headers .copy ()
934- hdr ["Content-Type" ] = "application/hal+json"
935- hdr ["Accept" ] = "application/hal+json"
936-
937903 url = self .url + "resource/api/components"
938904
939905 for param in "name" , "description" , "homepage" :
940906 component_details [param ] = locals ()[param ]
941907 component_details ["componentType" ] = component_type
942908
943- component_json = json .dumps (component_details )
944-
945909 response = requests .post (
946- url , component_json , headers = hdr
910+ url , json = component_details , headers = self . api_headers
947911 )
948912 if response .ok :
949913 return response .json ()
@@ -967,14 +931,9 @@ def update_component(self, component, component_id):
967931 if not component_id :
968932 raise SW360Error (message = "No component id provided!" )
969933
970- hdr = self .api_headers .copy ()
971- hdr ["Content-Type" ] = "application/hal+json"
972- hdr ["Accept" ] = "application/hal+json"
973-
974- component_json = json .dumps (component )
975934 url = self .url + "resource/api/components/" + component_id
976935 response = requests .patch (
977- url , component_json , headers = hdr ,
936+ url , json = component , headers = self . api_headers ,
978937 )
979938
980939 if response .ok :
@@ -1079,14 +1038,9 @@ def create_new_vendor(self, vendor):
10791038 :raises SW360Error: if there is a negative HTTP response
10801039 """
10811040
1082- hdr = self .api_headers .copy ()
1083- hdr ["Content-Type" ] = "application/hal+json"
1084- hdr ["Accept" ] = "application/hal+json"
1085-
1086- vendor_json = json .dumps (vendor )
10871041 url = self .url + "resource/api/vendors"
10881042 response = requests .post (
1089- url , vendor_json , headers = hdr
1043+ url , json = vendor , headers = self . api_headers
10901044 )
10911045 if response .ok :
10921046 return response .json ()
@@ -1108,10 +1062,9 @@ def update_vendor(self, vendor, vendor_id):
11081062 if not vendor_id :
11091063 raise SW360Error (message = "No vendor id provided!" )
11101064
1111- vendor_json = json .dumps (vendor )
11121065 url = self .url + "resource/api/vendors/" + vendor_id
11131066 response = requests .patch (
1114- url , vendor_json , headers = self .api_headers
1067+ url , json = vendor , headers = self .api_headers
11151068 )
11161069 if response .ok :
11171070 return response .json ()
0 commit comments