Browse Source

Add SuggestionService

Daniel Supernault 6 years ago
parent
commit
f0ce2a4335
1 changed files with 46 additions and 0 deletions
  1. 46 0
      app/Services/SuggestionService.php

+ 46 - 0
app/Services/SuggestionService.php

@@ -0,0 +1,46 @@
+<?php
+
+namespace App\Services;
+
+use Redis;
+use App\Profile;
+
+class SuggestionService {
+
+	const CACHE_KEY = 'pf:services:suggestion:ids';
+
+	public static function get($start = 0, $stop = -1)
+	{
+		return Redis::zrange(self::CACHE_KEY, $start, $stop);
+	}
+
+	public static function set($val)
+	{
+		return Redis::zadd(self::CACHE_KEY, 1, $val);
+	}
+
+	public static function del($val)
+	{
+		return Redis::zrem(self::CACHE_KEY, $val);
+	}
+
+	public static function add($val)
+	{
+		return self::set($val);
+	}
+
+	public static function rem($val)
+	{
+		return self::del($val);
+	}
+
+	public static function warmCache()
+	{
+		if(Redis::zcount(self::CACHE_KEY, '-inf', '+inf') == 0) {
+			$ids = Profile::whereNull('domain')->whereIsSuggestable(true)->pluck('id');
+			foreach($ids as $id) {
+				self::set($id);
+			}
+		}
+	}
+}