Move ticks from filesystem into database. I'm going to preserve the filesystem and just delete it manually. I'll add a login warning, but I'm pretty sure I'm the only person who'll ever be affected by this. Co-authored-by: Greg Sarjeant <1686767+gsarjeant@users.noreply.github.com> Reviewed-on: https://gitea.subcultureofone.org/greg/tkr/pulls/19
		
			
				
	
	
		
			42 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			42 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
| <?php
 | |
| class TickModel {
 | |
|     public function stream(int $limit, int $offset = 0): Generator {
 | |
|         global $db;
 | |
| 
 | |
|         $stmt = $db->prepare("SELECT id, timestamp, tick FROM tick ORDER BY timestamp DESC LIMIT ? OFFSET ?");
 | |
|         $stmt->execute([$limit, $offset]);
 | |
| 
 | |
|         while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
 | |
|             yield [
 | |
|                 'id' => $row['id'],
 | |
|                 'timestamp' => $row['timestamp'],
 | |
|                 'tick' => $row['tick'],
 | |
|             ];
 | |
|         }
 | |
|     }
 | |
| 
 | |
|     public function insert(string $tick, ?DateTimeImmutable $datetime = null): void {
 | |
|         global $db;
 | |
|         $datetime ??= new DateTimeImmutable('now', new DateTimeZone('UTC'));
 | |
|         $timestamp = $datetime->format('Y-m-d H:i:s');
 | |
| 
 | |
|         $stmt = $db->prepare("INSERT INTO tick(timestamp, tick) values (?, ?)");
 | |
|         $stmt->execute([$timestamp, $tick]);
 | |
|     }
 | |
| 
 | |
|     public function get(int $id): array {
 | |
|         global $db;
 | |
| 
 | |
|         $stmt = $db->prepare("SELECT timestamp, tick FROM tick WHERE id=?");
 | |
|         $stmt->execute([$id]);
 | |
|         $row = $stmt->fetch(PDO::FETCH_ASSOC);
 | |
| 
 | |
|         // TODO: Test for existence of row and handle absence.
 | |
|         return [
 | |
|             'tickTime' => $row['timestamp'],
 | |
|             'tick' => $row['tick'],
 | |
|             'config' => ConfigModel::load(),
 | |
|         ];
 | |
|     }
 | |
| }
 |