Exemple #1
0
    def post(self):
        '''
        Creates a new busines model from posted data
        Returns corresponding URI
        Parameters:
            name - Name of the business
            lat - Lattitude of the business
            lon - Longitude of the business
        '''
        params = self.load_json_params({
            'lat': (float, True),
            'lon': (float, True),
            'name': (str, True),
            'admins': (list, False)
        }, use_default=True)

        authenticate()
        admin_keys = [ndb.Key('User', adm_id) for adm_id in params['admins']]
        if not len(ndb.get_multi(admin_keys)) == len(admin_keys):
            self.abort(400)

        key = Business.new(
            lat=params['lat'],
            lon=params['lon'],
            name=params['name'],
            admins=admin_keys
        ).put()
        uri = '/api/business/{}'.format(key.id())
        self.response.status = '200 OK'
        self.response.write(uri)