diff --git a/src/Umbraco.Web.UI.Client/src/mocks/browser-handlers.ts b/src/Umbraco.Web.UI.Client/src/mocks/browser-handlers.ts index 32e57dfdb8..c8bda9e981 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/browser-handlers.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/browser-handlers.ts @@ -6,7 +6,7 @@ import * as manifestsHandlers from './handlers/manifests.handlers.js'; import { handlers as publishedStatusHandlers } from './handlers/published-status.handlers.js'; import * as serverHandlers from './handlers/server.handlers.js'; import { handlers as upgradeHandlers } from './handlers/upgrade.handlers.js'; -import { handlers as userHandlers } from './handlers/user.handlers.js'; +import { handlers as userHandlers } from './handlers/user/index.js'; import { handlers as telemetryHandlers } from './handlers/telemetry.handlers.js'; import { handlers as userGroupsHandlers } from './handlers/user-group/index.js'; import { handlers as examineManagementHandlers } from './handlers/examine-management.handlers.js'; diff --git a/src/Umbraco.Web.UI.Client/src/mocks/handlers/user.handlers.ts b/src/Umbraco.Web.UI.Client/src/mocks/handlers/user.handlers.ts deleted file mode 100644 index 175f439d69..0000000000 --- a/src/Umbraco.Web.UI.Client/src/mocks/handlers/user.handlers.ts +++ /dev/null @@ -1,73 +0,0 @@ -const { rest } = window.MockServiceWorker; - -import { umbUsersData } from '../data/user.data.js'; -import { umbracoPath } from '@umbraco-cms/backoffice/utils'; - -const slug = '/user'; - -export const handlers = [ - rest.get(umbracoPath(`${slug}/item`), (req, res, ctx) => { - const ids = req.url.searchParams.getAll('id'); - if (!ids) return; - const items = umbUsersData.getItems(ids); - - return res(ctx.status(200), ctx.json(items)); - }), - - rest.post(umbracoPath(`${slug}/set-user-groups`), async (req, res, ctx) => { - const data = await req.json(); - if (!data) return; - - umbUsersData.setUserGroups(data); - - return res(ctx.status(200)); - }), - - rest.get(umbracoPath(`${slug}/filter`), (req, res, ctx) => { - //TODO: Implementer filter - const response = umbUsersData.getAll(); - - return res(ctx.status(200), ctx.json(response)); - }), - - rest.get(umbracoPath(`${slug}/current`), (_req, res, ctx) => { - const loggedInUser = umbUsersData.getCurrentUser(); - return res(ctx.status(200), ctx.json(loggedInUser)); - }), - - rest.get(umbracoPath(`${slug}/sections`), (_req, res, ctx) => { - return res( - ctx.status(200), - ctx.json({ - sections: ['Umb.Section.Content', 'Umb.Section.Media', 'Umb.Section.Settings', 'My.Section.Custom'], - }), - ); - }), - - rest.get(umbracoPath(`${slug}`), (req, res, ctx) => { - const response = umbUsersData.getAll(); - - return res(ctx.status(200), ctx.json(response)); - }), - - rest.get(umbracoPath(`${slug}/:id`), (req, res, ctx) => { - const id = req.params.id as string; - if (!id) return; - const user = umbUsersData.getById(id); - - if (!user) return res(ctx.status(404)); - - return res(ctx.status(200), ctx.json(user)); - }), - - rest.put(umbracoPath(`${slug}/:id`), async (req, res, ctx) => { - const id = req.params.id as string; - if (!id) return; - const data = await req.json(); - if (!data) return; - - const saved = umbUsersData.save(id, data); - - return res(ctx.status(200), ctx.json(saved)); - }), -]; diff --git a/src/Umbraco.Web.UI.Client/src/mocks/handlers/user/current.handlers.ts b/src/Umbraco.Web.UI.Client/src/mocks/handlers/user/current.handlers.ts new file mode 100644 index 0000000000..62dca40553 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/mocks/handlers/user/current.handlers.ts @@ -0,0 +1,11 @@ +const { rest } = window.MockServiceWorker; +import { umbUsersData } from '../../data/user.data.js'; +import { slug } from './slug.js'; +import { umbracoPath } from '@umbraco-cms/backoffice/utils'; + +export const handlers = [ + rest.get(umbracoPath(`${slug}/current`), (_req, res, ctx) => { + const loggedInUser = umbUsersData.getCurrentUser(); + return res(ctx.status(200), ctx.json(loggedInUser)); + }), +]; diff --git a/src/Umbraco.Web.UI.Client/src/mocks/handlers/user/detail.handlers.ts b/src/Umbraco.Web.UI.Client/src/mocks/handlers/user/detail.handlers.ts new file mode 100644 index 0000000000..9684db5990 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/mocks/handlers/user/detail.handlers.ts @@ -0,0 +1,56 @@ +const { rest } = window.MockServiceWorker; +import { umbUsersData } from '../../data/user.data.js'; +import { slug } from './slug.js'; +import { umbracoPath } from '@umbraco-cms/backoffice/utils'; + +export const handlers = [ + rest.post(umbracoPath(`${slug}`), async (req, res, ctx) => { + const data = await req.json(); + if (!data) return; + + umbUsersData.insert(data); + + return res(ctx.status(200)); + }), + + rest.get(umbracoPath(`${slug}`), (req, res, ctx) => { + const response = umbUsersData.getAll(); + return res(ctx.status(200), ctx.json(response)); + }), + + rest.get(umbracoPath(`${slug}/filter`), (req, res, ctx) => { + //TODO: Implementer filter + const response = umbUsersData.getAll(); + + return res(ctx.status(200), ctx.json(response)); + }), + + rest.get(umbracoPath(`${slug}/:id`), (req, res, ctx) => { + const id = req.params.id as string; + if (!id) return; + + const item = umbUsersData.getById(id); + + return res(ctx.status(200), ctx.json(item)); + }), + + rest.put(umbracoPath(`${slug}/:id`), async (req, res, ctx) => { + const id = req.params.id as string; + if (!id) return; + const data = await req.json(); + if (!data) return; + + umbUsersData.save(id, data); + + return res(ctx.status(200)); + }), + + rest.delete(umbracoPath(`${slug}/:id`), async (req, res, ctx) => { + const id = req.params.id as string; + if (!id) return; + + umbUsersData.delete([id]); + + return res(ctx.status(200)); + }), +]; diff --git a/src/Umbraco.Web.UI.Client/src/mocks/handlers/user/index.ts b/src/Umbraco.Web.UI.Client/src/mocks/handlers/user/index.ts new file mode 100644 index 0000000000..bbf0edff90 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/mocks/handlers/user/index.ts @@ -0,0 +1,6 @@ +import { handlers as detailHandlers } from './detail.handlers.js'; +import { handlers as itemHandlers } from './item.handlers.js'; +import { handlers as currentHandlers } from './current.handlers.js'; +import { handlers as setUserGroupsHandlers } from './set-user-groups.handlers.js'; + +export const handlers = [...itemHandlers, ...currentHandlers, ...setUserGroupsHandlers, ...detailHandlers]; diff --git a/src/Umbraco.Web.UI.Client/src/mocks/handlers/user/item.handlers.ts b/src/Umbraco.Web.UI.Client/src/mocks/handlers/user/item.handlers.ts new file mode 100644 index 0000000000..54c259b42e --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/mocks/handlers/user/item.handlers.ts @@ -0,0 +1,13 @@ +const { rest } = window.MockServiceWorker; +import { umbUsersData } from '../../data/user.data.js'; +import { slug } from './slug.js'; +import { umbracoPath } from '@umbraco-cms/backoffice/utils'; + +export const handlers = [ + rest.get(umbracoPath(`${slug}/item`), (req, res, ctx) => { + const ids = req.url.searchParams.getAll('id'); + if (!ids) return; + const items = umbUsersData.getItems(ids); + return res(ctx.status(200), ctx.json(items)); + }), +]; diff --git a/src/Umbraco.Web.UI.Client/src/mocks/handlers/user/set-user-groups.handlers.ts b/src/Umbraco.Web.UI.Client/src/mocks/handlers/user/set-user-groups.handlers.ts new file mode 100644 index 0000000000..e98e084ab4 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/mocks/handlers/user/set-user-groups.handlers.ts @@ -0,0 +1,15 @@ +const { rest } = window.MockServiceWorker; +import { umbUsersData } from '../../data/user.data.js'; +import { slug } from './slug.js'; +import { umbracoPath } from '@umbraco-cms/backoffice/utils'; + +export const handlers = [ + rest.post(umbracoPath(`${slug}/set-user-groups`), async (req, res, ctx) => { + const data = await req.json(); + if (!data) return; + + umbUsersData.setUserGroups(data); + + return res(ctx.status(200)); + }), +]; diff --git a/src/Umbraco.Web.UI.Client/src/mocks/handlers/user/slug.ts b/src/Umbraco.Web.UI.Client/src/mocks/handlers/user/slug.ts new file mode 100644 index 0000000000..3fe8da435e --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/mocks/handlers/user/slug.ts @@ -0,0 +1 @@ +export const slug = '/user';