1
+ class API ::Users < Grape ::API
2
+ include API ::Defaults
3
+
4
+ # Require administrator authentication
5
+ before { administrator? }
6
+
7
+ resource :users do
8
+
9
+ # index ......................................................
10
+
11
+ desc "Return a list of users" , { :entity => Entity ::User }
12
+ get '/' , http_codes : [
13
+ [ 200 , 'Ok' , Entity ::User ]
14
+ ] do
15
+ users = User . all
16
+ present users , with : Entity ::User
17
+ end
18
+
19
+ # show ......................................................
20
+
21
+ desc "Just a single email" , { :entity => Entity ::Email }
22
+ params do
23
+ requires :id , type : Integer
24
+ end
25
+ get ':id' , http_codes : [
26
+ [ 200 , "Ok" , Entity ::Email ]
27
+ ] do
28
+ email = current_user . emails . find ( params [ :id ] )
29
+ present email , with : Entity ::Email
30
+ end
31
+
32
+ # create ......................................................
33
+
34
+ # desc "Create a new email", { :entity => Entity::Email }
35
+ # params do
36
+ # requires :cc_addresses, type: Array, desc: ""
37
+ # requires :content, type: String, desc: ""
38
+ # requires :delivered_at, type: String, desc: ""
39
+ # requires :subject :string not null
40
+ # requires :to_addresses :text default([]), is an Array
41
+ # requires :created_at :datetime not null
42
+ # requires :updated_at :datetime not null
43
+ # requires :message_id :string not null
44
+
45
+ # requires :title, type: String, desc: "The title for this todo"
46
+ # optional :description, type: String, desc: "The description for this todo"
47
+ # end
48
+ # post '/', http_codes: [
49
+ # [200, "Ok", Entity::Todo]
50
+ # ] do
51
+ # todo = Todo.new
52
+ # todo.title = params[:title] if params[:title]
53
+ # todo.description = params[:description] if params[:description]
54
+ # todo.save
55
+
56
+ # status 200
57
+ # present todo, with: Entity::Todo
58
+ # end
59
+
60
+ end
61
+ end
0 commit comments