feat: Complete stub services with real implementations and graceful not-configured responses
All checks were successful
Test Asgard Runner / test (push) Successful in 2s
All checks were successful
Test Asgard Runner / test (push) Successful in 2s
- ChangelogService: inject PlatformChangelog repo, query with findAndCount(skip/take), return actual data
- ChangelogModule: add TypeOrmModule.forFeature([PlatformChangelog])
- MapsService: add uploadMap() — SHA-256 checksum, storage path, full entity save
- MapsController: add POST /maps/upload with FileInterceptor, map.manage permission, @UploadedFile
- AuthService: replace console.log stubs with Logger; forgotPassword returns 200 with clear message; resetPassword throws NotImplementedException
- PluginsService: searchUmod returns { results: [], message: 'not yet configured' } instead of bare []
- SteamService: add Logger.warn on every stub path (checkForceWipe, getPlayerSummary)
- SettingsService: add Logger; both Cloudflare DNS stubs emit Logger.warn before DB save
- MigrationService: add Logger; exportConfig logs warning + returns note field; importConfig throws NotImplementedException
- Install @types/multer dev dependency for Express.Multer.File type support
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -3,6 +3,7 @@ import {
|
||||
NotFoundException,
|
||||
BadRequestException,
|
||||
ConflictException,
|
||||
Logger,
|
||||
} from '@nestjs/common';
|
||||
import { InjectRepository } from '@nestjs/typeorm';
|
||||
import { Repository } from 'typeorm';
|
||||
@@ -13,6 +14,8 @@ import { UpdateDomainDto } from './dto/update-domain.dto';
|
||||
|
||||
@Injectable()
|
||||
export class SettingsService {
|
||||
private readonly logger = new Logger(SettingsService.name);
|
||||
|
||||
constructor(
|
||||
@InjectRepository(PublicSiteConfig)
|
||||
private publicSiteConfigRepository: Repository<PublicSiteConfig>,
|
||||
@@ -97,12 +100,9 @@ export class SettingsService {
|
||||
);
|
||||
}
|
||||
|
||||
// TODO: Stub Cloudflare DNS provisioning
|
||||
// In production, this would:
|
||||
// 1. Create DNS CNAME record: {subdomain}.corrosionmgmt.com → panel.corrosionmgmt.com
|
||||
// 2. Wait for DNS propagation
|
||||
// 3. Verify SSL certificate provisioning
|
||||
// For now, we just update the database
|
||||
this.logger.warn(
|
||||
`Cloudflare DNS integration not configured — subdomain ${dto.subdomain} updated in DB only`,
|
||||
);
|
||||
license.subdomain = dto.subdomain;
|
||||
}
|
||||
|
||||
@@ -115,13 +115,9 @@ export class SettingsService {
|
||||
throw new BadRequestException('Invalid custom domain format');
|
||||
}
|
||||
|
||||
// TODO: Stub Cloudflare DNS verification
|
||||
// In production, this would:
|
||||
// 1. Instruct user to create CNAME pointing to panel.corrosionmgmt.com
|
||||
// 2. Verify DNS record exists
|
||||
// 3. Provision SSL certificate via Cloudflare
|
||||
// 4. Mark domain as verified
|
||||
// For now, we just update the database
|
||||
this.logger.warn(
|
||||
`Cloudflare DNS integration not configured — custom domain ${dto.custom_domain} updated in DB only`,
|
||||
);
|
||||
license.custom_domain = dto.custom_domain;
|
||||
} else if (dto.custom_domain === null || dto.custom_domain === '') {
|
||||
// Allow clearing custom domain
|
||||
|
||||
Reference in New Issue
Block a user