AssetService
AssetService
Contains methods relating to Asset entities.
Signature
class AssetService {
constructor(connection: TransactionalConnection, configService: ConfigService, listQueryBuilder: ListQueryBuilder, eventBus: EventBus, tagService: TagService, channelService: ChannelService, roleService: RoleService, customFieldRelationService: CustomFieldRelationService)
findOne(ctx: RequestContext, id: ID, relations?: RelationPaths<Asset>) => Promise<Asset | undefined>;
findAll(ctx: RequestContext, options?: AssetListOptions, relations?: RelationPaths<Asset>) => Promise<PaginatedList<Asset>>;
async getFeaturedAsset(ctx: RequestContext, entity: T) => Promise<Asset | undefined>;
async getEntityAssets(ctx: RequestContext, entity: T) => Promise<Asset[] | undefined>;
async updateFeaturedAsset(ctx: RequestContext, entity: T, input: EntityAssetInput) => Promise<T>;
async updateEntityAssets(ctx: RequestContext, entity: T, input: EntityAssetInput) => Promise<T>;
async create(ctx: RequestContext, input: CreateAssetInput) => Promise<CreateAssetResult>;
async update(ctx: RequestContext, input: UpdateAssetInput) => Promise<Asset>;
async delete(ctx: RequestContext, ids: ID[], force: boolean = false, deleteFromAllChannels: boolean = false) => Promise<DeletionResponse>;
async assignToChannel(ctx: RequestContext, input: AssignAssetsToChannelInput) => Promise<Asset[]>;
async createFromFileStream(stream: ReadStream, ctx?: RequestContext) => Promise<CreateAssetResult>;
async createFromFileStream(stream: Readable, filePath: string, ctx?: RequestContext) => Promise<CreateAssetResult>;
async createFromFileStream(stream: ReadStream | Readable, maybeFilePathOrCtx?: string | RequestContext, maybeCtx?: RequestContext) => Promise<CreateAssetResult>;
}
Members
constructor
method
type:
(connection: TransactionalConnection, configService: ConfigService, listQueryBuilder: ListQueryBuilder, eventBus: EventBus, tagService: TagService, channelService: ChannelService, roleService: RoleService, customFieldRelationService: CustomFieldRelationService) => AssetService
findOne
method
type:
(ctx: RequestContext, id: ID, relations?: RelationPaths<Asset>) => Promise<Asset | undefined>
findAll
method
type:
(ctx: RequestContext, options?: AssetListOptions, relations?: RelationPaths<Asset>) => Promise<PaginatedList<Asset>>
getFeaturedAsset
method
type:
(ctx: RequestContext, entity: T) => Promise<Asset | undefined>
getEntityAssets
method
type:
(ctx: RequestContext, entity: T) => Promise<Asset[] | undefined>
Returns the Assets of an entity which has a well-ordered list of Assets, such as Product,
ProductVariant or Collection.
updateFeaturedAsset
method
type:
(ctx: RequestContext, entity: T, input: EntityAssetInput) => Promise<T>
updateEntityAssets
method
type:
(ctx: RequestContext, entity: T, input: EntityAssetInput) => Promise<T>
Updates the assets / featuredAsset of an entity, ensuring that only valid assetIds are used.
create
method
type:
(ctx: RequestContext, input: CreateAssetInput) => Promise<CreateAssetResult>
Create an Asset based on a file uploaded via the GraphQL API. The file should be uploaded using the GraphQL multipart request specification, e.g. using the apollo-upload-client npm package.
See the Uploading Files docs for an example of usage.
update
method
type:
(ctx: RequestContext, input: UpdateAssetInput) => Promise<Asset>
Updates the name, focalPoint, tags & custom fields of an Asset.
delete
method
type:
(ctx: RequestContext, ids: ID[], force: boolean = false, deleteFromAllChannels: boolean = false) => Promise<DeletionResponse>
Deletes an Asset after performing checks to ensure that the Asset is not currently in use
by a Product, ProductVariant or Collection.
assignToChannel
method
type:
(ctx: RequestContext, input: AssignAssetsToChannelInput) => Promise<Asset[]>
createFromFileStream
method
type:
(stream: ReadStream, ctx?: RequestContext) => Promise<CreateAssetResult>
Create an Asset from a file stream, for example to create an Asset during data import.
createFromFileStream
method
type:
(stream: Readable, filePath: string, ctx?: RequestContext) => Promise<CreateAssetResult>
createFromFileStream
method
type:
(stream: ReadStream | Readable, maybeFilePathOrCtx?: string | RequestContext, maybeCtx?: RequestContext) => Promise<CreateAssetResult>
EntityWithAssets
Certain entities (Product, ProductVariant, Collection) use this interface to model a featured asset and then a list of assets with a defined order.
Signature
interface EntityWithAssets extends VendureEntity {
featuredAsset: Asset | null;
assets: OrderableAsset[];
}
Extends
Members
featuredAsset
property
type:
Asset | null
assets
property
type:
OrderableAsset[]
EntityAssetInput
Used when updating entities which implement EntityWithAssets.
Signature
interface EntityAssetInput {
assetIds?: ID[] | null;
featuredAssetId?: ID | null;
}
Members
assetIds
property
type:
ID[] | null
featuredAssetId
property
type:
ID | null