class AuthD::Request IPC::JSON.message EditContacts, 16 do property email : String? = nil property phone : String? = nil def initialize(@email, @phone) end def handle(authd : AuthD::Service, fd : Int32) logged_user = authd.get_logged_user? fd return Response::Error.new "you must be logged" if logged_user.nil? # Get the full AuthD::User instance, not just the public view. user = authd.user? logged_user.uid return Response::Error.new "unknown user" if user.nil? if email = @email # FIXME: This *should* require checking the new mail, with # a new activation key and everything else. user.contact.email = email end if phone = @phone user.contact.phone = phone end authd.users_per_uid.update user Response::UserEdited.new user.uid end end AuthD.requests << EditContacts IPC::JSON.message GetContacts, 18 do def initialize() end def handle(authd : AuthD::Service, fd : Int32) logged_user = authd.get_logged_user? fd return Response::Error.new "you must be logged" if logged_user.nil? # Get the full AuthD::User instance, not just the public view. user = authd.user? logged_user.uid return Response::Error.new "unknown user" if user.nil? _c = user.contact Response::Contacts.new user.uid, _c.email, _c.phone end end AuthD.requests << GetContacts end