Skip to content

Commit 34cb645

Browse files
committed
.
1 parent d676f4a commit 34cb645

File tree

14 files changed

+157
-113
lines changed

14 files changed

+157
-113
lines changed

.actrc

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
-P ubuntu-latest=rust:latest
2+
--container-architecture linux/amd64

shared/src/sync_engine/changes.rs

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -474,10 +474,10 @@ where
474474
Some(existing) => existing.with_merged(issue)?,
475475
None => issue,
476476
};
477-
issue_store.no_optimism_put(&merged).await?;
477+
issue_store.put(&merged).await?;
478478
}
479479
ExistingOrDeleted::Deleted(id) => {
480-
issue_store.no_optimism_delete(&id).await?;
480+
issue_store.delete(&id).await?;
481481
}
482482
}
483483
}
@@ -504,10 +504,10 @@ where
504504
Some(existing) => existing.with_merged(issue_comment)?,
505505
None => issue_comment,
506506
};
507-
issue_comment_store.no_optimism_put(&merged).await?;
507+
issue_comment_store.put(&merged).await?;
508508
}
509509
ExistingOrDeleted::Deleted(id) => {
510-
issue_comment_store.no_optimism_delete(&id).await?;
510+
issue_comment_store.delete(&id).await?;
511511
}
512512
}
513513
}
@@ -531,10 +531,10 @@ where
531531
Some(existing) => existing.with_merged(github_app)?,
532532
None => github_app,
533533
};
534-
github_app_store.no_optimism_put(&merged).await?;
534+
github_app_store.put(&merged).await?;
535535
}
536536
ExistingOrDeleted::Deleted(id) => {
537-
github_app_store.no_optimism_delete(&id).await?;
537+
github_app_store.delete(&id).await?;
538538
}
539539
}
540540
}
@@ -558,10 +558,10 @@ where
558558
Some(existing) => existing.with_merged(user)?,
559559
None => user,
560560
};
561-
user_store.no_optimism_put(&merged).await?;
561+
user_store.put(&merged).await?;
562562
}
563563
ExistingOrDeleted::Deleted(id) => {
564-
user_store.no_optimism_delete(&id).await?;
564+
user_store.delete(&id).await?;
565565
}
566566
}
567567
}
@@ -586,10 +586,10 @@ where
586586
Some(existing) => existing.with_merged(license)?,
587587
None => license,
588588
};
589-
license_store.no_optimism_put(&merged).await?;
589+
license_store.put(&merged).await?;
590590
}
591591
ExistingOrDeleted::Deleted(id) => {
592-
license_store.no_optimism_delete(&id).await?;
592+
license_store.delete(&id).await?;
593593
}
594594
}
595595
}
@@ -614,10 +614,10 @@ where
614614
Some(existing) => existing.with_merged(milestone)?,
615615
None => milestone,
616616
};
617-
milestone_store.no_optimism_put(&merged).await?;
617+
milestone_store.put(&merged).await?;
618618
}
619619
ExistingOrDeleted::Deleted(id) => {
620-
milestone_store.no_optimism_delete(&id).await?;
620+
milestone_store.delete(&id).await?;
621621
}
622622
}
623623
}
@@ -642,10 +642,10 @@ where
642642
Some(existing) => existing.with_merged(repository)?,
643643
None => repository,
644644
};
645-
repository_store.no_optimism_put(&merged).await?;
645+
repository_store.put(&merged).await?;
646646
}
647647
ExistingOrDeleted::Deleted(id) => {
648-
repository_store.no_optimism_delete(&id).await?;
648+
repository_store.delete(&id).await?;
649649
}
650650
}
651651
}
@@ -665,10 +665,10 @@ where
665665
for (_, label) in labels {
666666
match label {
667667
ExistingOrDeleted::Existing(label) => {
668-
label_store.no_optimism_put(&label).await?;
668+
label_store.put(&label).await?;
669669
}
670670
ExistingOrDeleted::Deleted(id) => {
671-
label_store.no_optimism_delete(&id).await?;
671+
label_store.delete(&id).await?;
672672
}
673673
}
674674
}

shared/src/sync_engine/initial_sync/ensure_initial_sync_issue_comments.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -138,7 +138,7 @@ impl<W: TransportTrait, GithubApi: GithubApiTrait> SyncEngine<W, GithubApi> {
138138
.build();
139139
self.persist_changes(&txn, changes).await?;
140140
txn.object_store::<IssueCommentsInitialSyncStatus>()?
141-
.no_optimism_put(&IssueCommentsInitialSyncStatus {
141+
.put(&IssueCommentsInitialSyncStatus {
142142
status: InitialSyncStatusEnum::Partial,
143143
id,
144144
})
@@ -157,7 +157,7 @@ impl<W: TransportTrait, GithubApi: GithubApiTrait> SyncEngine<W, GithubApi> {
157157
.read_write()
158158
.build();
159159
txn.object_store::<IssueCommentsInitialSyncStatus>()?
160-
.no_optimism_put(&IssueCommentsInitialSyncStatus {
160+
.put(&IssueCommentsInitialSyncStatus {
161161
status: InitialSyncStatusEnum::Full,
162162
id,
163163
})

shared/src/sync_engine/initial_sync/ensure_initial_sync_issues.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -125,7 +125,7 @@ impl<W: TransportTrait, GithubApi: GithubApiTrait> SyncEngine<W, GithubApi> {
125125
.build();
126126
self.persist_changes(&txn, changes).await?;
127127
txn.object_store::<IssuesInitialSyncStatus>()?
128-
.no_optimism_put(&IssuesInitialSyncStatus {
128+
.put(&IssuesInitialSyncStatus {
129129
status: InitialSyncStatusEnum::Partial,
130130
id: *id,
131131
})
@@ -144,7 +144,7 @@ impl<W: TransportTrait, GithubApi: GithubApiTrait> SyncEngine<W, GithubApi> {
144144
.read_write()
145145
.build();
146146
txn.object_store::<IssuesInitialSyncStatus>()?
147-
.no_optimism_put(&IssuesInitialSyncStatus {
147+
.put(&IssuesInitialSyncStatus {
148148
status: InitialSyncStatusEnum::Full,
149149
id: *id,
150150
})

shared/src/sync_engine/initial_sync/ensure_initial_sync_repository.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ impl<T: TransportTrait, GithubApi: GithubApiTrait> SyncEngine<T, GithubApi> {
4848
.read_write()
4949
.build();
5050
txn.object_store::<RepositoryInitialSyncStatus>()?
51-
.no_optimism_put(&RepositoryInitialSyncStatus {
51+
.put(&RepositoryInitialSyncStatus {
5252
status: RepoSyncStatus::Full,
5353
id: *id,
5454
})

shared/src/sync_engine/mod.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -108,7 +108,7 @@ impl<W: TransportTrait, GithubApi> SyncEngine<W, GithubApi> {
108108
.read_write()
109109
.build();
110110
txn.object_store::<InstallationAccessTokenRow>()?
111-
.no_optimism_put(&InstallationAccessTokenRow {
111+
.put(&InstallationAccessTokenRow {
112112
token: resp.clone(),
113113
installation_id: *id,
114114
})

shared/src/sync_engine/mutations/issues.rs

Lines changed: 11 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -3,13 +3,13 @@ use jiff::Timestamp;
33

44
use crate::{
55
random::random, sync_engine::{
6-
error::{SyncError, SyncErrorSrc},
6+
error::SyncError,
77
SyncEngine,
88
}, types::{
99
installation::InstallationId,
1010
issue::{Issue, IssueId},
11-
repository::{Repository, RepositoryId},
12-
user::{User, UserId},
11+
repository::Repository,
12+
user::User,
1313
}, sync_engine::websocket_updates::transport::TransportTrait,
1414
};
1515

@@ -20,43 +20,18 @@ impl<T: TransportTrait, GithubApi: GithubApiTrait> SyncEngine<T, GithubApi> {
2020
pub async fn create_issue(
2121
&self,
2222
installation_id: &InstallationId,
23-
owner_id: &UserId,
24-
repo_id: &RepositoryId,
23+
owner: &User,
24+
repo: &Repository,
2525
issues_create_request: IssuesCreateRequest,
2626
) -> Result<IssueId, SyncError<T>> {
27-
// Just leaving a note for myself that when I did
28-
// self.db.object_store::<User/Repository>(), I got the "transaction is already closed"
29-
// issue of indexeddb (probgably caused by the fact that indexeddb transactions commit as
30-
// soon as one returns to the event loop if a callback (or the chain of callbacks, look at
31-
// MDN/etc for more details) isn't open).
32-
let txn = self
33-
.db
34-
.txn()
35-
.with_store::<User>()
36-
.with_store::<Repository>()
37-
.build();
38-
let owner = txn
39-
.object_store::<User>()
40-
.unwrap()
41-
.no_optimism_get(owner_id)
42-
.await?
43-
.ok_or_else(|| SyncErrorSrc::<T>::DataModel("no user".into()))?
44-
.login;
45-
let repo = txn
46-
.object_store::<Repository>()?
47-
.no_optimism_get(repo_id)
48-
.await?
49-
.ok_or_else(|| SyncErrorSrc::<T>::DataModel("repo not found".into()))?
50-
.name;
51-
5227
let conf = self.get_api_conf(installation_id).await?;
5328

5429
let now = Timestamp::now();
5530
let issue_id = IssueId::default();
5631
let optimistic_issue = Issue {
5732
id: issue_id,
58-
repository_id: *repo_id,
59-
user_id: Some(*owner_id).into(),
33+
repository_id: repo.id,
34+
user_id: Some(owner.id).into(),
6035
body: issues_create_request.body.clone().into(),
6136
body_text: issues_create_request.body.clone().into(),
6237
body_html: issues_create_request.body.clone().into(),
@@ -71,10 +46,13 @@ impl<T: TransportTrait, GithubApi: GithubApiTrait> SyncEngine<T, GithubApi> {
7146
..Default::default()
7247
};
7348

49+
let owner_login = owner.login.clone();
50+
let repo_name = repo.name.clone();
51+
7452
self.db
7553
.object_store_rw::<Issue>()?
7654
.create(optimistic_issue, async move {
77-
GithubApi::issues_slash_create(&conf, &owner, &repo, issues_create_request)
55+
GithubApi::issues_slash_create(&conf, &owner_login, &repo_name, issues_create_request)
7856
.await
7957
.map(|i| IssueId::from(i.id))
8058
.map_err(|_| ())

shared/src/sync_engine/optimistic/db/object_store.rs

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -126,7 +126,7 @@ where
126126
S: Store + 'static,
127127
Mode: TxnMode<SupportsReadWrite = Present>,
128128
{
129-
pub async fn no_optimism_delete(&self, id: &S::Id) -> Result<(), Error> {
129+
pub async fn delete(&self, id: &S::Id) -> Result<(), Error> {
130130
self.reactivity_trackers
131131
.borrow_mut()
132132
.add_modification(S::NAME, SerializedId::new_from_id::<S>(id));
@@ -139,7 +139,7 @@ where
139139
Ok(())
140140
}
141141

142-
pub async fn no_optimism_put(&self, item: &S) -> Result<(), Error> {
142+
pub async fn put(&self, item: &S) -> Result<(), Error> {
143143
self.reactivity_trackers
144144
.borrow_mut()
145145
.add_modification(S::NAME, SerializedId::new_from_row(item));
@@ -172,10 +172,13 @@ where
172172
self.reactivity_trackers
173173
.borrow_mut()
174174
.add_modification(S::NAME, SerializedId::new_from_row(&row));
175+
let id = row.id().clone();
175176
self.optimistic_changes.create(row, create_fut, callback);
176177

178+
tracing::info!("did self.optimistic_changes.create for row with id: {:?}", id);
177179
if let Some(commit_listener) = self.commit_listener.as_ref() {
178180
commit_listener(&self.reactivity_trackers.borrow());
181+
tracing::info!("invoked commit_listener() from within ObjectStore::create()");
179182
}
180183
}
181184
}

shared/src/sync_engine/optimistic/db/tests.rs

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -90,7 +90,7 @@ pub async fn index_get_no_optimisim_put_overlapping() {
9090
.with_txn_2(async |txn| {
9191
txn.object_store::<Issue>()
9292
.unwrap()
93-
.no_optimism_put(&Default::default())
93+
.put(&Default::default())
9494
.await
9595
.unwrap();
9696
})
@@ -117,7 +117,7 @@ pub async fn index_get_no_optimisim_put_non_overlapping() {
117117
.with_txn_2(async |txn| {
118118
txn.object_store::<Repository>()
119119
.unwrap()
120-
.no_optimism_put(&Default::default())
120+
.put(&Default::default())
121121
.await
122122
.unwrap();
123123
})
@@ -143,7 +143,7 @@ pub async fn get_no_optimisim_put_overlapping() {
143143
.with_txn_2(async |txn| {
144144
txn.object_store::<Issue>()
145145
.unwrap()
146-
.no_optimism_put(&Issue {
146+
.put(&Issue {
147147
id: some_issue_id,
148148
..Default::default()
149149
})
@@ -172,7 +172,7 @@ pub async fn get_no_optimisim_put_non_overlapping() {
172172
.with_txn_2(async |txn| {
173173
txn.object_store::<Issue>()
174174
.unwrap()
175-
.no_optimism_put(&Issue {
175+
.put(&Issue {
176176
id: (*some_issue_id + 1).into(),
177177
..Default::default()
178178
})
@@ -196,7 +196,7 @@ pub async fn get_no_optimisim_put_non_overlapping() {
196196
.with_txn_2(async |txn| {
197197
txn.object_store::<Repository>()
198198
.unwrap()
199-
.no_optimism_put(&Default::default())
199+
.put(&Default::default())
200200
.await
201201
.unwrap();
202202
})
@@ -217,7 +217,7 @@ pub async fn get_all_no_optimisim_put_overlapping() {
217217
.with_txn_2(async |txn| {
218218
txn.object_store::<Issue>()
219219
.unwrap()
220-
.no_optimism_put(&Default::default())
220+
.put(&Default::default())
221221
.await
222222
.unwrap();
223223
})
@@ -242,7 +242,7 @@ pub async fn get_all_no_optimisim_put_non_overlapping() {
242242
.with_txn_2(async |txn| {
243243
txn.object_store::<Repository>()
244244
.unwrap()
245-
.no_optimism_put(&Default::default())
245+
.put(&Default::default())
246246
.await
247247
.unwrap();
248248
})

shared/src/sync_engine/websocket_updates/mod.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -116,7 +116,7 @@ where
116116
.build();
117117
self.persist_changes(&txn, changes).await?;
118118
txn.object_store::<LastWebhookUpdateAt>()?
119-
.no_optimism_put(&LastWebhookUpdateAt {
119+
.put(&LastWebhookUpdateAt {
120120
at: jiff::Timestamp::now(),
121121
id: Default::default(),
122122
})

0 commit comments

Comments
 (0)