FFXIV_Lodestone_Handler/app/Http/Controllers/LodestoneLinkController.php
2020-08-29 01:22:33 +02:00

109 lines
3.3 KiB
PHP

<?php
namespace App\Http\Controllers;
use App\Services\CodeGeneratorService;
use App\Services\LodestoneApiService;
use App\Services\LodestoneCacheService;
use App\UserLink;
class LodestoneLinkController extends Controller
{
public function checkDiscordName(
string $server,
string $name,
int $discordGuildId,
int $discordUserId,
CodeGeneratorService $codeGeneratorService,
LodestoneCacheService $lodestoneCacheService,
LodestoneApiService $lodestoneApiService
) {
$character = $lodestoneCacheService->getCharacterByName($server, $name, $lodestoneApiService)->content;
if (UserLink::where('lodestoneId', $character['Character']['ID'])->count() > 0)
return [
'linked' => true
];
// TODO: Store this code in the LinkCode table
$code = $codeGeneratorService->generateCode(
'discord',
$codeGeneratorService->generateIdentifierDiscordName($server, $name, $discordGuildId, $discordUserId)
);
return [
'linked' => false,
'linkCode' => $code
];
}
public function checkDiscordId(
int $lodestoneId,
int $discordGuildId,
int $discordUserId,
CodeGeneratorService $codeGeneratorService
) {
if (UserLink::where('lodestoneId', $lodestoneId)->count() > 0)
return [
'linked' => true
];
return [
'linked' => false,
'linkCode' => $codeGeneratorService->generateCode(
'discord',
$codeGeneratorService->generateIdentifierDiscordId($lodestoneId, $discordGuildId, $discordUserId)
)
];
}
public function checkWebsiteName(
string $server,
string $name,
string $hostname,
int $websiteUserId,
CodeGeneratorService $codeGeneratorService,
LodestoneCacheService $lodestoneCacheService,
LodestoneApiService $lodestoneApiService
) {
$character = $lodestoneCacheService->getCharacterByName($server, $name, $lodestoneApiService)->content;
return [
'linked' => false,
'linkCode' => $codeGeneratorService->generateCode(
'discord',
$codeGeneratorService->generateIdentifierWebsiteName($server, $name, $hostname, $websiteUserId)
)
];
}
public function checkWebsiteId(
int $lodestoneId,
string $hostname,
int $websiteUserId,
CodeGeneratorService $codeGeneratorService,
LodestoneCacheService $lodestoneCacheService,
LodestoneApiService $lodestoneApiService
) {
$character = $lodestoneCacheService->getCharacterById($lodestoneId, $lodestoneApiService)->content;
return [
'linked' => false,
'linkCode' => $codeGeneratorService->generateCode(
'discord',
$codeGeneratorService->generateIdentifierWebsiteId($lodestoneId, $hostname, $websiteUserId)
)
];
}
public function linkDiscord(
int $lodestoneId,
int $discordGuildId,
int $discordUserId
) {}
public function linkWebsite(
int $lodestoneId,
string $hostname,
int $websiteId
) {}
}