@@ -13,20 +13,20 @@ use parser::command::concern::ConcernCommand;
13
13
14
14
const CONCERN_ISSUE_KEY : & str = "CONCERN-ISSUE" ;
15
15
16
- #[ derive( Debug , PartialEq , Eq , Default , serde:: Serialize , serde:: Deserialize ) ]
16
+ #[ derive( Debug , PartialEq , Eq , Default , Clone , serde:: Serialize , serde:: Deserialize ) ]
17
17
struct ConcernData {
18
18
concerns : Vec < Concern > ,
19
19
}
20
20
21
- #[ derive( Debug , PartialEq , Eq , serde:: Serialize , serde:: Deserialize ) ]
21
+ #[ derive( Debug , PartialEq , Eq , Clone , serde:: Serialize , serde:: Deserialize ) ]
22
22
struct Concern {
23
23
title : String ,
24
24
author : String ,
25
25
comment_url : String ,
26
26
status : ConcernStatus ,
27
27
}
28
28
29
- #[ derive( Debug , PartialEq , Eq , serde:: Serialize , serde:: Deserialize ) ]
29
+ #[ derive( Debug , PartialEq , Eq , Clone , serde:: Serialize , serde:: Deserialize ) ]
30
30
enum ConcernStatus {
31
31
Active ,
32
32
Resolved { comment_url : String } ,
@@ -84,8 +84,10 @@ pub(super) async fn handle_command(
84
84
return Ok ( ( ) ) ;
85
85
}
86
86
87
- let edit = EditIssueBody :: new ( & issue, CONCERN_ISSUE_KEY ) ;
88
- let mut concern_data: ConcernData = edit. current_data ( ) . unwrap_or_default ( ) ;
87
+ let mut client = ctx. db . get ( ) . await ;
88
+ let mut edit: EditIssueBody < ' _ , ConcernData > =
89
+ EditIssueBody :: load ( & mut client, & issue, CONCERN_ISSUE_KEY ) . await ?;
90
+ let concern_data = edit. data_mut ( ) ;
89
91
90
92
// Process the command by either adding a new comment or "deactivating" the old one
91
93
match cmd {
@@ -142,7 +144,7 @@ pub(super) async fn handle_command(
142
144
}
143
145
144
146
// Apply the new markdown concerns list to the issue
145
- edit. apply ( & ctx. github , new_content, concern_data )
147
+ edit. apply ( & ctx. github , new_content)
146
148
. await
147
149
. context ( "failed to apply the new concerns section markdown" ) ?;
148
150
0 commit comments