Skip to content

Commit

Permalink
Integrate new mutation 'updateReadme'.
Browse files Browse the repository at this point in the history
  • Loading branch information
Dmitriy Borzenko committed Aug 2, 2023
1 parent 38524f2 commit 64affb5
Show file tree
Hide file tree
Showing 10 changed files with 174 additions and 62 deletions.
19 changes: 10 additions & 9 deletions src/app/api/dataset.api.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ import {
import { DatasetApi } from "./dataset.api";
import {
CommitEventToDatasetDocument,
CommitEventToDatasetQuery,
CommitEventToDatasetMutation,
DatasetsByAccountNameDocument,
DatasetsByAccountNameQuery,
GetDatasetDataSqlRunDocument,
Expand Down Expand Up @@ -190,16 +190,17 @@ describe("DatasetApi", () => {
it("should commit event", () => {
service
.commitEvent({
accountName: TEST_USER_NAME,
datasetName: TEST_DATASET_NAME,
datasetId: "mockId",
event: "mock event",
})
.subscribe((res: CommitEventToDatasetQuery) => {
expect(
res.datasets.byOwnerAndName?.metadata.chain.commitEvent
.__typename,
).toEqual("CommitResultSuccess");
});
.subscribe(
(res: CommitEventToDatasetMutation | null | undefined) => {
expect(
res?.datasets.byId?.metadata.chain.commitEvent
.__typename,
).toEqual("CommitResultSuccess");
},
);

const op = controller.expectOne(CommitEventToDatasetDocument);
expect(op.operation.variables.accountName).toEqual(TEST_USER_NAME);
Expand Down
24 changes: 22 additions & 2 deletions src/app/api/dataset.api.ts
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,8 @@ import {
DatasetKind,
GetDatasetSchemaGQL,
GetDatasetSchemaQuery,
UpdateReadmeGQL,
UpdateReadmeMutation,
} from "src/app/api/kamu.graphql.interface";
import AppValues from "src/app/common/app.values";
import { ApolloQueryResult } from "@apollo/client/core";
Expand Down Expand Up @@ -46,8 +48,9 @@ export class DatasetApi {
private datasetByAccountAndDatasetNameGQL: DatasetByAccountAndDatasetNameGQL,
private createEmptyDatasetGQL: CreateEmptyDatasetGQL,
private createDatasetFromSnapshotGQL: CreateDatasetFromSnapshotGQL,
private commitEventToDataset: CommitEventToDatasetGQL,
private commitEventToDatasetGQL: CommitEventToDatasetGQL,
private datasetSchemaGQL: GetDatasetSchemaGQL,
private updateReadmeGQL: UpdateReadmeGQL,
) {}

public getDatasetMainData(params: {
Expand Down Expand Up @@ -224,7 +227,7 @@ export class DatasetApi {
datasetId: string;
event: string;
}): Observable<CommitEventToDatasetMutation | null | undefined> {
return this.commitEventToDataset
return this.commitEventToDatasetGQL
.mutate({
datasetId: params.datasetId,
event: params.event,
Expand All @@ -236,4 +239,21 @@ export class DatasetApi {
}),
);
}

public updateReadme(
datasetId: string,
content: string,
): Observable<UpdateReadmeMutation | null | undefined> {
return this.updateReadmeGQL
.mutate({
datasetId,
content,
})
.pipe(
first(),
map((result: MutationResult<UpdateReadmeMutation>) => {
return result.data;
}),
);
}
}
15 changes: 15 additions & 0 deletions src/app/api/gql/create-dataset/update-readme.graphql
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
mutation updateReadme($datasetId: DatasetID!, $content: String!) {
datasets {
byId(datasetId: $datasetId) {
metadata {
updateReadme(content: $content) {
__typename
message
... on CommitResultSuccess {
oldHead
}
}
}
}
}
}
57 changes: 57 additions & 0 deletions src/app/api/kamu.graphql.interface.ts
Original file line number Diff line number Diff line change
Expand Up @@ -1153,6 +1153,32 @@ export type CreateDatasetFromSnapshotMutation = {
};
};

export type UpdateReadmeMutationVariables = Exact<{
datasetId: Scalars["DatasetID"];
content: Scalars["String"];
}>;

export type UpdateReadmeMutation = {
__typename?: "Mutation";
datasets: {
__typename?: "DatasetsMut";
byId?: {
__typename?: "DatasetMut";
metadata: {
__typename?: "DatasetMetadataMut";
updateReadme:
| { __typename: "CommitResultAppendError"; message: string }
| {
__typename: "CommitResultSuccess";
oldHead?: any | null;
message: string;
}
| { __typename: "NoChanges"; message: string };
};
} | null;
};
};

export type DatasetByAccountAndDatasetNameQueryVariables = Exact<{
accountName: Scalars["AccountName"];
datasetName: Scalars["DatasetName"];
Expand Down Expand Up @@ -2620,6 +2646,37 @@ export class CreateDatasetFromSnapshotGQL extends Apollo.Mutation<
super(apollo);
}
}
export const UpdateReadmeDocument = gql`
mutation updateReadme($datasetId: DatasetID!, $content: String!) {
datasets {
byId(datasetId: $datasetId) {
metadata {
updateReadme(content: $content) {
__typename
message
... on CommitResultSuccess {
oldHead
}
}
}
}
}
}
`;

@Injectable({
providedIn: "root",
})
export class UpdateReadmeGQL extends Apollo.Mutation<
UpdateReadmeMutation,
UpdateReadmeMutationVariables
> {
document = UpdateReadmeDocument;

constructor(apollo: Apollo.Apollo) {
super(apollo);
}
}
export const DatasetByAccountAndDatasetNameDocument = gql`
query datasetByAccountAndDatasetName(
$accountName: AccountName!
Expand Down
18 changes: 9 additions & 9 deletions src/app/dataset-create/dataset-create.service.spec.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,7 @@
import { CreateDatasetFromSnapshotQuery } from "./../api/kamu.graphql.interface";
import {
CreateDatasetFromSnapshotMutation,
CreateEmptyDatasetMutation,
} from "./../api/kamu.graphql.interface";
import {
mockDatasetBasicsFragment,
mockDatasetInfo,
Expand All @@ -7,10 +10,7 @@ import { TestBed } from "@angular/core/testing";
import { Apollo } from "apollo-angular";
import { of } from "rxjs";
import { DatasetApi } from "../api/dataset.api";
import {
CreateEmptyDatasetQuery,
DatasetKind,
} from "../api/kamu.graphql.interface";
import { DatasetKind } from "../api/kamu.graphql.interface";
import { DatasetViewTypeEnum } from "../dataset-view/dataset-view.interface";
import { NavigationService } from "../services/navigation.service";
import { AppDatasetCreateService } from "./dataset-create.service";
Expand All @@ -34,7 +34,7 @@ describe("AppDatasetCreateService", () => {
});

it("should be create empty dataset with success", () => {
const mockResponseSuccess: CreateEmptyDatasetQuery = {
const mockResponseSuccess: CreateEmptyDatasetMutation = {
datasets: {
createEmpty: {
message: "Success",
Expand Down Expand Up @@ -66,7 +66,7 @@ describe("AppDatasetCreateService", () => {
});

it("should be create empty dataset with error", () => {
const mockResponseError: CreateEmptyDatasetQuery = {
const mockResponseError: CreateEmptyDatasetMutation = {
datasets: {
createEmpty: {
message: "Fail",
Expand Down Expand Up @@ -101,7 +101,7 @@ describe("AppDatasetCreateService", () => {
});

it("should be create dataset using shapshot with success", () => {
const mockResponseSuccess: CreateDatasetFromSnapshotQuery = {
const mockResponseSuccess: CreateDatasetFromSnapshotMutation = {
datasets: {
createFromSnapshot: {
message: "Success",
Expand Down Expand Up @@ -135,7 +135,7 @@ describe("AppDatasetCreateService", () => {
});

it("should be create dataset using shapshot with error", () => {
const mockResponseError: CreateDatasetFromSnapshotQuery = {
const mockResponseError: CreateDatasetFromSnapshotMutation = {
datasets: {
createFromSnapshot: {
message: "Fail",
Expand Down
63 changes: 52 additions & 11 deletions src/app/dataset-create/dataset-create.service.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ import {
CreateDatasetFromSnapshotMutation,
CreateEmptyDatasetMutation,
DatasetByAccountAndDatasetNameQuery,
UpdateReadmeMutation,
} from "./../api/kamu.graphql.interface";
import { Observable, Subject } from "rxjs";
import { DatasetApi } from "src/app/api/dataset.api";
Expand Down Expand Up @@ -147,19 +148,59 @@ export class AppDatasetCreateService {
data.datasets.byId.metadata.chain.commitEvent.message,
);
} else {
this.datasetService
.requestDatasetMainData({
accountName,
datasetName,
})
.subscribe();
this.navigationService.navigateToDatasetView({
accountName,
datasetName,
tab: DatasetViewTypeEnum.Overview,
});
this.successActions(accountName, datasetName);
}
}),
);
}

public updateReadme(
accountName: string,
datasetName: string,
content: string,
): Observable<void> {
const key = `${accountName}${datasetName}`;
let observable: Observable<UpdateReadmeMutation | null | undefined>;
if (this.cache.has(key)) {
observable = this.datasetApi.updateReadme(
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
this.cache.get(key)!,
content,
);
} else {
observable = this.datasetApi
.getDatasetInfoByAccountAndDatasetName(accountName, datasetName)
.pipe(
switchMap((x: DatasetByAccountAndDatasetNameQuery) => {
const id = x.datasets.byOwnerAndName?.id as string;
this.cache.set(key, id);
return this.datasetApi.updateReadme(id, content);
}),
);
}
return observable.pipe(
map((data: UpdateReadmeMutation | null | undefined) => {
if (
data?.datasets.byId?.metadata.updateReadme.__typename ===
"CommitResultSuccess"
) {
this.successActions(accountName, datasetName);
}
}),
);
}

private successActions(accountName: string, datasetName: string): void {
this.datasetService
.requestDatasetMainData({
accountName,
datasetName,
})
.subscribe();
this.navigationService.navigateToDatasetView({
accountName,
datasetName,
tab: DatasetViewTypeEnum.Overview,
});
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,10 @@ export class EngineSelectComponent implements OnInit {
}
}
public get value(): string {
return DataHelpers.descriptionForEngine(this.engine).label ?? "";
return (
DataHelpers.descriptionForEngine(this.engine.toLowerCase()).label ??
""
);
}

public getLogo(name: string): EventPropertyLogo {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,6 @@ import { AppDatasetCreateService } from "src/app/dataset-create/dataset-create.s
import { OverviewDataUpdate } from "src/app/dataset-view/dataset.subscriptions.interface";
import { AppDatasetSubscriptionsService } from "src/app/dataset-view/dataset.subscriptions.service";
import { DatasetSchema, DataRow } from "src/app/interface/dataset.interface";
import { TemplatesYamlEventsService } from "src/app/services/templates-yaml-events.service";

@Component({
selector: "app-readme-section",
Expand All @@ -42,9 +41,7 @@ export class ReadmeSectionComponent extends BaseComponent implements OnInit {

constructor(
private appDatasetSubsService: AppDatasetSubscriptionsService,

private createDatasetService: AppDatasetCreateService,
private yamlEventService: TemplatesYamlEventsService,
) {
super();
}
Expand Down Expand Up @@ -78,12 +75,10 @@ export class ReadmeSectionComponent extends BaseComponent implements OnInit {
if (this.datasetBasics)
this.trackSubscription(
this.createDatasetService
.commitEventToDataset(
.updateReadme(
this.datasetBasics.owner.name,
this.datasetBasics.name as string,
this.yamlEventService.buildYamlSetAttachmentsEvent(
this.readmeState,
),
this.readmeState,
)
.subscribe(() => (this.isMarkdownEditView = false)),
);
Expand Down
10 changes: 3 additions & 7 deletions src/app/search/mock.data.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import {
CommitEventToDatasetQuery,
CommitEventToDatasetMutation,
PageBasedInfo,
} from "./../api/kamu.graphql.interface";
import { mockSetVocab } from "./../dataset-block/metadata-block/components/event-details/mock.events";
Expand Down Expand Up @@ -763,9 +763,9 @@ export const mockDatasetDataSqlRunInternalErrorResponse: GetDatasetDataSqlRunQue
},
};

export const mockCommitEventResponse: CommitEventToDatasetQuery = {
export const mockCommitEventResponse: CommitEventToDatasetMutation = {
datasets: {
byOwnerAndName: {
byId: {
metadata: {
chain: {
commitEvent: {
Expand All @@ -776,13 +776,9 @@ export const mockCommitEventResponse: CommitEventToDatasetQuery = {
newHead:
"zW1hgfvGgmdsbrDMhVoBE5TRX2RX4DV2mhh4QgEAeA3fx4Q",
},
__typename: "MetadataChain",
},
__typename: "DatasetMetadata",
},
__typename: "Dataset",
},
__typename: "Datasets",
},
};

Expand Down
Loading

0 comments on commit 64affb5

Please sign in to comment.