Skip to content

Commit f84658a

Browse files
committed
Fix builder
1 parent 2eca733 commit f84658a

File tree

4 files changed

+26
-14
lines changed

4 files changed

+26
-14
lines changed

config/data-extractor.php

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -34,9 +34,4 @@
3434
'disk' => 'local',
3535
],
3636
],
37-
38-
'sanitize' => [
39-
'password',
40-
'remember_token',
41-
],
4237
];

src/Builder/CsvBuilder.php

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -15,15 +15,17 @@ public function build(): string
1515
$csv .= implode(',', $this->columns)."\n";
1616

1717
// Add data rows
18-
foreach ($this->data as $row) {
19-
$csvRow = [];
20-
foreach ($this->columns as $column) {
21-
$value = $row[$column] ?? '';
22-
// Escape CSV values
23-
$csvRow[] = '"'.str_replace('"', '""', $value).'"';
18+
foreach ($this->columns as $column) {
19+
if(!array_key_exists($column, $this->data)) {
20+
$csvRow[] = "'*****'";
21+
continue;
2422
}
25-
$csv .= implode(',', $csvRow)."\n";
23+
24+
$value = $this->data[$column] ?? '';
25+
// Escape CSV values
26+
$csvRow[] = '"'.str_replace('"', '""', $value).'"';
2627
}
28+
$csv .= implode(',', $csvRow)."\n";
2729

2830
return $csv;
2931
}

src/Builder/ExtractBuilder.php

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
namespace NaimSolong\DataExtractor\Builder;
44

5+
use Illuminate\Database\DatabaseManager;
56
use InvalidArgumentException;
67
use RuntimeException;
78

@@ -78,9 +79,16 @@ public function build(): string
7879
throw new RuntimeException('Model not set. Use setModel() to set the model before building.');
7980
}
8081

82+
$table = $this->model->getTable();
83+
84+
$columns = app(DatabaseManager::class)
85+
->connection($this->model->getConnectionName())
86+
->getSchemaBuilder()
87+
->getColumnListing($table);
88+
8189
$this->builder
82-
->setSchemaName($this->model->getTable())
83-
->setColumns(array_keys($this->model->getAttributes()))
90+
->setSchemaName($table)
91+
->setColumns($columns)
8492
->setData($this->model->toArray());
8593

8694
return $this->builder->build();

src/Builder/SqlBuilder.php

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,14 @@ public function build(): string
1111
{
1212
$sql = '';
1313

14+
$values = [];
15+
1416
foreach ($this->columns as $column) {
17+
if(!array_key_exists($column, $this->data)) {
18+
$values[] = "'*****'";
19+
continue;
20+
}
21+
1522
$value = $this->data[$column];
1623

1724
if (is_array($value)) {

0 commit comments

Comments
 (0)