Skip to content

Commit 0290013

Browse files
committed
Specify enclosure and escape for solidtime export and import
1 parent 85f4a30 commit 0290013

File tree

2 files changed

+43
-0
lines changed

2 files changed

+43
-0
lines changed

app/Service/Export/ExportService.php

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,9 @@ public function export(Organization $organization): string
4747
// Organizations
4848
try {
4949
$writer = Writer::createFromPath($temporaryDirectory->path('organizations.csv'), 'w+');
50+
$writer->setDelimiter(',');
51+
$writer->setEnclosure('"');
52+
$writer->setEscape('');
5053
$writer->insertOne([
5154
'id',
5255
'name',
@@ -66,6 +69,9 @@ public function export(Organization $organization): string
6669

6770
// Organization invitations
6871
$writer = Writer::createFromPath($temporaryDirectory->path('organization_invitations.csv'), 'w+');
72+
$writer->setDelimiter(',');
73+
$writer->setEnclosure('"');
74+
$writer->setEscape('');
6975
$writer->insertOne([
7076
'id',
7177
'email',
@@ -91,6 +97,9 @@ public function export(Organization $organization): string
9197

9298
// Time entries
9399
$writer = Writer::createFromPath($temporaryDirectory->path('time_entries.csv'), 'w+');
100+
$writer->setDelimiter(',');
101+
$writer->setEnclosure('"');
102+
$writer->setEscape('');
94103
$writer->insertOne([
95104
'id',
96105
'description',
@@ -139,6 +148,9 @@ public function export(Organization $organization): string
139148

140149
// Clients
141150
$writer = Writer::createFromPath($temporaryDirectory->path('clients.csv'), 'w+');
151+
$writer->setDelimiter(',');
152+
$writer->setEnclosure('"');
153+
$writer->setEscape('');
142154
$writer->insertOne([
143155
'id',
144156
'name',
@@ -164,6 +176,9 @@ public function export(Organization $organization): string
164176

165177
// Projects
166178
$writer = Writer::createFromPath($temporaryDirectory->path('projects.csv'), 'w+');
179+
$writer->setDelimiter(',');
180+
$writer->setEnclosure('"');
181+
$writer->setEscape('');
167182
$writer->insertOne([
168183
'id',
169184
'name',
@@ -199,6 +214,9 @@ public function export(Organization $organization): string
199214

200215
// Project members
201216
$writer = Writer::createFromPath($temporaryDirectory->path('project_members.csv'), 'w+');
217+
$writer->setDelimiter(',');
218+
$writer->setEnclosure('"');
219+
$writer->setEscape('');
202220
$writer->insertOne([
203221
'id',
204222
'billable_rate',
@@ -226,6 +244,9 @@ public function export(Organization $organization): string
226244

227245
// Members
228246
$writer = Writer::createFromPath($temporaryDirectory->path('members.csv'), 'w+');
247+
$writer->setDelimiter(',');
248+
$writer->setEnclosure('"');
249+
$writer->setEscape('');
229250
$writer->insertOne([
230251
'id',
231252
'user_id',
@@ -260,6 +281,9 @@ public function export(Organization $organization): string
260281

261282
// Tasks
262283
$writer = Writer::createFromPath($temporaryDirectory->path('tasks.csv'), 'w+');
284+
$writer->setDelimiter(',');
285+
$writer->setEnclosure('"');
286+
$writer->setEscape('');
263287
$writer->insertOne([
264288
'id',
265289
'name',
@@ -287,6 +311,9 @@ public function export(Organization $organization): string
287311

288312
// Tags
289313
$writer = Writer::createFromPath($temporaryDirectory->path('tags.csv'), 'w+');
314+
$writer->setDelimiter(',');
315+
$writer->setEnclosure('"');
316+
$writer->setEscape('');
290317
$writer->insertOne([
291318
'id',
292319
'name',

app/Service/Import/Importers/SolidtimeImporter.php

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -60,55 +60,71 @@ public function importData(string $data, string $timezone): void
6060
$clientsReader = Reader::createFromPath($temporaryDirectory->path('clients.csv'));
6161
$clientsReader->setHeaderOffset(0);
6262
$clientsReader->setDelimiter(',');
63+
$clientsReader->setEnclosure('"');
64+
$clientsReader->setEscape('');
6365

6466
if (! file_exists($temporaryDirectory->path('members.csv'))) {
6567
throw new ImportException('File "members.csv" missing in ZIP');
6668
}
6769
$membersReader = Reader::createFromPath($temporaryDirectory->path('members.csv'));
6870
$membersReader->setHeaderOffset(0);
6971
$membersReader->setDelimiter(',');
72+
$membersReader->setEnclosure('"');
73+
$membersReader->setEscape('');
7074

7175
if (! file_exists($temporaryDirectory->path('organization_invitations.csv'))) {
7276
throw new ImportException('File "organization_invitations.csv" missing in ZIP');
7377
}
7478
$organizationInvitationsReader = Reader::createFromPath($temporaryDirectory->path('organization_invitations.csv'));
7579
$organizationInvitationsReader->setHeaderOffset(0);
7680
$organizationInvitationsReader->setDelimiter(',');
81+
$organizationInvitationsReader->setEnclosure('"');
82+
$organizationInvitationsReader->setEscape('');
7783

7884
if (! file_exists($temporaryDirectory->path('project_members.csv'))) {
7985
throw new ImportException('File "project_members.csv" missing in ZIP');
8086
}
8187
$projectMembersReader = Reader::createFromPath($temporaryDirectory->path('project_members.csv'));
8288
$projectMembersReader->setHeaderOffset(0);
8389
$projectMembersReader->setDelimiter(',');
90+
$projectMembersReader->setEnclosure('"');
91+
$projectMembersReader->setEscape('');
8492

8593
if (! file_exists($temporaryDirectory->path('projects.csv'))) {
8694
throw new ImportException('File "projects.csv" missing in ZIP');
8795
}
8896
$projectsReader = Reader::createFromPath($temporaryDirectory->path('projects.csv'));
8997
$projectsReader->setHeaderOffset(0);
9098
$projectsReader->setDelimiter(',');
99+
$projectsReader->setEnclosure('"');
100+
$projectsReader->setEscape('');
91101

92102
if (! file_exists($temporaryDirectory->path('tags.csv'))) {
93103
throw new ImportException('File "tags.csv" missing in ZIP');
94104
}
95105
$tagsReader = Reader::createFromPath($temporaryDirectory->path('tags.csv'));
96106
$tagsReader->setHeaderOffset(0);
97107
$tagsReader->setDelimiter(',');
108+
$tagsReader->setEnclosure('"');
109+
$tagsReader->setEscape('');
98110

99111
if (! file_exists($temporaryDirectory->path('tasks.csv'))) {
100112
throw new ImportException('File "tasks.csv" missing in ZIP');
101113
}
102114
$tasksReader = Reader::createFromPath($temporaryDirectory->path('tasks.csv'));
103115
$tasksReader->setHeaderOffset(0);
104116
$tasksReader->setDelimiter(',');
117+
$tasksReader->setEnclosure('"');
118+
$tasksReader->setEscape('');
105119

106120
if (! file_exists($temporaryDirectory->path('time_entries.csv'))) {
107121
throw new ImportException('File "time_entries.csv" missing in ZIP');
108122
}
109123
$timeEntriesReader = Reader::createFromPath($temporaryDirectory->path('time_entries.csv'));
110124
$timeEntriesReader->setHeaderOffset(0);
111125
$timeEntriesReader->setDelimiter(',');
126+
$timeEntriesReader->setEnclosure('"');
127+
$timeEntriesReader->setEscape('');
112128

113129
foreach ($clientsReader as $client) {
114130
$this->clientImportHelper->getKey([

0 commit comments

Comments
 (0)