from pypos.core.base_controller import BaseController
from pypos.modules.auth.services.change_password_service import ChangePasswordService


class ChangePasswordController(BaseController):
    def __init__(self, view, user_info, service=None):
        super().__init__()
        self.view = view
        self.user_info = user_info or {}
        self.service = service or ChangePasswordService()

    def process_change_password(self, old_password, new_password, confirm_password):
        user_id = self.user_info.get("id")
        ok, message = self.service.change_password(
            user_id=user_id,
            old_password=old_password,
            new_password=new_password,
            confirm_password=confirm_password,
        )
        if not ok:
            self.show_warning("Gagal", message, view=self.view)
            return False
        self.show_info("Sukses", message, view=self.view)
        return True

