 import Leaf
 
 public protocol AdminPanelUserControllerType {
-    func renderList(_ req: Request) throws -> Future<View>
+    func renderList(_ req: Request) throws -> Future<Response>
     func renderCreate(_ req: Request) throws -> Future<Response>
     func create(_ req: Request) throws -> Future<Response>
-    func renderEditMe(_ req: Request) throws -> Future<View>
+    func renderEditMe(_ req: Request) throws -> Future<Response>
     func editMe(_ req: Request) throws -> Future<Response>
-    func renderEditUser(_ req: Request) throws -> Future<View>
+    func renderEditUser(_ req: Request) throws -> Future<Response>
     func editUser(_ req: Request) throws -> Future<Response>
     func delete(_ req: Request) throws -> Future<Response>
 }


    // MARK: List

    public func renderList(_ req: Request) throws -> Future<View> {
        let config: AdminPanelConfig<U> = try req.make()
        return U.query(on: req).all()
            .flatMap(to: View.self) { users in
                return try req.privateContainer
                    .make(LeafRenderer.self)
                    .render(config.views.adminPanelUser.index, MultipleUsers(users: users))
        }
    }


                try req.privateContainer
                    .make(LeafRenderer.self)
                    .render(config.views.adminPanelUser.editAndCreate, SingleUser(user: user))
                    .encode(
                        status: .ok,
                        for: req
                    )
            }
    }

