grocery-app/frontend/src/api/households.js
Nico 77ae5be445
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
refactor
2026-02-22 01:27:03 -08:00

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)}`);