Changeset 17590

Show
Ignore:
Timestamp:
09/18/08 18:53:22 (1 year ago)
Author:
piotras
Message:

midgard_object_delete: set metadata properties (deleted, revised, revision, revisor)

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • branches/branch-1-9/midgard/core/midgard/src/types.c

    r17491 r17590  
    28032803                        table); 
    28042804         
    2805         gchar *person_guid
     2805        gchar *person_guid
    28062806        MgdObject *person = (MgdObject *)object->mgd->person; 
    28072807        if(person){ 
    2808                 if(G_IS_OBJECT(G_OBJECT(person))) 
    2809                         g_object_get(G_OBJECT(person), "guid", &person_guid, NULL); 
     2808 
     2809                if(G_IS_OBJECT(G_OBJECT(person))) { 
     2810                        person_guid = (gchar *)MGD_OBJECT_GUID(object); 
     2811                } else { 
     2812                        g_warning("Expected person object associated with current connection. Probably found garbage!"); 
     2813                        person_guid = ""; 
     2814                } 
    28102815        } else { 
    28112816                /* g_info("Anonymous mode"); */ 
    2812                 person_guid = g_strdup("")
     2817                person_guid = ""
    28132818        } 
    28142819 
     
    28172822        midgard_timestamp_set_time(&tval, time(NULL)); 
    28182823        gchar *timeupdated = midgard_timestamp_dup_string(&tval); 
     2824        object->metadata->private->revision++; 
    28192825        g_string_append_printf(sql, 
    28202826                        "metadata_revisor='%s', metadata_revised='%s'," 
    2821                         "metadata_revision=metadata_revision+1, " 
     2827                        "metadata_revision=%d, " 
    28222828                        "metadata_deleted=TRUE ", 
    2823                         person_guid, timeupdated); 
    2824  
    2825         g_free(person_guid); 
    2826         g_free(timeupdated); 
     2829                        person_guid, timeupdated,  
     2830                        object->metadata->private->revision); 
    28272831 
    28282832        g_string_append_printf(sql, 
     
    28372841         
    28382842        if (qr != 0) { 
     2843 
    28392844                g_warning("\n\n QUERY %s \n\n FAILED : \n\n %s", 
    28402845                                query, 
     
    28422847                MIDGARD_ERRNO_SET(object->mgd, MGD_ERR_INTERNAL); 
    28432848                g_free(query); 
    2844                 return FALSE; 
     2849                g_free(timeupdated); 
     2850                object->metadata->private->revision--; 
     2851                return FALSE; 
     2852         
    28452853        } else { 
     2854         
    28462855                g_free(query); 
    28472856                sql = g_string_new("UPDATE repligard SET "); 
     
    28632872        } 
    28642873 
     2874        /* Set object properties */ 
     2875        object->metadata->private->revised = timeupdated; 
     2876        object->metadata->private->revisor = person_guid; 
    28652877        object->metadata->private->deleted = TRUE; 
    28662878 
     
    36713683        /* Update object */ 
    36723684        if(_midgard_object_update(self, OBJECT_UPDATE_EXPORTED)) 
    3673                 return _midgard_core_object_to_xml(self); 
     3685                return _midgard_core_object_to_xml(G_OBJECT(self)); 
    36743686 
    36753687        return NULL;