Skip to content

Commit d65f568

Browse files
authored
Merge pull request #59 from FleekHQ/add-txl-subscribe-integration
Added TxlSubscribe integration
2 parents 794daa8 + ae961ab commit d65f568

6 files changed

Lines changed: 68 additions & 5 deletions

File tree

public/client/space.proto

Lines changed: 26 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ service SpaceApi {
1010
rpc GenerateKeyPair(GenerateKeyPairRequest) returns (GenerateKeyPairResponse) {}
1111
rpc GenerateKeyPairWithForce(GenerateKeyPairRequest) returns (GenerateKeyPairResponse) {}
1212
rpc Subscribe(google.protobuf.Empty) returns (stream FileEventResponse) {}
13+
rpc TxlSubscribe(google.protobuf.Empty) returns (stream TextileEventResponse) {}
1314
rpc OpenFile(OpenFileRequest) returns (OpenFileResponse) {}
1415
rpc AddItems(AddItemsRequest) returns (AddItemsResponse) {}
1516
rpc CreateFolder(CreateFolderRequest) returns (CreateFolderResponse) {}
@@ -40,37 +41,60 @@ message ConfigInfoResponse {
4041
string port = 2;
4142
string appPath = 3;
4243
}
44+
4345
message GenerateKeyPairRequest {}
4446

4547
message GenerateKeyPairResponse {
4648
string publicKey = 1;
4749
string privateKey = 2;
4850
}
51+
4952
enum EventType {
5053
ENTRY_ADDED = 0;
5154
ENTRY_DELETED = 1;
5255
ENTRY_UPDATED = 2;
5356
}
57+
5458
message FileEventResponse {
5559
EventType type = 1;
5660
ListDirectoryEntry entry = 2;
5761
}
62+
63+
message TextileEventResponse {
64+
string bucket = 1;
65+
}
66+
5867
message OpenFileRequest {
5968
string path = 1;
6069
}
70+
6171
message OpenFileResponse {
6272
string location = 1;
6373
}
74+
6475
message AddItemsRequest {
6576
repeated string sourcePaths = 1; // full paths to file or Folder on FS. Needs to be a location available to the daemon
6677
string targetPath = 2; // target path in bucket.
6778
}
68-
// not sure we need to return anything other than an error if we failed
79+
80+
message AddItemResult {
81+
string sourcePath= 1;
82+
string bucketPath = 2;
83+
}
84+
85+
message AddItemError {
86+
string sourcePath = 1;
87+
string error = 2;
88+
}
89+
6990
message AddItemsResponse {
91+
repeated AddItemResult results = 1;
92+
repeated AddItemError errors = 2;
7093
}
94+
7195
message CreateFolderRequest {
7296
string path = 1; // target path in bucket to add new empty folder
7397
}
7498
// not sure we need to return anything other than an error if we failed
7599
message CreateFolderResponse {
76-
}
100+
}

public/events/add-items.js

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
const { ipcMain } = require('electron');
22

33
const client = require('../client');
4-
const { listDirectories } = require('./objects');
54

65
const EVENT_PREFIX = 'upload';
76
const START_EVENT = `${EVENT_PREFIX}:start`;
@@ -18,7 +17,6 @@ const registerAddItemsEvents = (mainWindow) => {
1817
return;
1918
}
2019

21-
listDirectories(mainWindow);
2220
mainWindow.webContents.send(SUCCESS_EVENT, res);
2321
});
2422
});

public/events/index.js

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,17 +4,22 @@ const registerPathInfoEvents = require('./path-info');
44
const registerObjectsEvents = require('./objects').default;
55
const registerGenerateKeyPairEvents = require('./generate-key-pair');
66
const registerAddItemsEvents = require('./add-items');
7+
const registerTxlSubscribe = require('./txl-subscribe');
78

89
const registerEvents = (mainWindow) => {
910
const stream = registerEventStream(mainWindow);
11+
const txlStream = registerTxlSubscribe(mainWindow);
1012

1113
registerConfigEvents(mainWindow);
1214
registerObjectsEvents(mainWindow);
1315
registerPathInfoEvents(mainWindow);
1416
registerGenerateKeyPairEvents(mainWindow);
1517
registerAddItemsEvents(mainWindow);
1618

17-
return () => stream.destroy();
19+
return () => {
20+
stream.destroy();
21+
txlStream.destroy();
22+
};
1823
};
1924

2025
module.exports = registerEvents;

public/events/txl-subscribe.js

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
const client = require('../client');
2+
const { listDirectories } = require('./objects');
3+
4+
const EVENT_PREFIX = 'txlSuscribe';
5+
6+
const registerTxlSubscribe = (mainWindow) => {
7+
const eventStream = client.TxlSubscribe();
8+
9+
eventStream.on('data', (event) => {
10+
listDirectories(mainWindow);
11+
});
12+
13+
eventStream.on('error', (error) => {
14+
mainWindow.webContents.send(`${EVENT_PREFIX}:error`, error);
15+
});
16+
17+
return eventStream;
18+
};
19+
20+
module.exports = registerTxlSubscribe;

src/events/index.js

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ import registerObjectsEvents from './objects';
55
import registerPathInfoEvents from './path-info';
66
import registerGenerateKeyPairEvents from './generate-key-pair';
77
import registerAddItemsEvents from './add-items';
8+
import registerTxlSubscribeEvents from './txl-subscribe';
89

910
const registerEvents = () => {
1011
registerShortcuts();
@@ -14,6 +15,7 @@ const registerEvents = () => {
1415
registerPathInfoEvents();
1516
registerGenerateKeyPairEvents();
1617
registerAddItemsEvents();
18+
registerTxlSubscribeEvents();
1719
};
1820

1921
export default registerEvents;

src/events/txl-subscribe.js

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
import { ipcRenderer } from 'electron';
2+
3+
const EVENT_PREFIX = 'txlSuscribe';
4+
const ERROR_EVENT = `${EVENT_PREFIX}:error`;
5+
6+
/* eslint-disable no-console */
7+
const registerTxlSubscribeEvents = () => {
8+
ipcRenderer.on(ERROR_EVENT, (event, payload) => {
9+
// DO Something with the response (dispatch to redux)
10+
console.log(ERROR_EVENT, event, payload);
11+
});
12+
};
13+
14+
export default registerTxlSubscribeEvents;

0 commit comments

Comments
 (0)