va-tracker-middleware/src/repository/vaClient.repository.js

55 lines
1.3 KiB
JavaScript

import { ClientModel } from "../models/vaModel.js";
class VaClientRepository {
async create(data) {
try {
const newClient = new ClientModel({ ...data });
const response = await newClient.save();
return response;
} catch (error) {
throw error;
}
}
async findByEmail(email) {
try {
const response = await ClientModel.findOne({ "userDetails.email": email.toLowerCase() });
return response;
} catch (error) {
throw error;
}
}
async findById(id) {
try {
const response = await ClientModel.findById(id);
return response;
} catch (error) {
throw error;
}
}
async update(id, data) {
try {
const response = await ClientModel.findByIdAndUpdate(
id,
{ $set: { ...data } },
{ new: true }
);
return response;
} catch (error) {
throw error;
}
}
async delete(id) {
try {
const response = await ClientModel.findByIdAndDelete(id);
return response;
} catch (error) {
throw error;
}
}
}
export default VaClientRepository;