Open
Description
When using beforeSave trigger on an object that has a pointer to another object like so:
struct Test: ParseObject {
//: These are required for `ParseObject`.
var originalData: Data?
var objectId: String?
var createdAt: Date?
var updatedAt: Date?
var ACL: ParseACL?
var name: String?
var test1: Test1?
}
struct Test1: ParseObject {
//: These are required for `ParseObject`.
var originalData: Data?
var objectId: String?
var createdAt: Date?
var updatedAt: Date?
var ACL: ParseACL?
var description: String?
var test2: Test2?
var test3: Test3?
}
Doing nothing but just having the beforeSave trigger on produces a schema mismatch error where it expects a Pointer to the sub-object.
func beforeSaveTest(req: Request) async throws -> HookResponse<Test> {
if let error: HookResponse<Test> = checkHeaders(req) { return error }
var parseRequest = try req.content.decode(HookTrigObjReq<User, Test>.self)
let options = try parseRequest.options(req)
if parseRequest.user != nil {
parseRequest = try await parseRequest.hydrateUser(options: options, request: req)
}
guard let object = parseRequest.object else {
return ParseHookResponse(error: .init(code: .missingObjectId,
message: "Object not sent in request."))
}
return HookResponse(success: object)
}
I encountered this as I was trying to save a complex object with multiple pointers and tested with these Test objects getting the same result.
error: ParseError code=111 error=schema mismatch for Test.test1; expected Pointer<Test1> but got Object