schema_article_attributes.remove('geometry') schema_article = SQLAlchemySchemaNode( Article, # whitelisted attributes includes=schema_article_attributes + attributes, overrides={ 'document_id': { 'missing': None }, 'version': { 'missing': None }, 'locales': { 'children': [schema_article_locale] }, }) schema_create_article = get_create_schema(schema_article) schema_update_article = get_update_schema(schema_article) schema_listing_article = restrict_schema(schema_article, fields_article.get('listing')) def is_personal(article_id): article_type = DBSession.query(Article.article_type). \ select_from(Article.__table__). \ filter(Article.document_id == article_id). \ scalar() return article_type == 'personal'
schema_article_attributes.remove('geometry') schema_article = SQLAlchemySchemaNode( Article, # whitelisted attributes includes=schema_article_attributes + attributes, overrides={ 'document_id': { 'missing': None }, 'version': { 'missing': None }, 'locales': { 'children': [schema_article_locale] }, }) schema_create_article = get_create_schema(schema_article) schema_update_article = get_update_schema(schema_article) schema_listing_article = restrict_schema( schema_article, fields_article.get('listing')) def is_personal(article_id): article_type = DBSession.query(Article.article_type). \ select_from(Article.__table__). \ filter(Article.document_id == article_id). \ scalar() return article_type == 'personal'
from pyramid.httpexceptions import HTTPNotFound, HTTPBadRequest, HTTPForbidden from c2corg_common.fields_article import fields_article from cornice.resource import resource, view from cornice.validators import colander_body_validator from c2corg_api.views import set_creator as set_creator_on_documents from c2corg_api.views.document_schemas import article_documents_config from c2corg_api.views.document import DocumentRest, make_validator_create, \ make_validator_update from c2corg_api.views import cors_policy, restricted_json_view from c2corg_api.views.validation import validate_id, validate_pagination, \ validate_lang_param, validate_preferred_lang_param, \ validate_associations, validate_lang, validate_version_id validate_article_create = make_validator_create(fields_article.get('required')) validate_article_update = make_validator_update(fields_article.get('required')) validate_associations_create = functools.partial( validate_associations, ARTICLE_TYPE, True) validate_associations_update = functools.partial( validate_associations, ARTICLE_TYPE, False) @resource(collection_path='/articles', path='/articles/{id}', cors_policy=cors_policy) class ArticleRest(DocumentRest): @view(validators=[validate_pagination, validate_preferred_lang_param]) def collection_get(self): return self._collection_get(ARTICLE_TYPE, article_documents_config)
from c2corg_common.fields_article import fields_article from cornice.resource import resource, view from cornice.validators import colander_body_validator from c2corg_api.views import set_creator as set_creator_on_documents from c2corg_api.views.document_schemas import article_documents_config from c2corg_api.views.document import DocumentRest, make_validator_create, \ make_validator_update from c2corg_api.views import cors_policy, restricted_json_view from c2corg_api.views.validation import validate_id, validate_pagination, \ validate_lang_param, validate_preferred_lang_param, \ validate_associations, validate_lang, validate_version_id, \ validate_cook_param validate_article_create = make_validator_create(fields_article.get('required')) validate_article_update = make_validator_update(fields_article.get('required')) validate_associations_create = functools.partial(validate_associations, ARTICLE_TYPE, True) validate_associations_update = functools.partial(validate_associations, ARTICLE_TYPE, False) @resource(collection_path='/articles', path='/articles/{id}', cors_policy=cors_policy) class ArticleRest(DocumentRest): @view(validators=[validate_pagination, validate_preferred_lang_param]) def collection_get(self): return self._collection_get(ARTICLE_TYPE, article_documents_config)