-1

Sorry for the ambiguous title. In order for me to save a specific object I need to query it, which returns a collection. How do I save that collection after I've edited it?

Any help appreciated.

    func joinGroup() {

    var group = Groups()


    backendless.initApp(APP_ID, secret:SECRET_KEY, version:VERSION_NUM)
    self.backendless.userService.getPersistentUser()
    let user = self.backendless.userService.currentUser

    let whereClause = "UsersInGroup.objectId = '\(user.objectId)'"
    let dataQuery = BackendlessDataQuery()
    dataQuery.whereClause = whereClause

    var error: Fault?
    var dataStore = self.backendless.persistenceService.find(Groups.ofClass(),
        dataQuery:dataQuery) as BackendlessCollection

    for joiningroup in dataStore.data as! [Groups] {

       joiningroup.UsersInGroup.append(user)



    }

Here's how objects are saved

func createGroup() {


    let groups = self.backendless.persistenceService.of(Groups().ofClass())

    backendless.initApp(APP_ID, secret:SECRET_KEY, version:VERSION_NUM)
    self.backendless.userService.getPersistentUser()
    let user = self.backendless.userService.currentUser

    var newGroup = Groups()
    newGroup.groupName = "FromClient"
    newGroup.ownerId = user.objectId
    newGroup.UsersInGroup.append(user)

    var error: Fault?
    newGroup = groups.save(newGroup) as! Groups
    if error == nil {
        print("Created group: \(newGroup.groupName)")
    }
    else {
        print("Server reported an error: \(error)")
    }



}

2 Answers2

0

You can just save a parent object (provided you have loaded the child collection before), and the child collection will automatically be saved with your new object added to it.

Scadge
  • 9,380
  • 3
  • 30
  • 39
0
func joinGroup() {

        self.backendless.userService.getPersistentUser()
        let user = self.backendless.userService.currentUser


            let dataStore = backendless.data.of(Groups.ofClass())
         dataStore.findID(
                        "A772D4AB-BCB6-1C2E-FFE9-C436C65E3200",
                        response: { (result: AnyObject!) -> Void in
                            let foundContact = result as! Groups
                            let groupJoining = foundContact
                            groupJoining.UsersInGroup.append(user)
                            dataStore.save(
                groupJoining,
                response: { (result: AnyObject!) -> Void in
                    let savedContact = result as! Groups
                    print("Contact has been saved: \(savedContact.objectId)")

                },
                error: { (fault: Fault!) -> Void in
                    print("Server reported an error (1): \(fault)")
            })


                            print("Contact has been found: \(foundContact.objectId)")
                        },
                        error: { (fault: Fault!) -> Void in
                            print("Server reported an error (2): \(fault)")
                    })




    }