1- class ChromeStorage {
2- constructor ( storage ) {
3- this . storage = storage ;
4- }
5- get ( keys ) {
6- return new Promise ( ( resolve ) => {
7- this . storage . get ( keys , resolve ) ;
8- } )
9- }
10- set ( values ) {
11- return new Promise ( ( resolve ) => {
12- this . storage . set ( values , resolve ) ;
13- } )
14- }
15- }
16-
17- class ChromeRuntime {
18- constructor ( runtime ) {
19- this . runtime = runtime ;
20- }
21-
22- sendMessage ( msg ) {
23- return new Promise ( ( resolve ) => {
24- this . runtime . sendMessage ( msg , resolve ) ;
25- } ) ;
26- }
27-
28- get onMessage ( ) {
29- const runtime = this . runtime ;
30-
31- return {
32- addListener ( callback ) {
33- runtime . onMessage . addListener ( ( msg , sender , respond ) => {
34- callback ( msg )
35- . then ( ( response ) => { respond ( response ) } )
36- . catch ( ( error ) => respond ( error . message ) ) ;
37- return true ;
38- } ) ;
39- } ,
40- }
41- }
42- }
43-
441class TrelloGateway {
452 static ENDPOINT = "https://api.trello.com/1" ;
463 static API_KEY = "afadffe77f745496f80ebb4bf460c615" ;
474
5+ #storage;
6+
487 constructor ( storage ) {
49- this . storage = storage ;
8+ this . # storage = storage ;
509 }
5110
5211 getCard ( id ) {
53- return this . request ( "get" , `/cards/${ id } ` ) ;
12+ return this . # request( "get" , `/cards/${ id } ` ) ;
5413 }
5514
5615 updateCard ( id , data ) {
57- return this . request ( "put" , `/cards/${ id } ` , data ) ;
16+ return this . # request( "put" , `/cards/${ id } ` , data ) ;
5817 }
5918
60- async request ( method , path , data = null ) {
19+ async # request( method , path , data = null ) {
6120 const url = this . constructor . ENDPOINT + path ;
62- const { trello : token } = await this . storage . get ( "trello" ) ;
21+ const { trello : token } = await this . # storage. get ( "trello" ) ;
6322
6423 const response = await fetch ( url , {
6524 method,
@@ -81,37 +40,43 @@ class TrelloGateway {
8140class TogglGateway {
8241 static ENDPOINT = "https://api.track.toggl.com/api/v8" ;
8342
43+ #storage;
44+
8445 constructor ( storage ) {
85- this . storage = storage ;
46+ this . # storage = storage ;
8647 }
8748
8849 getWorkspaces ( ) {
89- return this . request ( "get" , "/workspaces" ) ;
50+ return this . # request( "get" , "/workspaces" ) ;
9051 }
9152
9253 getProjects ( workspaceId ) {
93- return this . request ( "get" , `/workspaces/${ workspaceId } /projects` ) ;
54+ return this . # request( "get" , `/workspaces/${ workspaceId } /projects` ) ;
9455 }
9556
9657 getTasks ( projectId ) {
97- return this . request ( "get" , `/projects/${ projectId } /tasks` ) ;
58+ return this . # request( "get" , `/projects/${ projectId } /tasks` ) ;
9859 }
9960
10061 createTask ( projectId , name ) {
101- return this . request ( "post" , "/tasks" , {
62+ return this . # request( "post" , "/tasks" , {
10263 task : { name, pid : projectId } ,
10364 } ) ;
10465 }
10566
67+ getCurrentTimeEntry ( ) {
68+ return this . #request( "get" , "/time_entries/current" ) ;
69+ }
70+
10671 startTimeEntry ( taskId ) {
107- return this . request ( "post" , "/time_entries/start" , {
72+ return this . # request( "post" , "/time_entries/start" , {
10873 time_entry : { tid : taskId , created_with : "trektor" } ,
10974 } ) ;
11075 }
11176
112- async request ( method , path , data = null ) {
77+ async # request( method , path , data = null ) {
11378 const url = this . constructor . ENDPOINT + path ;
114- const { toggl : token } = await this . storage . get ( "toggl" ) ;
79+ const { toggl : token } = await this . # storage. get ( "toggl" ) ;
11580
11681 const response = await fetch ( url , {
11782 method,
@@ -130,17 +95,7 @@ class TogglGateway {
13095 }
13196}
13297
133- const trektor = { } ;
134-
135- if ( window . chrome !== undefined ) {
136- trektor . storage = new ChromeStorage ( chrome . storage . local ) ;
137- trektor . runtime = new ChromeRuntime ( chrome . runtime ) ;
138- } else {
139- trektor . storage = browser . storage . local ;
140- trektor . runtime = browser . runtime ;
141- }
142-
143- trektor . trelloGateway = new TrelloGateway ( trektor . storage ) ;
144- trektor . togglGateway = new TogglGateway ( trektor . storage ) ;
145-
146- window . trektor = trektor ;
98+ window . trektor = {
99+ trelloGateway : new TrelloGateway ( browser . storage . local ) ,
100+ togglGateway : new TogglGateway ( browser . storage . local ) ,
101+ } ;
0 commit comments