Exemplo n.º 1
0
    def parse(self, params, path_info, host, post_data, request_method):
        self.host = host

        try:
            self.get_layer(path_info, params)
        except NoLayerException as e:
            a = Action()

            if params.has_key(
                    'service') and params['service'].lower() == 'wfs':
                for layer in self.service.datasources:
                    self.datasources.append(layer)
                if params.has_key('request'):
                    a.request = params['request']
                else:
                    a.request = "GetCapabilities"
            else:
                a.method = "metadata"

            self.actions.append(a)
            return

        wfsrequest = WFSRequest()
        try:
            Request.parse(self,
                          params,
                          path_info,
                          host,
                          post_data,
                          request_method,
                          format_obj=wfsrequest)
        except:
            raise
Exemplo n.º 2
0
 def insertUnique(self, feature):
     if not feature.properties.has_key(self.unique):
         raise Exception("Unique key (%s) missing from feature." %
                         self.unique)
     action = Action()
     action.attributes[self.unique] = feature.properties[self.unique]
     features = self.select(action)
     if len(features) > 1:
         raise Exception(
             "There are two features with the unique key %s. Something's wrong with that."
             % feature.properties[self.unique])
     thunk = self.freeze_feature(feature)
     if len(features) == 0:
         return self.append(thunk)
     else:
         self.db[features[0].id] = thunk
         return features[0].id