mirror of https://github.com/pixelfed/pixelfed
				
				
				
			
			You cannot select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
	
	
		
			46 lines
		
	
	
		
			1002 B
		
	
	
	
		
			PHP
		
	
			
		
		
	
	
			46 lines
		
	
	
		
			1002 B
		
	
	
	
		
			PHP
		
	
<?php
 | 
						|
 | 
						|
namespace App\Services;
 | 
						|
 | 
						|
use Redis;
 | 
						|
use App\Status;
 | 
						|
use App\Transformer\Api\StatusStatelessTransformer;
 | 
						|
use League\Fractal;
 | 
						|
use League\Fractal\Serializer\ArraySerializer;
 | 
						|
use League\Fractal\Pagination\IlluminatePaginatorAdapter;
 | 
						|
 | 
						|
class StatusService {
 | 
						|
 | 
						|
	const CACHE_KEY = 'pf:services:status:';
 | 
						|
 | 
						|
	public static function get($id)
 | 
						|
	{
 | 
						|
		return Redis::get(self::CACHE_KEY . $id) ?? self::coldGet($id);
 | 
						|
	}
 | 
						|
 | 
						|
	public static function coldGet($id)
 | 
						|
	{
 | 
						|
		$status = Status::findOrFail($id);
 | 
						|
		$fractal = new Fractal\Manager();
 | 
						|
		$fractal->setSerializer(new ArraySerializer());
 | 
						|
		$resource = new Fractal\Resource\Item($status, new StatusStatelessTransformer());
 | 
						|
		$res = $fractal->createData($resource)->toJson();
 | 
						|
		self::set($id, $res);
 | 
						|
		return $res;
 | 
						|
	}
 | 
						|
 | 
						|
	public static function set($key, $val)
 | 
						|
	{
 | 
						|
		return Redis::set(self::CACHE_KEY . $key, $val);
 | 
						|
	}
 | 
						|
 | 
						|
	public static function del($key)
 | 
						|
	{
 | 
						|
		return Redis::del(self::CACHE_KEY . $key);
 | 
						|
	}
 | 
						|
 | 
						|
	public static function rem($key)
 | 
						|
	{
 | 
						|
		return self::del($key);
 | 
						|
	}
 | 
						|
} |