55 lines
1.3 KiB
JavaScript
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; |