All checks were successful
Build & Deploy Costco Grocery List / build (push) Successful in 1m10s
Build & Deploy Costco Grocery List / verify-images (push) Successful in 3s
Build & Deploy Costco Grocery List / deploy (push) Successful in 11s
Build & Deploy Costco Grocery List / notify (push) Successful in 1s
94 lines
2.6 KiB
JavaScript
94 lines
2.6 KiB
JavaScript
import api from "./axios";
|
|
|
|
/**
|
|
* Get all households for the current user
|
|
*/
|
|
export const getUserHouseholds = () => api.get("/households");
|
|
|
|
/**
|
|
* Get details of a specific household
|
|
*/
|
|
export const getHousehold = (householdId) => api.get(`/households/${householdId}`);
|
|
|
|
/**
|
|
* Create a new household
|
|
*/
|
|
export const createHousehold = (name) => api.post("/households", { name });
|
|
|
|
/**
|
|
* Update household name
|
|
*/
|
|
export const updateHousehold = (householdId, name) =>
|
|
api.patch(`/households/${householdId}`, { name });
|
|
|
|
/**
|
|
* Delete a household
|
|
*/
|
|
export const deleteHousehold = (householdId) =>
|
|
api.delete(`/households/${householdId}`);
|
|
|
|
/**
|
|
* Refresh household invite code
|
|
*/
|
|
export const refreshInviteCode = (householdId) =>
|
|
api.post(`/households/${householdId}/invite/refresh`);
|
|
|
|
/**
|
|
* Join a household using invite code
|
|
*/
|
|
export const joinHousehold = (inviteCode) =>
|
|
api.post(`/households/join/${inviteCode}`);
|
|
|
|
/**
|
|
* Get household members
|
|
*/
|
|
export const getHouseholdMembers = (householdId) =>
|
|
api.get(`/households/${householdId}/members`);
|
|
|
|
/**
|
|
* Update member role
|
|
*/
|
|
export const updateMemberRole = (householdId, userId, role) =>
|
|
api.patch(`/households/${householdId}/members/${userId}/role`, { role });
|
|
|
|
/**
|
|
* Remove member from household
|
|
*/
|
|
export const removeMember = (householdId, userId) =>
|
|
api.delete(`/households/${householdId}/members/${userId}`);
|
|
|
|
function groupHeaders(groupId) {
|
|
return {
|
|
headers: {
|
|
"x-group-id": String(groupId),
|
|
},
|
|
};
|
|
}
|
|
|
|
export const getGroupInviteLinks = (groupId) =>
|
|
api.get("/api/groups/invites", groupHeaders(groupId));
|
|
|
|
export const createGroupInviteLink = (groupId, payload) =>
|
|
api.post("/api/groups/invites", payload, groupHeaders(groupId));
|
|
|
|
export const revokeGroupInviteLink = (groupId, linkId) =>
|
|
api.post("/api/groups/invites/revoke", { linkId }, groupHeaders(groupId));
|
|
|
|
export const reviveGroupInviteLink = (groupId, linkId, ttlDays) =>
|
|
api.post("/api/groups/invites/revive", { linkId, ttlDays }, groupHeaders(groupId));
|
|
|
|
export const deleteGroupInviteLink = (groupId, linkId) =>
|
|
api.post("/api/groups/invites/delete", { linkId }, groupHeaders(groupId));
|
|
|
|
export const getGroupJoinPolicy = (groupId) =>
|
|
api.get("/api/groups/join-policy", groupHeaders(groupId));
|
|
|
|
export const setGroupJoinPolicy = (groupId, joinPolicy) =>
|
|
api.post("/api/groups/join-policy", { joinPolicy }, groupHeaders(groupId));
|
|
|
|
export const getInviteLinkSummary = (token) =>
|
|
api.get(`/api/invite-links/${encodeURIComponent(token)}`);
|
|
|
|
export const acceptInviteLink = (token) =>
|
|
api.post(`/api/invite-links/${encodeURIComponent(token)}`);
|