@@ -139,6 +139,8 @@ pub struct ApprovalInfo {
139139 pub approver : String ,
140140 /// The SHA of the commit that was approved.
141141 pub sha : String ,
142+ /// When the pull request was approved.
143+ pub approved_at : DateTime < Utc > ,
142144}
143145
144146/// Represents the approval status of a pull request.
@@ -150,23 +152,29 @@ pub enum ApprovalStatus {
150152
151153impl sqlx:: Type < sqlx:: Postgres > for ApprovalStatus {
152154 fn type_info ( ) -> sqlx:: postgres:: PgTypeInfo {
153- <( Option < String > , Option < String > ) as sqlx:: Type < sqlx:: Postgres > >:: type_info ( )
155+ <( Option < String > , Option < String > , Option < DateTime < Utc > > ) as sqlx:: Type < sqlx:: Postgres > >:: type_info ( )
154156 }
155157}
156158
157159impl < ' r > sqlx:: Decode < ' r , sqlx:: Postgres > for ApprovalStatus {
158160 fn decode ( value : sqlx:: postgres:: PgValueRef < ' r > ) -> Result < Self , BoxDynError > {
159- let ( approver, sha) =
160- <( Option < String > , Option < String > ) as sqlx:: Decode < sqlx:: Postgres > >:: decode ( value) ?;
161-
162- match ( approver, sha) {
163- ( Some ( approver) , Some ( sha) ) => {
164- Ok ( ApprovalStatus :: Approved ( ApprovalInfo { approver, sha } ) )
161+ let ( approver, sha, approved_at) =
162+ <( Option < String > , Option < String > , Option < DateTime < Utc > > ) as sqlx:: Decode <
163+ sqlx:: Postgres ,
164+ > >:: decode ( value) ?;
165+
166+ match ( approver, sha, approved_at) {
167+ ( Some ( approver) , Some ( sha) , Some ( approved_at) ) => {
168+ Ok ( ApprovalStatus :: Approved ( ApprovalInfo {
169+ approver,
170+ sha,
171+ approved_at,
172+ } ) )
165173 }
166- ( None , None ) => Ok ( ApprovalStatus :: NotApproved ) ,
167- ( approver, sha) => Err ( format ! (
168- "Inconsistent approval state: approver={:?}, sha={:?}" ,
169- approver, sha
174+ ( None , None , None ) => Ok ( ApprovalStatus :: NotApproved ) ,
175+ ( approver, sha, approved_at ) => Err ( format ! (
176+ "Inconsistent approval state: approver={:?}, sha={:?}, approved_at={:?} " ,
177+ approver, sha, approved_at
170178 )
171179 . into ( ) ) ,
172180 }
0 commit comments