services_MemberService.js
import { debug } from "@/utils/logging";
import ax from "./RequestService";
/**
* Service for managing members in a team or season.
* @class MemberService
*/
class MemberService {
/**
* Create a new member.
* @param {string} name - Full name of the member
* @param {string} nickname - Nickname of the member
* @param {string} abbreviation - Abbreviation for the member
* @param {string} seasonTeamId - ID of the season team the member belongs to
* @returns {Promise<Object>} Created member
*/
create(name, nickname, abbreviation, seasonTeamId) {
debug("Creating new member", {
name,
nickname,
abbreviation,
seasonTeamId,
});
return ax
.post("/member", { name, nickname, abbreviation, seasonTeamId })
.then((res) => {
debug("Successfully created member");
return res.data;
});
}
/**
* Update a member's data.
* @param {string} MemberId - ID of the member to update
* @param {Object} data - Data to update the member with
* @returns {Promise<Object>} Updated member
*/
update(MemberId, data) {
debug("Updating member", { MemberId, data });
return ax.put(`/member/${MemberId}`, data).then((res) => {
debug("Successfully updated member");
return res.data;
});
}
/**
* Remove a member by their ID.
* @param {string} MemberId - ID of the member to remove
* @returns {Promise<Object>} Response data
*/
remove(MemberId) {
debug("Deleting member", MemberId);
return ax.delete(`/member/${MemberId}`).then((res) => {
debug("Successfully removed member");
return res.data;
});
}
}
export default new MemberService();