Browse Source

implement api methods

PHP-GTK3
yggverse 4 months ago
parent
commit
42c4118e46
  1. 114
      src/Model/Database/Identity.php

114
src/Model/Database/Identity.php

@ -20,13 +20,115 @@ class Identity @@ -20,13 +20,115 @@ class Identity
$this->_connection->query('
CREATE TABLE IF NOT EXISTS `identity`
(
`id` INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL,
`time` INTEGER NOT NULL,
`active` INTEGER NOT NULL,
`name` VARCHAR(255),
`crt` TEXT NOT NULL,
`key` TEXT NOT NULL
`id` INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL,
`time` INTEGER NOT NULL,
`name` VARCHAR(255),
`crt` TEXT NOT NULL,
`key` TEXT NOT NULL
)
');
}
public function add(
?string $crt,
?string $key,
?string $name = null,
?int $time = null
): int
{
$query = $this->_connection->prepare(
'INSERT INTO `identity` (
`time`,
`name`,
`crt`,
`key`
) VALUES (
:time,
:name,
:crt,
:key
)'
);
$query->execute(
[
':time' => $time ? $time : time(),
':name' => $name,
':crt' => $crt,
':key' => $key
]
);
return intval(
$this->_connection->lastInsertId()
);
}
public function delete(
int $id
): int
{
$query = $this->_connection->prepare(
'DELETE FROM `identity` WHERE `id` = :id'
);
$query->execute(
[
':id' => $id
]
);
return $query->rowCount();
}
public function get(
int $id
): ?object
{
$query = $this->_connection->prepare(
'SELECT * FROM `identity` WHERE `id` = :id'
);
$query->execute(
[
':id' => $id
]
);
if ($identity = $query->fetch())
{
return $identity;
}
return null;
}
public function find(
string $name = '',
int $start = 0,
int $limit = 1000
): array
{
$query = $this->_connection->prepare(
sprintf(
'SELECT * FROM `identity`
WHERE `name` LIKE :name
ORDER BY `name` ASC
LIMIT %d,%d',
$start,
$limit
)
);
$query->execute(
[
':name' => sprintf(
'%%%s%%',
$name
)
]
);
return $query->fetchAll();
}
}
Loading…
Cancel
Save