• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

bvlion / AppTanServer / 20205654148

14 Dec 2025 09:04AM UTC coverage: 25.627%. First build
20205654148

push

github

bvlion
format

12 of 49 new or added lines in 18 files covered. (24.49%)

143 of 558 relevant lines covered (25.63%)

0.8 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

0.0
/src/Infrastructure/Persistence/SearchWord/PdoSearchWordsMasterRepository.php
1
<?php
2

3
declare(strict_types=1);
4

5
namespace App\Infrastructure\Persistence\SearchWord;
6

7
use App\Domain\SearchWordsMaster\SearchWordsMaster;
8
use App\Domain\SearchWordsMaster\SearchWordsMasterRepository;
9
use PDO;
10

11
class PdoSearchWordsMasterRepository implements SearchWordsMasterRepository
12
{
13
  public function __construct(private PDO $pdo)
14
  {
NEW
15
  }
×
16

17
  public function insert(SearchWordsMaster $master): void
18
  {
19
    $sql = <<<SQL
×
20
      INSERT INTO search_words_master (
21
        package_name, word, kana, app_name, source
22
      ) VALUES (
23
        :package_name, :word, :kana, :app_name, :source
24
      )
25
    SQL;
×
26

27
    $stmt = $this->pdo->prepare($sql);
×
28
    $stmt->execute([
×
29
      ':package_name' => $master->getPackageName(),
×
30
      ':word' => $master->getWord(),
×
31
      ':kana' => $master->getKana(),
×
32
      ':app_name' => $master->getAppName(),
×
33
      ':source' => $master->getSource(),
×
34
    ]);
×
35
  }
36

37
  public function exists(string $packageName, string $word, string $appName): bool
38
  {
39
    $sql = <<<SQL
×
40
      SELECT COUNT(*) FROM search_words_master
41
      WHERE package_name = :package_name
42
        AND word = :word
43
        AND app_name = :app_name
44
    SQL;
×
45

46
    $stmt = $this->pdo->prepare($sql);
×
47
    $stmt->execute([
×
48
      ':package_name' => $packageName,
×
49
      ':word' => $word,
×
50
      ':app_name' => $appName,
×
51
    ]);
×
52

53
    return (int) $stmt->fetchColumn() > 0;
×
54
  }
55

56
  public function existsGeneratedWords(string $packageName, string $appName): array
57
  {
58
    $sql = <<<SQL
×
59
      SELECT package_name, word, app_name, source
60
      FROM search_words_master
61
      WHERE package_name = :package_name
62
        AND app_name = :app_name
63
    SQL;
×
64

65
    $stmt = $this->pdo->prepare($sql);
×
66
    $stmt->execute([
×
67
      ':package_name' => $packageName,
×
68
      ':app_name' => $appName,
×
69
    ]);
×
70

71
    $results = [];
×
72
    while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
×
73
      $results[] = new SearchWordsMaster(
×
74
        $row['package_name'],
×
75
        $row['word'],
×
76
        $row['app_name'],
×
77
        $row['source'],
×
78
      );
×
79
    }
80

81
    return $results;
×
82
  }
83

84
  public function findByPackageAndAppName(string $packageName, string $appName): array
85
  {
86
    $sql = <<<SQL
×
87
      SELECT package_name, word, kana, app_name, source
88
      FROM search_words_master
89
      WHERE package_name = :package_name AND app_name = :app_name
90
      ORDER BY created_at DESC
91
    SQL;
×
92

93
    $stmt = $this->pdo->prepare($sql);
×
94
    $stmt->execute([
×
95
      ':package_name' => $packageName,
×
96
      ':app_name' => $appName,
×
97
    ]);
×
98

99
    $results = [];
×
100
    while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
×
101
      $results[] = new SearchWordsMaster(
×
102
        $row['package_name'],
×
103
        $row['word'],
×
104
        $row['kana'],
×
105
        $row['app_name'],
×
106
        $row['source'],
×
107
      );
×
108
    }
109

110
    return $results;
×
111
  }
112
}
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc