UNPKG

synapse-react-client

Version:

[![npm version](https://badge.fury.io/js/synapse-react-client.svg)](https://badge.fury.io/js/synapse-react-client) [![code style: prettier](https://img.shields.io/badge/code_style-prettier-ff69b4.svg?style=flat-square)](https://github.com/prettier/prettie

212 lines (211 loc) 5.5 kB
import { delay as g } from "../../../synapse-client/HttpClient.js"; import { uniqueId as l } from "lodash-es"; import { http as m, HttpResponse as a } from "msw"; import { mockTeams as h, mockTeamMembershipStatuses as S, mockTeamMembershipInvitations as b } from "../../team/mockTeam.js"; import { MOCK_USER_ID as i } from "../../user/mock_user_profile.js"; import I from "../util/BasicMockedCrudService.js"; const u = new I({ initialData: h, idField: "id", autoGenerateId: !0 }), p = new I({ initialData: S }); function y(e, s) { return p.getOneByPredicate( (t) => t.teamId === e && t.userId === s ); } const f = [ ...b ]; function T(e) { return m.get(`${e}/repo/v1/team/:teamId`, ({ params: s }) => { const t = u.getOneById(s.teamId); if (t) return a.json(t, { status: 200 }); const r = { concreteType: "org.sagebionetworks.repo.model.ErrorResponse", reason: `Team id: '${s.teamId}' does not exist` }; return a.json(r, { status: 404 }); }); } function v(e) { return m.post( `${e}/repo/v1/teamList`, async ({ request: s }) => { const t = await s.json(), r = []; for (const o of t.list) { const d = u.getOneById(o.toString()); if (!d) { const c = { concreteType: "org.sagebionetworks.repo.model.ErrorResponse", reason: `Team with id ${o} not found` }; return a.json(c, { status: 404 }); } r.push(d); } const n = { concreteType: "org.sagebionetworks.repo.model.Team", list: r }; return a.json(n, { status: 200 }); } ); } function R(e) { return m.post( `${e}/repo/v1/team`, async ({ request: s }) => { const t = await s.json(), r = u.create({ ...t, createdBy: String(i), createdOn: (/* @__PURE__ */ new Date()).toISOString(), etag: "etag", modifiedBy: String(i), modifiedOn: (/* @__PURE__ */ new Date()).toISOString() }); return p.create({ teamId: r.id, userId: String(i), isMember: !0, hasOpenInvitation: !1, hasOpenRequest: !1, canJoin: !1, membershipApprovalRequired: !1, hasUnmetAccessRequirement: !1, canSendEmail: !0 }), await g(250), a.json(r, { status: 201 }); } ); } function q(e) { return m.get( `${e}/repo/v1/team/:teamId/member/:memberId/membershipStatus`, ({ params: s }) => { const t = s.teamId, r = s.memberId; let n, o; return u.getOneById(t) ? (n = y(t, r) ?? { teamId: t, userId: r, isMember: !1, hasOpenInvitation: !1, // TODO hasOpenRequest: !1, // TODO canJoin: !0, // TODO membershipApprovalRequired: !1, // TODO hasUnmetAccessRequirement: !1, // TODO canSendEmail: !1 // TODO }, o = 200) : (n = { concreteType: "org.sagebionetworks.repo.model.ErrorResponse", reason: `getTeamMembershipStatusHandler could not locate a team with ID ${t}` }, o = 404), a.json(n, { status: o }); } ); } function w(e) { return m.put( `${e}/repo/v1/team/:teamId/member/:memberId`, ({ params: s }) => { const t = s.teamId, r = s.memberId; let n, o; if (!u.getOneById(t)) n = { concreteType: "org.sagebionetworks.repo.model.ErrorResponse", reason: `getTeamMembershipStatusHandler could not locate a team with ID ${t}` }, o = 404; else { const c = { teamId: t, userId: r, isMember: !0, hasOpenInvitation: !1, // TODO hasOpenRequest: !1, // TODO canJoin: !0, // TODO membershipApprovalRequired: !1, // TODO hasUnmetAccessRequirement: !1, // TODO canSendEmail: !1 // TODO }; p.create(c), n = "", o = 201; } return a.json(n, { status: o }); } ); } function B(e) { return m.post( `${e}/repo/v1/membershipRequest`, async ({ request: s }) => { const r = { ...await s.json(), id: l(), createdOn: (/* @__PURE__ */ new Date()).toISOString(), createdBy: String(i) }; return a.json(r, { status: 201 }); } ); } function M(e) { return m.post( `${e}/repo/v1/membershipInvitation`, async ({ request: s }) => { const r = { ...await s.json(), id: l(), createdOn: (/* @__PURE__ */ new Date()).toISOString(), createdBy: String(i) }; return f.push(r), a.json(r, { status: 201 }); } ); } function O(e) { return m.get( `${e}/repo/v1/user/:userId/openInvitation`, ({ params: s }) => { const t = f.filter((n) => String(n.inviteeId) === String(s.userId)), r = { results: t, totalNumberOfResults: t.length }; return a.json(r, { status: 200 }); } ); } function C(e) { return [ T(e), v(e), R(e), q(e), w(e), B(e), M(e), O(e) ]; } export { C as default, R as getCreateTeamHandler, M as getCreateTeamMembershipInvitationHandler, B as getCreateTeamMembershipRequestHandler, O as getOpenInvitationsRequestHandler, T as getTeamHandler, v as getTeamListHandler, q as getTeamMembershipStatusHandler, w as getUpdateTeamMembershipStatusHandler }; //# sourceMappingURL=teamHandlers.js.map