Skip to content

Commit 1829e90

Browse files
committed
Fix issue with multiple time records for the same issue
1 parent 68d5975 commit 1829e90

File tree

1 file changed

+43
-44
lines changed

1 file changed

+43
-44
lines changed

gtt-sync.js

Lines changed: 43 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -52,52 +52,51 @@ if (frames.length === 0) process.exit(0);
5252
Cli.bar(`${Cli.process} Syncing time records...`, frames.length);
5353

5454
frames.forEach((frame, done) => {
55-
new Promise(resolve => resolve())
55+
if (resources[frame.resource.type][frame.resource.id] !== undefined
56+
&& resources[frame.resource.type][frame.resource.id].data.project_id) return done();
5657

57-
// set resource if it isn't already set
58-
.then(() => new Promise((resolve, reject) => {
59-
if (resources[frame.resource.type][frame.resource.id] !== undefined
60-
&& resources[frame.resource.type][frame.resource.id].data.project_id) return resolve();
61-
resources[frame.resource.type][frame.resource.id] = new classes[frame.resource.type](config, {});
62-
resources[frame.resource.type][frame.resource.id]
63-
.make(frame.project, frame.resource.id)
64-
.then(() => resolve())
65-
.catch(error => reject(error));
66-
}))
67-
.catch(error => Cli.x(`Could not resolve issue/merge_request ${frame.resource.id} on "${frame.project}"`, error))
58+
resources[frame.resource.type][frame.resource.id] = new classes[frame.resource.type](config, {});
59+
resources[frame.resource.type][frame.resource.id]
60+
.make(frame.project, frame.resource.id)
61+
.then(() => done())
62+
.catch(error => Cli.x(`Could not resolve issue/merge_request ${frame.resource.id} on "${frame.project}"`, error));
63+
})
64+
65+
.then(() => frames.forEach((frame, done) => {
66+
new Promise(resolve => resolve())
6867

6968
// set notes if not already set
70-
.then(() => new Promise((resolve, reject) => {
71-
let notes;
72-
if ((notes = resources[frame.resource.type][frame.resource.id].notes) && notes.length > 0) return;
73-
resources[frame.resource.type][frame.resource.id]
74-
.getNotes()
75-
.then(() => resolve())
76-
.catch(error => reject(error));
77-
}))
78-
.catch(error => Cli.x(`Could not get notes from "${frame.project}"`, error))
69+
.then(() => new Promise((resolve, reject) => {
70+
let notes;
71+
if ((notes = resources[frame.resource.type][frame.resource.id].notes) && notes.length > 0) return;
72+
resources[frame.resource.type][frame.resource.id]
73+
.getNotes()
74+
.then(() => resolve())
75+
.catch(error => reject(error));
76+
}))
77+
.catch(error => Cli.x(`Could not get notes from "${frame.project}"`, error))
7978

80-
// create note if completely missing
81-
.then(() => new Promise((resolve, reject) => {
82-
if (frame.notes.length > 0) return resolve();
83-
createTime(frame, frame.duration)
84-
.then(() => {
85-
Cli.advance();
86-
done();
87-
})
88-
.catch(error => reject(error))
89-
}))
90-
.catch(error => Cli.error('Could not create time spent.', error))
79+
// create note if completely missing
80+
.then(() => new Promise((resolve, reject) => {
81+
if (frame.notes.length > 0) return resolve();
82+
createTime(frame, frame.duration)
83+
.then(() => {
84+
Cli.advance();
85+
done();
86+
})
87+
.catch(error => reject(error))
88+
}))
89+
.catch(error => Cli.error('Could not create time spent.', error))
9190

92-
// check for mismatches and update times
93-
.then(() => new Promise((resolve, reject) => {
94-
let diff = Math.ceil(frame.duration) - parseInt(_.reduce(frame.notes, (n, m) => (n + m.time), 0));
95-
createTime(frame, diff)
96-
.then(() => {
97-
Cli.advance();
98-
done();
99-
})
100-
.catch(error => reject(error))
101-
}))
102-
.catch(error => Cli.error('Could not create time spent.', error))
103-
});
91+
// check for mismatches and update times
92+
.then(() => new Promise((resolve, reject) => {
93+
let diff = Math.ceil(frame.duration) - parseInt(_.reduce(frame.notes, (n, m) => (n + m.time), 0));
94+
createTime(frame, diff)
95+
.then(() => {
96+
Cli.advance();
97+
done();
98+
})
99+
.catch(error => reject(error))
100+
}))
101+
.catch(error => Cli.error('Could not create time spent.', error))
102+
}));

0 commit comments

Comments
 (0)