synapse-react-client
Version:
[](https://badge.fury.io/js/synapse-react-client) [](https://github.com/prettier/prettie
212 lines (211 loc) • 5.5 kB
JavaScript
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