@@ -77,38 +77,35 @@ impl DataStore {
7777 . authorize ( authz:: Action :: Read , & authz:: TARGET_RELEASE_CONFIG )
7878 . await ?;
7979 let conn = self . pool_connection_authorized ( opctx) . await ?;
80- Ok ( views:: TargetRelease {
81- generation : ( & target_release. generation . 0 ) . into ( ) ,
82- time_requested : target_release. time_requested ,
83- release_source : match target_release. release_source {
84- TargetReleaseSource :: Unspecified => {
85- views:: TargetReleaseSource :: Unspecified
80+ let release_source = match target_release. release_source {
81+ TargetReleaseSource :: Unspecified => {
82+ views:: TargetReleaseSource :: Unspecified
83+ }
84+ TargetReleaseSource :: SystemVersion => {
85+ use crate :: db:: schema:: tuf_repo;
86+ if let Some ( tuf_repo_id) = target_release. tuf_repo_id {
87+ views:: TargetReleaseSource :: SystemVersion (
88+ tuf_repo:: table
89+ . select ( tuf_repo:: system_version)
90+ . filter ( tuf_repo:: id. eq ( tuf_repo_id) )
91+ . first_async :: < SemverVersion > ( & * conn)
92+ . await
93+ . map_err ( |e| {
94+ public_error_from_diesel (
95+ e,
96+ ErrorHandler :: Server ,
97+ )
98+ } ) ?
99+ . into ( ) ,
100+ )
101+ } else {
102+ return Err ( Error :: invalid_request (
103+ "missing TUF repo ID for specified system version" ,
104+ ) ) ;
86105 }
87- TargetReleaseSource :: SystemVersion => {
88- use crate :: db:: schema:: tuf_repo;
89- if let Some ( tuf_repo_id) = target_release. tuf_repo_id {
90- views:: TargetReleaseSource :: SystemVersion (
91- tuf_repo:: table
92- . select ( tuf_repo:: system_version)
93- . filter ( tuf_repo:: id. eq ( tuf_repo_id) )
94- . first_async :: < SemverVersion > ( & * conn)
95- . await
96- . map_err ( |e| {
97- public_error_from_diesel (
98- e,
99- ErrorHandler :: Server ,
100- )
101- } ) ?
102- . into ( ) ,
103- )
104- } else {
105- return Err ( Error :: invalid_request (
106- "missing TUF repo ID for specified system version" ,
107- ) ) ;
108- }
109- }
110- } ,
111- } )
106+ }
107+ } ;
108+ Ok ( target_release. into_external ( release_source) )
112109 }
113110}
114111
0 commit comments