Error Argument labels '(content:)' do not match any available overloads.using postgresql while the rest in vapor to get json representable.The syntax for model controller is as followed, meaning for content in database
import Foundation
import Vapor
import FluentProvider
import PostgreSQLProvider
final class dataPointStorage: Model, JSONRepresentable, NodeRepresentable {
// var _data: dataPointProtocol?
// var _data:[dataPointProtocol] = []
let storage = Storage()
var id: Node?
var name:String
var displayName:String
var content:String
// let temp = dataPointStorage()
init(node:Node ,content: String?, displayName:String, name:String) {
self.id = nil
self.displayName = displayName
self.name = name
}
static let idKey = "id"
static let contentKey = "content"
func forDataBase() {
let array:[berichtDataPoint] = [intDataPoint(), boolDataPoint(), doubleDataPoint()]
let _ = array[0] as! intDataPoint
let _ = array[1] as! doubleDataPoint
for point in array {
switch point {
case is intDataPoint:
print("int")
case is doubleDataPoint:
print("double")
case is boolDataPoint:
print("bool")
default:
print("error")
}
}
}
func makeRow() throws -> Row {
var row = Row()
try row.set("id", id)
try row.set("displayName", displayName)
try row.set("name", name)
return row
}
init(row: Row) throws {
id = try row.get("id")
displayName = try row.get("displayName")
name = try row.get("name")
}
func makeNode(context: Context) throws -> Node {
return try Node(node: [
"id": id,
"displayName": displayName,
"name": name
])
}
}
extension dataPointStorage: Preparation {
static func prepare(_ database: Database) throws {
try database.create(self) { dataPointStorage in
dataPointStorage.id()
dataPointStorage.string("displayName")
dataPointStorage.string("name")
dataPointStorage.string("content")
}
}
static func revert(_ database: Database) throws {
try database.delete(dataPointStorage)
}
}
extension dataPointStorage: JSONConvertible {
convenience init(json: JSON) throws {
try self.init(
error here¶¶¶ content: json.get(dataPointStorage.contentKey)¶¶¶¶ error
)
}
func makeJSON() throws -> JSON {
var json = JSON()
try json.set("id", id)
try json.set("name", name)
try json.set("displaName", displayName)
try json.set("content", Content)
return json
}
}
I am following the general context of rest in vapor as JSON representable but didn't get the reason of this simple error to solve.
It looks like you are trying to call this init?
init(node:Node ,content: String?, displayName:String, name:String)
If that is the case, you need to pass in the rest of the arguments because there are no default values available for them:
convenience init(json: JSON) throws {
try self.init(
node: <VALUE>,
content: json.get(dataPointStorage.contentKey),
displayName: <VALUE>,
name: <VALULE>
)
}
That will fix your problem.