from anyblok_pyramid import current_blok from anyblok_pyramid_rest_api.crud_resource import (CrudResource) from anyblok_pyramid_rest_api.validator import model_schema_validator from .schema import ( CustomerSchema, AddressSchema, ) @resource(collection_path='/customers/v5', path='/customers/v5/{id}', validators=(model_schema_validator, ), installed_blok=current_blok()) class CustomerResourceV5(CrudResource): model = 'Model.Customer' @classmethod def apischema_properties(cls, metaProperties): metaProperties.update({ 'deserialization_model_schema': CustomerSchema, 'serialization_model_schema': CustomerSchema, }) @resource(collection_path='/addresses/v5', path='/addresses/v5/{id}', validators=(model_schema_validator, ), installed_blok=current_blok())
# -*- coding: utf-8 -*- # This file is a part of the AnyBlok project # # Copyright (C) 2017 Jean-Sebastien SUZANNE <*****@*****.**> # # This Source Code Form is subject to the terms of the Mozilla Public License, # v. 2.0. If a copy of the MPL was not distributed with this file,You can # obtain one at http://mozilla.org/MPL/2.0/. from pyramid.view import view_defaults, view_config from anyblok_pyramid import current_blok @view_defaults(installed_blok=current_blok(), request_method="POST", renderer="json") class Button(): def __init__(self, request): self.request = request self.registry = request.anyblok.registry @view_config(route_name="furetui_button") def furetui_space(self): buttonId = self.request.matchdict['buttonId'] params = self.request.json_body Model = self.registry.get(params['model']) if 'dataIds' in params: dataIds = params.pop('dataIds') pks = [eval(x, {}, {}) for x in dataIds] params['entries'] = Model.from_multi_primary_keys(*pks) return getattr(Model, buttonId)(**params)
from pyramid_rpc.jsonrpc import jsonrpc_method from pyramid.view import view_defaults from anyblok_pyramid import current_blok @view_defaults(installed_blok=current_blok()) class View: def __init__(self, request): self.request = request self.registry = request.anyblok.registry @jsonrpc_method(endpoint='web_client_view') def get_entries(self, model=None, primary_keys=None, fields=None, comefromfield=False): Model = self.registry.get(model) entries = None if comefromfield: if primary_keys: entries = Model.from_multi_primary_keys(*primary_keys) else: entries = Model.query().all() if not fields or not entries: return [] return entries.to_dict(*fields) @jsonrpc_method(endpoint='web_client_view') def get_entry(self, model=None, primary_keys=None, fields=None): Model = self.registry.get(model)
from pyramid.view import view_config from anyblok_pyramid import current_blok # TODO: return proper HTML responses: # http://www.js-attitude.fr/2013/06/05/ # meilleures-pratiques-pour-vos-urls-verbes-http-et-apis/ @view_config(route_name='todo-list', installed_blok=current_blok(), renderer='json') def todo_list(request): registry = request.anyblok.registry return [{ 'done': todo.done, 'task': todo.task, 'id': todo.id } for todo in registry.Todo.query().all()] @view_config(route_name='todo-add', installed_blok=current_blok(), renderer='json') def add_todo(request): registry = request.anyblok.registry task = request.json_body.get('task', '') done = request.json_body.get('done', False) if not task: return "Task should be define" registry.Todo.insert(task=task, done=done)
from pyramid.view import view_config from pyramid.response import Response from anyblok_pyramid import current_blok @view_config(route_name='hello', installed_blok=current_blok()) def say_hello(request): return Response('Hello %(name)s !!!' % request.matchdict)
from pyramid.view import view_config from anyblok_pyramid import current_blok # TODO: return proper HTML responses: # http://www.js-attitude.fr/2013/06/05/ # meilleures-pratiques-pour-vos-urls-verbes-http-et-apis/ @view_config( route_name='todo-list', installed_blok=current_blok(), renderer='json' ) def todo_list(request): registry = request.anyblok.registry return [ {'done': todo.done, 'task': todo.task, 'id': todo.id} for todo in registry.Todo.query().all() ] @view_config( route_name='todo-add', installed_blok=current_blok(), renderer='json' ) def add_todo(request): registry = request.anyblok.registry task = request.json_body.get('task', '') done = request.json_body.get('done', False) if not task:
import pyramid.httpexceptions as exc from pyramid.view import view_config, view_defaults from anyblok_pyramid import current_blok @view_defaults(renderer='json', installed_blok=current_blok()) class Space: def __init__(self, request): self.request = request self.registry = request.anyblok.registry def define_menus_for(self, user, parents, menus): for menu in menus: if menu.groups and not user.has_groups(menu.groups): continue val = { 'id': menu.id, 'label': menu.label, 'action': menu.action and menu.action.id or None, 'children': [], } if menu.children: self.define_menus_for(user, val['children'], menu.children) parents.append(val) @view_config(route_name='client_space_description') def client_space_description(self): params = dict(self.request.params)