import { Core } from "@strapi/strapi";
import { Address } from "src/api/address/common/types/Address";
import { User } from "src/extensions/users-permissions/common/types/user";
export class UserService {
constructor(private readonly strapi: Core.Strapi) {}
async get(userId: number): Promise<User> {
return await this.strapi.db.query('plugin::users-permissions.user').findOne({
where: { id: userId },
populate: {
addresses: {
populate: {
country: true,
state: true,
}
},
projects: true,
orders: true
}
});
}
getDefaultShippingAddress(user: User): Address | null {
return user.addresses.filter(address => address.isDefaultShipping)[0] || null;
}
getDefaultBillingAddress(user: User): Address | null {
return user.addresses.filter(address => address.isDefaultBilling)[0] || null;
}
}