@lxdhub/api
Version:
Display, search and copy LXD-images using a web interface.
36 lines (33 loc) • 1.17 kB
text/typescript
import { RemoteDto} from '..';
import { Factory } from '@lxdhub/common';
import { Remote } from '@lxdhub/db';
import { Injectable } from '@nestjs/common';
/**
* Factory which produces RemoteDtos
*/
@Injectable()
export class RemoteFactory extends Factory<RemoteDto> {
/**
* Maps the given database remote with the RemoteDtos and returns
* the instances
* @param remote The database remote, which should be mapped with a RemoteDto
*/
entityToDto(remote: Remote): RemoteDto {
const remoteDto = new RemoteDto();
remoteDto.name = remote.name;
remoteDto.protocol = remote.protocol;
remoteDto.public = remote.public;
remoteDto.readonly = remote.readonly;
remoteDto.serverUrl = remote.serverUrl;
remoteDto.id = remote.id;
return remoteDto;
}
/**
* Maps the given database remotes with the RemoteDtos and returns
* the instances as array
* @param remotes The database remotes, which should be mapped with ImageListItemDtos
*/
entitiesToDto(remotes: Remote[]): RemoteDto[] {
return remotes.map(remote => this.entityToDto(remote));
}
}