Skip to content

Commit

Permalink
Add spaces property to item contract and model
Browse files Browse the repository at this point in the history
  • Loading branch information
JiriLojda committed Aug 13, 2024
1 parent c039c9a commit 75b16d9
Show file tree
Hide file tree
Showing 3 changed files with 48 additions and 41 deletions.
23 changes: 9 additions & 14 deletions lib/contracts/content-item-contracts.ts
Original file line number Diff line number Diff line change
Expand Up @@ -6,12 +6,13 @@ export namespace ContentItemContracts {
name: string;
codename: string;
type: {
id?: string,
id?: string;
codename?: string;
external_id?: string;
};
external_id?: string;
last_modified: Date;
spaces: SharedContracts.IIdReferenceContract[];
collection: SharedContracts.IReferenceObjectContract;
}

Expand All @@ -20,20 +21,15 @@ export namespace ContentItemContracts {
pagination: SharedContracts.IPaginationModelContract;
}

export interface IAddContentItemResponseContract extends IContentItemModelContract {
}
export interface IAddContentItemResponseContract extends IContentItemModelContract {}

export interface IViewContentItemResponseContract extends IContentItemModelContract {
}
export interface IViewContentItemResponseContract extends IContentItemModelContract {}

export interface IUpdateContentItemResponseContract extends IContentItemModelContract {
}
export interface IUpdateContentItemResponseContract extends IContentItemModelContract {}

export interface IUpsertContentItemResponseContract extends IContentItemModelContract {
}
export interface IUpsertContentItemResponseContract extends IContentItemModelContract {}

export interface IDeleteContentItemResponseContract {
}
export interface IDeleteContentItemResponseContract {}

export interface IUpdateContentItemPostContract {
name: string;
Expand All @@ -50,13 +46,12 @@ export namespace ContentItemContracts {
export interface IAddContentItemPostContract {
name: string;
type: {
codename?: string,
id?: string
codename?: string;
id?: string;
external_id?: string;
};
codename?: string;
external_id?: string;
collection?: SharedContracts.IReferenceObjectContract;
}
}

29 changes: 22 additions & 7 deletions lib/mappers/content-items-mapper.ts
Original file line number Diff line number Diff line change
Expand Up @@ -6,13 +6,11 @@ import { ContentItemResponses } from '../responses';
import { BaseMapper } from './base-mapper';

export class ContentItemsMapper extends BaseMapper {

mapListingItemsResponse(
response: IResponse<ContentItemContracts.IContentItemsListingResponseContract>
): ContentItemResponses.ContentItemsResponse {

const pagination = super.mapPagination(response.data.pagination);
const items = response.data.items.map(m => this.mapContentItem(m));
const items = response.data.items.map((m) => this.mapContentItem(m));

return new ContentItemResponses.ContentItemsResponse(super.mapResponseDebug(response), response.data, {
pagination: pagination,
Expand All @@ -23,25 +21,41 @@ export class ContentItemsMapper extends BaseMapper {
mapViewContentItemResponse(
response: IResponse<ContentItemContracts.IContentItemModelContract>
): ContentItemResponses.ViewContentItemResponse {
return new ContentItemResponses.ViewContentItemResponse(super.mapResponseDebug(response), response.data, this.mapContentItem(response.data));
return new ContentItemResponses.ViewContentItemResponse(
super.mapResponseDebug(response),
response.data,
this.mapContentItem(response.data)
);
}

mapAddContentItemResponse(
response: IResponse<ContentItemContracts.IAddContentItemResponseContract>
): ContentItemResponses.AddContentItemResponse {
return new ContentItemResponses.AddContentItemResponse(super.mapResponseDebug(response), response.data, this.mapContentItem(response.data));
return new ContentItemResponses.AddContentItemResponse(
super.mapResponseDebug(response),
response.data,
this.mapContentItem(response.data)
);
}

mapUpdateContentItemResponse(
response: IResponse<ContentItemContracts.IUpdateContentItemResponseContract>
): ContentItemResponses.UpdateContentItemResponse {
return new ContentItemResponses.UpdateContentItemResponse(super.mapResponseDebug(response), response.data, this.mapContentItem(response.data));
return new ContentItemResponses.UpdateContentItemResponse(
super.mapResponseDebug(response),
response.data,
this.mapContentItem(response.data)
);
}

mapUpsertContentItemResponse(
response: IResponse<ContentItemContracts.IUpsertContentItemResponseContract>
): ContentItemResponses.UpsertContentItemResponse {
return new ContentItemResponses.UpsertContentItemResponse(super.mapResponseDebug(response), response.data, this.mapContentItem(response.data));
return new ContentItemResponses.UpsertContentItemResponse(
super.mapResponseDebug(response),
response.data,
this.mapContentItem(response.data)
);
}

mapContentItem(rawItem: ContentItemContracts.IContentItemModelContract): ContentItemModels.ContentItem {
Expand All @@ -53,6 +67,7 @@ export class ContentItemsMapper extends BaseMapper {
name: rawItem.name,
type: rawItem.type,
collection: super.mapReference(rawItem.collection),
spaces: rawItem.spaces.map((m) => super.mapIdReference(m)),
_raw: rawItem
});
}
Expand Down
37 changes: 17 additions & 20 deletions lib/models/content-items/content-item.models.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,38 +2,35 @@ import { ContentItemContracts } from '../../contracts';
import { SharedModels } from '../shared/shared-models';

export namespace ContentItemModels {

export class ContentItem implements SharedModels.IBaseModel<ContentItemContracts.IContentItemModelContract> {

public id!: string;
public name!: string;
public codename!: string;
public type!: {
id: string
id: string;
};
public externalId?: string;
public lastModified!: Date;
public collection!: SharedModels.ReferenceObject;
public spaces: SharedModels.IIdRefenceObject[] = [];
public _raw!: ContentItemContracts.IContentItemModelContract;

constructor(
data: {
id: string,
name: string,
codename: string,
type: {
id?: string,
codename?: string,
external_id?: string
},
externalId?: string,
lastModified: Date,
collection: SharedModels.ReferenceObject,
_raw: ContentItemContracts.IContentItemModelContract
}
) {
constructor(data: {
id: string;
name: string;
codename: string;
type: {
id?: string;
codename?: string;
external_id?: string;
};
externalId?: string;
lastModified: Date;
collection: SharedModels.ReferenceObject;
spaces: SharedModels.IIdRefenceObject[];
_raw: ContentItemContracts.IContentItemModelContract;
}) {
Object.assign(this, data);
}
}
}

0 comments on commit 75b16d9

Please sign in to comment.