Skip to content

Commit

Permalink
Merge pull request #163 from kontent-ai/contributors-api
Browse files Browse the repository at this point in the history
feat: adds support for `contributors` & `note` API
  • Loading branch information
Enngage authored Jan 30, 2025
2 parents 1b0007c + d2cd1f3 commit 3ed67ed
Show file tree
Hide file tree
Showing 8 changed files with 55 additions and 5 deletions.
4 changes: 4 additions & 0 deletions lib/contracts/language-variant-contracts.ts
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,8 @@ export namespace LanguageVariantContracts {
workflow: ILanguageVariantWorkflowContract;
schedule: ILanguageVariantSchedule;
due_date: ILanguageVariantDueDate;
contributors: SharedContracts.UserReferenceContract[];
note?: string;
}

export interface ILanguageVariantModelsContract {
Expand All @@ -29,6 +31,8 @@ export namespace LanguageVariantContracts {
elements: LanguageVariantElements.ILanguageVariantElementBase[];
workflow?: ILanguageVariantWorkflowContract;
due_date?: ILanguageVariantDueDate;
note?: string;
contributors?: SharedContracts.UserReferenceDataContract[];
}
export interface IListLanguageVariantsOfContentTypeWithComponentsResponseContract {
variants: ILanguageVariantModelsContract[];
Expand Down
13 changes: 13 additions & 0 deletions lib/contracts/shared-contracts.ts
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,19 @@ export namespace SharedContracts {
codename?: string;
external_id?: string;
}

export type UserReferenceContract = Required<Pick<UserReferenceDataContract, 'id'>>;

export type UserReferenceDataContract =
| {
id: string;
email?: never;
}
| {
id?: never;
email: string;
};

export interface ICodenameIdReferenceContract {
id?: string;
codename?: string;
Expand Down
2 changes: 2 additions & 0 deletions lib/mappers/language-variant-mapper.ts
Original file line number Diff line number Diff line change
Expand Up @@ -127,6 +127,8 @@ export class LanguageVariantMapper extends BaseMapper {
lastModified: new Date(rawVariant.last_modified),
dueDate: this.mapDueDate(rawVariant.due_date),
schedule: this.mapSchedule(rawVariant.schedule),
note: rawVariant.note,
contributors: rawVariant.contributors,
workflow: {
workflowIdentifier: super.mapReference(rawVariant.workflow.workflow_identifier),
stepIdentifier: super.mapReference(rawVariant.workflow.step_identifier)
Expand Down
6 changes: 5 additions & 1 deletion lib/models/language-variants/language-variant.models.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { ElementModels } from '../elements/elements.models';
import { SharedModels } from '../shared/shared-models';
import { LanguageVariantContracts } from '../../contracts';
import { LanguageVariantContracts, SharedContracts } from '../../contracts';

export namespace LanguageVariantModels {
export interface ILanguageVariantElementInfo {
Expand Down Expand Up @@ -33,6 +33,8 @@ export namespace LanguageVariantModels {
};
public schedule!: ILanguageVariantSchedule;
public dueDate!: ILanguageVariantDueDate;
public note?: string;
public contributors!: SharedContracts.UserReferenceContract[];
public _raw!: LanguageVariantContracts.ILanguageVariantModelContract;

constructor(data: {
Expand All @@ -42,6 +44,8 @@ export namespace LanguageVariantModels {
lastModified: Date;
schedule: ILanguageVariantSchedule;
dueDate: ILanguageVariantDueDate;
note?: string;
contributors: SharedContracts.UserReferenceContract[];
workflow: {
workflowIdentifier: SharedModels.ReferenceObject;
stepIdentifier: SharedModels.ReferenceObject;
Expand Down
5 changes: 4 additions & 1 deletion lib/models/workflow/workflow.models.ts
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
import { SharedModels } from '../shared/shared-models';
import { SharedContracts, WorkflowContracts } from '../../contracts';
import { LanguageVariantModels } from '../language-variants/language-variant.models';

export namespace WorkflowModels {

export interface LanguageVariantWorkflow {
workflowOdentifier: SharedContracts.ICodenameIdReferenceContract;
stepIdentifier: SharedContracts.ICodenameIdReferenceContract;
Expand Down Expand Up @@ -76,6 +76,9 @@ export namespace WorkflowModels {
codename?: string;
};
step_identifier: SharedContracts.IReferenceObjectContract;
due_date?: LanguageVariantModels.ILanguageVariantDueDate;
contributors?: SharedContracts.UserReferenceDataContract[];
note?: string;
}

export interface IAddWorkflowData {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -169,5 +169,12 @@
"publish_display_timezone": "Europe/Prague",
"unpublish_time": "2024-04-30T08:00:00",
"unpublish_display_timezone": "Europe/Prague"
}
},
"contributors": [
{
"id": "gTGVBh3vrho-JIrI7PFrqgbCaKEEyCtXdLQGWxRW9pU"
}
],

"note": "This content is waiting for a legal review."
}
10 changes: 9 additions & 1 deletion test/browser/language-variants/upsert-language-variant.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -78,7 +78,13 @@ describe('Upsert language variant', () => {
},
due_date: {
value: null
}
},
note: 'x',
contributors: [
{
email: '[email protected]'
}
]
};
})
.toPromise();
Expand Down Expand Up @@ -188,6 +194,8 @@ describe('Upsert language variant', () => {
expect(variant.workflow.stepIdentifier.id).toEqual(originalItem.workflow.step_identifier.id);
expect(variant.item).toEqual(jasmine.any(SharedModels.ReferenceObject));
expect(variant.language).toEqual(jasmine.any(SharedModels.ReferenceObject));
expect(variant.note).toEqual(originalItem.note);
expect(variant.contributors).toEqual(originalItem.contributors);

variant.elements.forEach((element) => {
const originalElement = originalItem.elements.find((m) => m.element.id === element.element.id);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,16 @@ describe('Change workflow of language variant', () => {
},
workflow_identifier: {
codename: 'y'
}
},
contributors: [
{
id: 'x'
}
],
due_date: {
value: '2024-02-26T06:04:00.7069564Z'
},
note: 'x'
})
.toPromise();
});
Expand Down

0 comments on commit 3ed67ed

Please sign in to comment.