-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathconvert.js
More file actions
77 lines (64 loc) · 1.53 KB
/
convert.js
File metadata and controls
77 lines (64 loc) · 1.53 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
const fs = require("fs");
const Json2csvParser = require("json2csv").Parser;
const data = require("./data.json");
const fields = [
"TaskID",
"CreatedAt",
"CompletedAt",
"LastModified",
"Name",
"Assignee",
"StartDate",
"DueDate",
"ParentTask"
];
let simplifyDate = date => {
if (!date) return "";
let d = new Date(date);
return `${d.getDate()}\/${d.getMonth() + 1}\/${d.getFullYear()}`;
};
let simplifyTask = task => ({
TaskID: task.gid,
CreatedAt: simplifyDate(task.created_at),
CompletedAt: simplifyDate(task.completed_at),
LastModified: simplifyDate(task.modified_at),
Name: task.name,
Assignee: task.assignee ? task.assignee.name : "",
StartDate: simplifyDate(task.start_on),
DueDate: simplifyDate(task.due_on),
ParentTask: task.parent ? task.parent.name : ""
});
let generateFileName = () => {
const days = [
"monday",
"tuesday",
"wednesday",
"thursday",
"friday",
"saturday",
"sunday"
];
let date = new Date();
let day = date.getDay();
let time = date.getHours();
return `${days[day - 1]}-${date.getDate()}-${
time < 12 ? "morning" : "afternoon"
}.csv`;
};
let tasks = [];
for (var task of data.data) {
// parent task
tasks.push(simplifyTask(task));
// subtasks
for (var sub of task.subtasks) {
tasks.push(simplifyTask(sub));
}
}
const parser = new Json2csvParser({ fields });
const csv = parser.parse(tasks);
fs.writeFile(generateFileName(), csv, function(err) {
if (err) {
return console.log(err);
}
console.log("All good!");
});