|
|
|
|
@ -3,7 +3,6 @@ import { HasPermissionGuard } from '@ghostfolio/api/guards/has-permission.guard'
|
|
|
|
|
import { TransformDataSourceInRequestInterceptor } from '@ghostfolio/api/interceptors/transform-data-source-in-request/transform-data-source-in-request.interceptor';
|
|
|
|
|
import { ApiService } from '@ghostfolio/api/services/api/api.service';
|
|
|
|
|
import { ManualService } from '@ghostfolio/api/services/data-provider/manual/manual.service';
|
|
|
|
|
import { MarketDataService } from '@ghostfolio/api/services/market-data/market-data.service';
|
|
|
|
|
import { PropertyDto } from '@ghostfolio/api/services/property/property.dto';
|
|
|
|
|
import { DataGatheringService } from '@ghostfolio/api/services/queues/data-gathering/data-gathering.service';
|
|
|
|
|
import {
|
|
|
|
|
@ -16,7 +15,6 @@ import { getAssetProfileIdentifier } from '@ghostfolio/common/helper';
|
|
|
|
|
import {
|
|
|
|
|
AdminData,
|
|
|
|
|
AdminMarketData,
|
|
|
|
|
AdminMarketDataDetails,
|
|
|
|
|
AdminUsers,
|
|
|
|
|
EnhancedSymbolProfile
|
|
|
|
|
} from '@ghostfolio/common/interfaces';
|
|
|
|
|
@ -50,8 +48,6 @@ import { StatusCodes, getReasonPhrase } from 'http-status-codes';
|
|
|
|
|
|
|
|
|
|
import { AdminService } from './admin.service';
|
|
|
|
|
import { UpdateAssetProfileDto } from './update-asset-profile.dto';
|
|
|
|
|
import { UpdateBulkMarketDataDto } from './update-bulk-market-data.dto';
|
|
|
|
|
import { UpdateMarketDataDto } from './update-market-data.dto';
|
|
|
|
|
|
|
|
|
|
@Controller('admin')
|
|
|
|
|
export class AdminController {
|
|
|
|
|
@ -60,7 +56,6 @@ export class AdminController {
|
|
|
|
|
private readonly apiService: ApiService,
|
|
|
|
|
private readonly dataGatheringService: DataGatheringService,
|
|
|
|
|
private readonly manualService: ManualService,
|
|
|
|
|
private readonly marketDataService: MarketDataService,
|
|
|
|
|
@Inject(REQUEST) private readonly request: RequestWithUser
|
|
|
|
|
) {}
|
|
|
|
|
|
|
|
|
|
@ -214,19 +209,6 @@ export class AdminController {
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* @deprecated
|
|
|
|
|
*/
|
|
|
|
|
@Get('market-data/:dataSource/:symbol')
|
|
|
|
|
@HasPermission(permissions.accessAdminControl)
|
|
|
|
|
@UseGuards(AuthGuard('jwt'), HasPermissionGuard)
|
|
|
|
|
public async getMarketDataBySymbol(
|
|
|
|
|
@Param('dataSource') dataSource: DataSource,
|
|
|
|
|
@Param('symbol') symbol: string
|
|
|
|
|
): Promise<AdminMarketDataDetails> {
|
|
|
|
|
return this.adminService.getMarketDataBySymbol({ dataSource, symbol });
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@HasPermission(permissions.accessAdminControl)
|
|
|
|
|
@Post('market-data/:dataSource/:symbol/test')
|
|
|
|
|
@UseGuards(AuthGuard('jwt'), HasPermissionGuard)
|
|
|
|
|
@ -253,58 +235,6 @@ export class AdminController {
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* @deprecated
|
|
|
|
|
*/
|
|
|
|
|
@HasPermission(permissions.accessAdminControl)
|
|
|
|
|
@Post('market-data/:dataSource/:symbol')
|
|
|
|
|
@UseGuards(AuthGuard('jwt'), HasPermissionGuard)
|
|
|
|
|
public async updateMarketData(
|
|
|
|
|
@Body() data: UpdateBulkMarketDataDto,
|
|
|
|
|
@Param('dataSource') dataSource: DataSource,
|
|
|
|
|
@Param('symbol') symbol: string
|
|
|
|
|
) {
|
|
|
|
|
const dataBulkUpdate: Prisma.MarketDataUpdateInput[] = data.marketData.map(
|
|
|
|
|
({ date, marketPrice }) => ({
|
|
|
|
|
dataSource,
|
|
|
|
|
marketPrice,
|
|
|
|
|
symbol,
|
|
|
|
|
date: parseISO(date),
|
|
|
|
|
state: 'CLOSE'
|
|
|
|
|
})
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
return this.marketDataService.updateMany({
|
|
|
|
|
data: dataBulkUpdate
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* @deprecated
|
|
|
|
|
*/
|
|
|
|
|
@HasPermission(permissions.accessAdminControl)
|
|
|
|
|
@Put('market-data/:dataSource/:symbol/:dateString')
|
|
|
|
|
@UseGuards(AuthGuard('jwt'), HasPermissionGuard)
|
|
|
|
|
public async update(
|
|
|
|
|
@Param('dataSource') dataSource: DataSource,
|
|
|
|
|
@Param('dateString') dateString: string,
|
|
|
|
|
@Param('symbol') symbol: string,
|
|
|
|
|
@Body() data: UpdateMarketDataDto
|
|
|
|
|
) {
|
|
|
|
|
const date = parseISO(dateString);
|
|
|
|
|
|
|
|
|
|
return this.marketDataService.updateMarketData({
|
|
|
|
|
data: { marketPrice: data.marketPrice, state: 'CLOSE' },
|
|
|
|
|
where: {
|
|
|
|
|
dataSource_date_symbol: {
|
|
|
|
|
dataSource,
|
|
|
|
|
date,
|
|
|
|
|
symbol
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@HasPermission(permissions.accessAdminControl)
|
|
|
|
|
@Post('profile-data/:dataSource/:symbol')
|
|
|
|
|
@UseGuards(AuthGuard('jwt'), HasPermissionGuard)
|
|
|
|
|
|