109 lines
3.3 KiB
PHP
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
|
|
) {}
|
|
}
|