'Vapor - fluent, save object to PostgreSQL

Could someone give me example please, how to save Object to DB? For example, I am using a GET request which triggers the HTML parser and returns user a model. How I can save that model to my DB?

func parseHTML() -> ModelObject{
    
}

app.get("getData") { req -> [ModelObject] in
    let controller = TestController()
    let data = controller.parseHTML()
            
    //Save data to DB
    return data
}


Solution 1:[1]

The standard way of doing this is to add these lines to create the record in the database:

app.get("getData") { req -> [ModelObject] in
    let controller = TestController()
    let data = controller.parseHTML()

    // update fields in the controller instances with values from your decoded form
    controller.field = data.field

    return controller.create(on: database).flatMap { _ in
        //return controller
        return data
    }
}

createreturns a future Void, but the instance of the model in controller has been updated to include the primary key (assuming it is auto-generated) so you can just return this, although I have left your original return of the decoded form data.

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1 Nick