Skip to content
This repository was archived by the owner on Nov 17, 2022. It is now read-only.

Commit 38b62ba

Browse files
committed
feat: starting transaction methods
1 parent 1d1fb70 commit 38b62ba

5 files changed

+40
-6
lines changed

docs/PACKAGE_KIT_TRANSACTION_PROGRESS.md

+2-2
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
| AcceptEula ||
99
| Cancel ||
1010
| DownloadPackages ||
11-
| GetCategories | |
11+
| GetCategories | |
1212
| DependsOn ||
1313
| GetDetails ||
1414
| GetDetailsLocal ||
@@ -41,7 +41,7 @@
4141

4242
| Signals | |
4343
|-----------------------|-----|
44-
| Category | |
44+
| Category | |
4545
| Details ||
4646
| ErrorCode ||
4747
| Files ||

src/packagekit/packagekit.properties.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ export class PackageKitProperties {
3535
}
3636
}
3737

38-
interface DistroId {
38+
export interface DistroId {
3939
distro: string;
4040
version: string;
4141
arch: string;

src/transaction/transaction.interface.ts

+3-3
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,15 @@
11
import { ClientInterface } from 'dbus-next';
22

33
export interface Transaction extends ClientInterface {
4+
GetDetails(packageIds: string[]): Promise<void>;
5+
46
Close(): Promise<void>;
57

68
SearchNames(filter: number, values: string[]): Promise<void>;
79

810
GetPackages(filter: number): Promise<void>;
9-
}
1011

11-
export enum TransactionSignal {
12-
PACKAGE = 'Package',
12+
SearchNames(filter: number, packages: string[]): Promise<string>;
1313
}
1414

1515
export enum PackageInfo {

src/transaction/transaction.provider.ts

+5
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ import { INJECTION_TOKEN_SYSTEM_BUS } from '../di/package-kit.register';
33
import { MessageBus } from 'dbus-next';
44
import { Transaction } from './transaction.interface';
55
import { PackagekitProvider } from '../packagekit/packagekit.provider';
6+
import { TransactionSignals } from './transaction.signals';
67

78
@injectable()
89
export class TransactionProvider {
@@ -23,4 +24,8 @@ export class TransactionProvider {
2324
)
2425
);
2526
}
27+
28+
getSignals(transaction: Transaction): TransactionSignals {
29+
return new TransactionSignals(transaction);
30+
}
2631
}
+29
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
import { Subject } from 'rxjs';
2+
import { Transaction } from './transaction.interface';
3+
4+
export class TransactionSignals {
5+
details = new Subject<unknown>();
6+
package = new Subject<unknown>();
7+
8+
constructor(private transaction: Transaction) {
9+
this.setupSignals();
10+
}
11+
12+
private setupSignals() {
13+
this.transaction.on('Details', (...args: unknown[]) => {
14+
this.details.next(args);
15+
});
16+
17+
this.transaction.on('Package', (...args: unknown[]) => {
18+
this.package.next(args);
19+
});
20+
}
21+
}
22+
23+
export interface PackageDetail {
24+
parentId: string;
25+
catId: string;
26+
name: string;
27+
summary: string;
28+
icon: string;
29+
}

0 commit comments

Comments
 (0)