Changeset 4656 for cats


Ignore:
Timestamp:
03/07/14 16:36:44 (10 years ago)
Author:
andmor
Message:

Modified 'NEW' and 'SINK' queries to update the original documents after updating the database

Location:
cats/SCHEMAcat/trunk/urn.org.isocat.schemacat.access.data/access
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • cats/SCHEMAcat/trunk/urn.org.isocat.schemacat.access.data/access/schemaMetadata.dpml

    r4569 r4656  
    111111                                                        error(xs:QName('sc:metadataFieldSchemaIdNotSupplied'),'ERROR updating schema metadata field: schema ID not supplied!')
    112112                                                    else
    113                                                         if(/sc:schema[@xml:id = $schemaID]/*/name() = $metadataField/name())
    114                                                         then
    115                                                             (db:output(element sc:response {attribute success {'true'}, element sc:written-data {$metadataField} }),
    116                                                                 replace node /sc:schema[@xml:id = $schemaID]/*[name() eq $metadataField/name()] with $metadataField)
    117                                                         else
    118                                                             (db:output(element sc:response {attribute success {'true'}, element sc:written-data {$metadataField} }),
    119                                                                 insert node $metadataField into /sc:schema[@xml:id = $schemaID])       
    120                                                                 else error(xs:QName('sc:metadataFieldNamespaceError'),'ERROR updating schema metadata field: supplied namespace prefix in metadata fragment field is not "sc".')
     113                                                    (
     114                                                        let $db-name := db:name(/sc:schema[@xml:id = $schemaID])
     115                                                        return
     116                                                            if(/sc:schema[@xml:id = $schemaID]/*/name() = $metadataField/name())
     117                                                            then
     118                                                                (db:output(element sc:response {attribute success {'true'}, element sc:written-data {$metadataField} }),
     119                                                                    replace node /sc:schema[@xml:id = $schemaID]/*[name() eq $metadataField/name()] with $metadataField,
     120                                                                    put(/sc:schema[@xml:id = $schemaID],concat(string(db:list-details()[.= $db-name]/@path),file:dir-separator(),db:path(/sc:schema[@xml:id = $schemaID]))))
     121                                                            else
     122                                                                (db:output(element sc:response {attribute success {'true'}, element sc:written-data {$metadataField} }),
     123                                                                    insert node $metadataField into /sc:schema[@xml:id = $schemaID],
     124                                                                    put(/sc:schema[@xml:id = $schemaID],concat(string(db:list-details()[. = $db-name]/@path),file:dir-separator(),db:path(/sc:schema[@xml:id = $schemaID]))))
     125                                                    )
     126                                                 else error(xs:QName('sc:metadataFieldNamespaceError'),'ERROR updating schema metadata field: supplied namespace prefix in metadata fragment field is not "sc".')
    121127                                            else error(xs:QName('sc:metadataFragmentNamespaceError'),'ERROR updating schema metadata field: supplied namespace prefix in metadata fragment is not "sc".')
    122128                                    </query>
  • cats/SCHEMAcat/trunk/urn.org.isocat.schemacat.access.data/access/user.dpml

    r4577 r4656  
    9191                                                                        return
    9292                                                                                if (empty($old-user)) then
    93                                                                                         (db:output(element sc:response {attribute success {'true'}, element sc:written-data {$new-user}}), insert node $new-user into /sc:users)
     93                                                                                        (
     94                                                                                                let $db-name := db:name(/sc:users)
     95                                                                                                return
     96                                                                                                        (db:output(element sc:response {attribute success {'true'}, element sc:written-data {$new-user}}), insert node $new-user into /sc:users,
     97                                                                                                        put(/sc:users,concat(string(db:list-details()[. = $db-name]),file:dir-separator(),db:path(/sc:users))))
     98                                                                                        )
    9499                                                                                else
    95100                                                                                        (error(xs:QName('sc:uniqueUser'),'There exists already an user with this id or principal!'))
     
    174179                                                                                        (error(xs:QName('sc:nonExistingUser'),'User matching specified id or principal not found!'))
    175180                                                                                else
    176                                                                                         (db:output(element sc:response {attribute success {'true'}, element sc:written-data {$newUser}}), replace node /sc:users/sc:user[(@xml:id eq $args/id) or (sc:principal eq $args/principal)] with $newUser)
     181                                                                                        (
     182                                                                                                let $db-name := db:name(/sc:users)
     183                                                                                                return (
     184                                                                                                        db:output(element sc:response {attribute success {'true'}, element sc:written-data {$newUser}}), replace node /sc:users/sc:user[(@xml:id eq $args/id) or (sc:principal eq $args/principal)] with $newUser,
     185                                                                                                        put(/sc:users,concat(string(db:list-details()[. = $db-name]/@path),file:dir-separator(),db:path(/sc:users))))
     186                                                                                        )
    177187                                                                </query>
    178188                                                </literal>
Note: See TracChangeset for help on using the changeset viewer.