Class: CmisServer::AtomPub::TypesController

Inherits:
BaseController show all
Includes:
RepositoryScopable
Defined in:
app/controllers/cmis_server/atom_pub/types_controller.rb

Instance Method Summary collapse

Methods included from RepositoryScopable

#set_repository

Methods inherited from BaseController

#raw_post_body, #render_standard_error, #request_entry_parser

Methods inherited from CmisServer::ApplicationController

#check_auth, #context

Instance Method Details

#createObject

POST /types



38
39
40
41
42
43
44
45
46
47
48
49
50
51
# File 'app/controllers/cmis_server/atom_pub/types_controller.rb', line 38

def create
  type_definition = parse_type_definition_from_request
  
  begin
    @type = CmisServer::TypeRegistry.create_type(type_definition)
    
    respond_to do |format|
      format.atom_entry { render "cmis_server/atom_pub/type_entry", status: :created }
      format.json { render json: @type.to_json, status: :created }
    end
  rescue CmisServer::InvalidTypeDefinition, CmisServer::InvalidOperation => e
    render_error(e)
  end
end

#destroyObject

DELETE /types/typeId



70
71
72
73
74
75
76
77
78
# File 'app/controllers/cmis_server/atom_pub/types_controller.rb', line 70

def destroy
  begin
    CmisServer::TypeRegistry.delete_type(params[:id])
    
    head :no_content
  rescue CmisServer::InvalidTypeDefinition, CmisServer::InvalidOperation => e
    render_error(e)
  end
end

#indexObject

GET /types



20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
# File 'app/controllers/cmis_server/atom_pub/types_controller.rb', line 20

def index
  @types = CmisServer::TypeRegistry.types.values
  
  # Filtrage par includePropertyDefinitions
  if params[:includePropertyDefinitions] == "false"
    # Ne pas inclure les définitions de propriétés
    @include_property_definitions = false
  else
    @include_property_definitions = true
  end
  
  respond_to do |format|
    format.atom_feed { render "cmis_server/atom_pub/types_feed" }
    format.json { render json: { types: @types }.to_json }
  end
end

#showObject

GET /types/typeId



12
13
14
15
16
17
# File 'app/controllers/cmis_server/atom_pub/types_controller.rb', line 12

def show
  respond_to do |format|
    format.atom_entry { render "cmis_server/atom_pub/type_entry", locals: { type: @type } }
    format.json { render json: format_type_for_json(@type) }
  end
end

#updateObject

PUT /types/typeId



54
55
56
57
58
59
60
61
62
63
64
65
66
67
# File 'app/controllers/cmis_server/atom_pub/types_controller.rb', line 54

def update
  type_definition = parse_type_definition_from_request
  
  begin
    @type = CmisServer::TypeRegistry.update_type(type_definition)
    
    respond_to do |format|
      format.atom_entry { render "cmis_server/atom_pub/type_entry" }
      format.json { render json: @type.to_json }
    end
  rescue CmisServer::InvalidTypeDefinition, CmisServer::InvalidOperation => e
    render_error(e)
  end
end