Skip to content

Commit

Permalink
Merge pull request #63 from ThusharaX/fix/TopSpeakerServ
Browse files Browse the repository at this point in the history
Fixed the bugs in Top Speaker Services
  • Loading branch information
senuravihanjayadeva committed Nov 30, 2021
2 parents 1de0fb0 + f739f06 commit 9f2af9e
Showing 1 changed file with 87 additions and 58 deletions.
145 changes: 87 additions & 58 deletions src/api/services/TopSpeaker.service.ts
Original file line number Diff line number Diff line change
Expand Up @@ -5,87 +5,116 @@ import TopSpeakerModel from "../models/TopSpeaker.model";
* @todo create @function insertTopSpeaker to save a speaker in the database
*/
export const insertTopSpeaker = async (topSpeakerData: DocumentDefinition<ITopSpeaker>) => {
return await TopSpeakerModel.create(topSpeakerData)
.then(async (topSpeaker) => {
return topSpeaker;
})
.catch((error) => {
throw new Error(error.message);
});
};
return await TopSpeakerModel.create(topSpeakerData)
.then((topSpeaker) => {
return topSpeaker;
})
.catch((error) => {
throw new Error(error.message);
});
};

/**
* @todo create @function getTopSpeaker to fetch a TopSpeaker in the system
* @param topSpeakerId @type string
*/
export const getTopSpeaker = async (topSpeakerId: string) => {
return await TopSpeakerModel.findById(topSpeakerId)
.then(async (topSpeaker) => {
return await TopSpeakerModel.findById(topSpeakerId)
.then((topSpeaker) => {
if (topSpeaker && topSpeaker.deletedAt) {
return topSpeaker;
})
.catch((error) => {
throw new Error(error.message);
});
};
} else {
throw new Error("Speaker is not found");
}
})
.catch((error) => {
throw new Error(error.message);
});
};

/**
* @todo create @function getTopSpeakers to fetch all the TopSpeakers in the system
*/
export const getTopSpeakers = async () => {
return await TopSpeakerModel.find()
.then(async (topSpeaker) => {
return topSpeaker;
})
.catch((error) => {
throw new Error(error.message);
});
};
return await TopSpeakerModel.aggregate([{ $match: { deletedAt: { $eq: null } } }])
.then((topSpeakers) => {
return topSpeakers;
})
.catch((error) => {
throw new Error(error.message);
});
};

/**
* @todo create @function updateTopSpeaker to update a TopSpeaker in the system
* @param topSpeakerId @type string
* @param updateData @type DocumentDefinition<ITopSpeaker>
*/
export const updateTopSpeaker = async (
topSpeakerId: string,
updateData: DocumentDefinition<ITopSpeaker>
) => {
return await TopSpeakerModel.findById(topSpeakerId)
.then(async (topSpeakerDetails) => {
if (topSpeakerDetails) {
topSpeakerDetails.title = updateData.title;
topSpeakerDetails.description = updateData.description;
topSpeakerDetails.imageUrl = updateData.imageUrl;
topSpeakerDetails.socialMediaURLs.facebook = updateData.socialMediaURLs.facebook;
topSpeakerDetails.socialMediaURLs.instagram = updateData.socialMediaURLs.instagram;
topSpeakerDetails.socialMediaURLs.linkedIn = updateData.socialMediaURLs.linkedIn;
topSpeakerDetails.socialMediaURLs.twitter = updateData.socialMediaURLs.twitter;
topSpeakerDetails.socialMediaURLs.web = updateData.socialMediaURLs.web;
return await topSpeakerDetails.save();
} else {
return null;
topSpeakerId: string,
updateData: DocumentDefinition<ITopSpeaker>
) => {
return await TopSpeakerModel.findById(topSpeakerId)
.then(async (topSpeakerDetails) => {
if (topSpeakerDetails) {

if (updateData.title) {
topSpeakerDetails.title = updateData.title;
}

if (updateData.description) {
topSpeakerDetails.description = updateData.description;
}
})
.catch((error) => {
throw new Error(error.message);
});
};

if (updateData.imageUrl) {
topSpeakerDetails.imageUrl = updateData.imageUrl;
}

if (updateData.socialMediaURLs && updateData.socialMediaURLs.facebook) {
topSpeakerDetails.socialMediaURLs.facebook = updateData.socialMediaURLs.facebook;
}

if (updateData.socialMediaURLs && updateData.socialMediaURLs.instagram) {
topSpeakerDetails.socialMediaURLs.instagram = updateData.socialMediaURLs.instagram;
}

if (updateData.socialMediaURLs && updateData.socialMediaURLs.linkedIn) {
topSpeakerDetails.socialMediaURLs.linkedIn = updateData.socialMediaURLs.linkedIn;
}

if (updateData.socialMediaURLs && updateData.socialMediaURLs.twitter) {
topSpeakerDetails.socialMediaURLs.twitter = updateData.socialMediaURLs.twitter;
}

if (updateData.socialMediaURLs && updateData.socialMediaURLs.web) {
topSpeakerDetails.socialMediaURLs.web = updateData.socialMediaURLs.web;
}

return await topSpeakerDetails.save();
} else {
return null;
}
})
.catch((error) => {
throw new Error(error.message);
});
};

/**
* @todo create @function deleteTopSpeaker to delete a past event
* @param topSpeakerId @type string
*/
export const deleteTopSpeaker = async (topSpeakerId: string) => {
return await TopSpeakerModel.findById(topSpeakerId)
.then(async (topSpeakerDetails) => {
if (topSpeakerDetails) {
topSpeakerDetails.deletedAt = new Date();
return await topSpeakerDetails.save();
} else {
return null;
}
})
.catch((error) => {
throw new Error(error.message);
});
};
return await TopSpeakerModel.findById(topSpeakerId)
.then(async (topSpeakerDetails) => {
if (topSpeakerDetails) {
topSpeakerDetails.deletedAt = new Date();
return await topSpeakerDetails.save();
} else {
return null;
}
})
.catch((error) => {
throw new Error(error.message);
});
};

0 comments on commit 9f2af9e

Please sign in to comment.