Skip to content

Commit

Permalink
fix(hub-discussions): rename DiscussionSettings to Settings for types…
Browse files Browse the repository at this point in the history
… and functions that call the ap

affects: @esri/hub-discussions
  • Loading branch information
velveetachef committed Oct 6, 2023
1 parent d17c769 commit 03268e6
Show file tree
Hide file tree
Showing 9 changed files with 188 additions and 172 deletions.
2 changes: 1 addition & 1 deletion package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

This file was deleted.

1 change: 0 additions & 1 deletion packages/discussions/src/discussion-settings/index.ts

This file was deleted.

2 changes: 1 addition & 1 deletion packages/discussions/src/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@

export * from "./posts";
export * from "./channels";
export * from "./discussion-settings";
export * from "./settings";
export * from "./reactions";
export * from "./types";

Expand Down
1 change: 1 addition & 0 deletions packages/discussions/src/settings/index.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
export * from "./settings";
63 changes: 63 additions & 0 deletions packages/discussions/src/settings/settings.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
import { request } from "../request";
import {
ICreateSettingParams,
ISetting,
IFetchSettingParams,
IRemoveSettingParams,
IRemoveSettingResponse,
IUpdateSettingParams,
} from "../types";

/**
* create setting
*
* @export
* @param {ICreateSettingParams} options
* @return {*} {Promise<ISetting>}
*/
export function createSetting(
options: ICreateSettingParams
): Promise<ISetting> {
options.httpMethod = "POST";
return request(`/settings`, options);
}

/**
* fetch setting
*
* @export
* @param {IFetchSettingParams} options
* @return {*} {Promise<ISetting>}
*/
export function fetchSetting(options: IFetchSettingParams): Promise<ISetting> {
options.httpMethod = "GET";
return request(`/settings/${options.id}`, options);
}

/**
* update setting
*
* @export
* @param {IUpdateSettingParams} options
* @return {*} {Promise<ISetting>}
*/
export function updateSetting(
options: IUpdateSettingParams
): Promise<ISetting> {
options.httpMethod = "PATCH";
return request(`/settings/${options.id}`, options);
}

/**
* remove setting
*
* @export
* @param {IRemoveSettingParams} options
* @return {*} {Promise<IRemoveSettingResponse>}
*/
export function removeSetting(
options: IRemoveSettingParams
): Promise<IRemoveSettingResponse> {
options.httpMethod = "DELETE";
return request(`/settings/${options.id}`, options);
}
21 changes: 11 additions & 10 deletions packages/discussions/src/types.ts
Original file line number Diff line number Diff line change
Expand Up @@ -74,14 +74,15 @@ export {
ICreateChannelNotificationOptOutParams,
IRemoveChannelNotificationOptOutParams,
IRemoveChannelActivityParams,
IDiscussionSetting,
DiscussionSettingType,
ISettings,
IRemoveDiscussionSettingResponse,
ICreateDiscussionSetting,
IUpdateDiscussionSetting,
ICreateDiscussionSettingParams,
IFetchDiscussionSettingParams,
IUpdateDiscussionSettingParams,
IRemoveDiscussionSettingParams,
ISetting,
SettingType,
IContentSettings,
IDiscussionsSettings,
IRemoveSettingResponse,
ICreateSetting,
IUpdateSetting,
ICreateSettingParams,
IFetchSettingParams,
IUpdateSettingParams,
IRemoveSettingParams,
} from "@esri/hub-common";
94 changes: 0 additions & 94 deletions packages/discussions/test/discussion-settings.test.ts

This file was deleted.

111 changes: 111 additions & 0 deletions packages/discussions/test/settings.test.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,111 @@
import * as req from "../src/request";
import {
createSetting,
fetchSetting,
removeSetting,
updateSetting,
} from "../src/settings";
import {
SettingType,
ICreateSetting,
ICreateSettingParams,
IDiscussionsRequestOptions,
IRemoveSettingParams,
IUpdateSetting,
IUpdateSettingParams,
IFetchSettingParams,
} from "../src/types";

describe("settings", () => {
let requestSpy: any;
const response = new Response("ok", { status: 200 });
const baseOpts: IDiscussionsRequestOptions = {
hubApiUrl: "https://hub.arcgis.com/api",
authentication: undefined,
};

beforeEach(() => {
requestSpy = spyOn(req, "request").and.returnValue(
Promise.resolve(response)
);
});

it("createSetting", async () => {
const body: ICreateSetting = {
id: "uuidv4",
type: SettingType.CONTENT,
settings: {
discussions: {
allowedChannelIds: ["aaa"],
allowedLocations: [
{
type: "Point",
coordinates: [-101.25, 37.996162679728116],
},
],
},
},
};
const options: ICreateSettingParams = { ...baseOpts, data: body };

await createSetting(options);

expect(requestSpy.calls.count()).toEqual(1);
const [url, opts] = requestSpy.calls.argsFor(0);
expect(url).toEqual(`/settings`);
expect(opts).toEqual({ ...options, httpMethod: "POST" });
});

it("fetchSetting", async () => {
const id = "uuidv4";
const options: IFetchSettingParams = { ...baseOpts, id };

await fetchSetting(options);

expect(requestSpy.calls.count()).toEqual(1);
const [url, opts] = requestSpy.calls.argsFor(0);
expect(url).toEqual(`/settings/${id}`);
expect(opts).toEqual({ ...options, httpMethod: "GET" });
});

it("updateSetting", async () => {
const id = "uuidv4";
const body: IUpdateSetting = {
settings: {
discussions: {
allowedChannelIds: ["aaa"],
allowedLocations: [
{
type: "Point",
coordinates: [-101.25, 37.996162679728116],
},
],
},
},
};
const options: IUpdateSettingParams = {
...baseOpts,
id,
data: body,
};

await updateSetting(options);

expect(requestSpy.calls.count()).toEqual(1);
const [url, opts] = requestSpy.calls.argsFor(0);
expect(url).toEqual(`/settings/${id}`);
expect(opts).toEqual({ ...options, httpMethod: "PATCH" });
});

it("removeSetting", async () => {
const id = "uuidv4";
const options: IRemoveSettingParams = { ...baseOpts, id };

await removeSetting(options);

expect(requestSpy.calls.count()).toEqual(1);
const [url, opts] = requestSpy.calls.argsFor(0);
expect(url).toEqual(`/settings/${id}`);
expect(opts).toEqual({ ...options, httpMethod: "DELETE" });
});
});

0 comments on commit 03268e6

Please sign in to comment.