onQueue('lemmy-posts'); } public function handle(): void { if ($this->platform === PlatformEnum::LEMMY) { $this->syncLemmyChannelPosts(); } } private function syncLemmyChannelPosts(): void { try { $api = new LemmyApiService(config('lemmy.instance')); $token = $this->getAuthToken($api); $api->syncChannelPosts($token, (int) $this->channelId, $this->channelName); logger()->info('Channel posts synced successfully', [ 'platform' => $this->platform->value, 'channel_id' => $this->channelId, 'channel_name' => $this->channelName ]); } catch (Exception $e) { logger()->error('Failed to sync channel posts', [ 'platform' => $this->platform->value, 'channel_id' => $this->channelId, 'error' => $e->getMessage() ]); throw $e; } } private function getAuthToken(LemmyApiService $api): string { return Cache::remember('lemmy_jwt_token', 3600, function () use ($api) { $username = config('lemmy.username'); $password = config('lemmy.password'); if (!$username || !$password) { throw new PlatformAuthException(PlatformEnum::LEMMY, 'Missing credentials'); } $token = $api->login($username, $password); if (!$token) { throw new PlatformAuthException(PlatformEnum::LEMMY, 'Login failed'); } return $token; }); } }