Skip to content
This repository was archived by the owner on Jan 14, 2023. It is now read-only.

Commit 28a2bcd

Browse files
authored
Refactor: migrate issues to overmind (#49)
* feat: issues state and getMany action via overmind * refactor: use overmind data in issues table component * refactor: transforming issues response for FE * refactor: fetch issues using overmind on summary page
1 parent 1f3db3a commit 28a2bcd

File tree

19 files changed

+449
-336
lines changed

19 files changed

+449
-336
lines changed

main/redmine.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,8 @@ const createRequestClient = () => {
7878
const response = await instance(data.route, {
7979
method: data.method || 'GET',
8080
headers: data.headers,
81-
json: data.body
81+
json: data.body,
82+
serchParams: data.query
8283
});
8384

8485
console.log(response.statusCode, response.body);

main/transformers/index.js

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,14 @@
11
const users = require('./users');
2+
const issues = require('./issues');
23

34
const transform = (route, responseBody) => {
45
const [entity] = route.split('/');
56

67
switch (entity) {
78
case 'users':
89
return users.transform(route, responseBody);
10+
case 'issues.json':
11+
return issues.transform(route, responseBody);
912
default:
1013
return responseBody;
1114
}

main/transformers/issues.js

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
const transform = (route, responseBody) => {
2+
const { issues } = responseBody;
3+
4+
switch (route) {
5+
case 'issues.json': {
6+
return {
7+
issues: issues.map((issue) => ({
8+
id: issue.id,
9+
project: issue.project,
10+
tracker: issue.tracker,
11+
status: issue.status,
12+
proprity: issue.priority,
13+
author: issue.author,
14+
assignee: issue.assigned_to,
15+
subject: issue.subject,
16+
description: issue.description,
17+
startDate: issue.start_date,
18+
dueDate: issue.due_date,
19+
doneRatio: issue.done_ratio,
20+
isPrivate: issue.is_private,
21+
estimatedHours: issue.estimated_hours,
22+
createdOn: issue.created_on,
23+
updatedOn: issue.updated_on,
24+
closedOn: issue.closed_on
25+
})),
26+
total: responseBody.total_count,
27+
offset: responseBody.offset,
28+
limit: responseBody.limit
29+
};
30+
}
31+
default:
32+
return responseBody;
33+
}
34+
};
35+
36+
module.exports = {
37+
transform
38+
};

render/App.jsx

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -80,9 +80,16 @@ const Routes = ({ dispatch }) => {
8080

8181
useEffect(() => {
8282
const restoreLastSession = async () => {
83-
const response = await actions.settings.restore(getStoredToken());
83+
const token = getStoredToken();
84+
const response = await actions.settings.restore(token);
8485
if (response.success) {
85-
history.replace('/app');
86+
const loginResponse = await actions.users.login({
87+
apiKey: token,
88+
redmineEndpoint: response.payload.endpoint
89+
});
90+
if (loginResponse.success) {
91+
history.replace('/app');
92+
}
8693
}
8794

8895
setIsReady(true);

render/components/SummaryPage/IssuesTable.jsx

Lines changed: 0 additions & 264 deletions
This file was deleted.

0 commit comments

Comments
 (0)