Showing
1 changed file
with
118 additions
and
10 deletions
1 | -import { createServer, Model } from "miragejs"; | 1 | +import { createServer, Model, Response } from "miragejs"; |
2 | import { ModelDefinition } from "miragejs/-types"; | 2 | import { ModelDefinition } from "miragejs/-types"; |
3 | 3 | ||
4 | interface Item { | 4 | interface Item { |
... | @@ -51,10 +51,16 @@ createServer({ | ... | @@ -51,10 +51,16 @@ createServer({ |
51 | this.get("/items/:item_id/children", (schema, request) => { | 51 | this.get("/items/:item_id/children", (schema, request) => { |
52 | const directory = schema.find("item", request.params.item_id); | 52 | const directory = schema.find("item", request.params.item_id); |
53 | if (!directory || !directory.is_folder) { | 53 | if (!directory || !directory.is_folder) { |
54 | - return { | 54 | + return new Response( |
55 | + 404, | ||
56 | + { | ||
57 | + "Content-Type": "application/json", | ||
58 | + }, | ||
59 | + JSON.stringify({ | ||
55 | status: 404, | 60 | status: 404, |
56 | message: "Not Found", | 61 | message: "Not Found", |
57 | - }; | 62 | + }) |
63 | + ); | ||
58 | } | 64 | } |
59 | 65 | ||
60 | const list = schema.where("item", { parent: directory.id }).models; | 66 | const list = schema.where("item", { parent: directory.id }).models; |
... | @@ -68,9 +74,116 @@ createServer({ | ... | @@ -68,9 +74,116 @@ createServer({ |
68 | }; | 74 | }; |
69 | }); | 75 | }); |
70 | 76 | ||
77 | + this.post("/items/:item_id/children", (schema, request) => { | ||
78 | + return { | ||
79 | + status: 200, | ||
80 | + data: { | ||
81 | + id: "2341", | ||
82 | + is_folder: true, | ||
83 | + name: "cloudComputing", | ||
84 | + created_timestamp: "2020-05-14T06:20:44Z", | ||
85 | + updated_timestamp: "2020-05-14T06:20:44Z", | ||
86 | + size: 0, | ||
87 | + }, | ||
88 | + }; | ||
89 | + }); | ||
90 | + | ||
91 | + this.post("/items/:item_id/upload", (schema, request) => { | ||
92 | + return { | ||
93 | + status: 200, | ||
94 | + data: { | ||
95 | + id: "2342", | ||
96 | + name: "image.jpg", | ||
97 | + is_folder: false, | ||
98 | + size: 92929, | ||
99 | + path: | ||
100 | + "https://presignedurldemo.s3.eu-west-2.amazonaws.com/image.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAJJWZ7B6WCRGMKFGQ%2F20180210%2Feu-west-2%2Fs3%2Faws4_request&X-Amz-Date=20180210T171315Z&X-Amz-Expires=1800&X-Amz-Signature=12b74b0788aa036bc7c3d03b3f20c61f1f91cc9ad8873e3314255dc479a25351&X-Amz-SignedHeaders=host", | ||
101 | + }, | ||
102 | + }; | ||
103 | + }); | ||
104 | + | ||
105 | + this.post("/items/:item_id/status", (schema, request) => { | ||
106 | + return { | ||
107 | + status: 200, | ||
108 | + message: "ok", | ||
109 | + }; | ||
110 | + }); | ||
111 | + | ||
112 | + this.post("/items/:item_id/move", (schema, request) => { | ||
113 | + return { | ||
114 | + status: 200, | ||
115 | + data: { | ||
116 | + id: "2342", | ||
117 | + name: "image.jpg", | ||
118 | + is_folder: false, | ||
119 | + parentinfo: { | ||
120 | + id: "1234", | ||
121 | + name: "folder", | ||
122 | + is_folder: true, | ||
123 | + updated_timestamp: "2020-05-14T06:20:44Z", | ||
124 | + }, | ||
125 | + }, | ||
126 | + }; | ||
127 | + }); | ||
128 | + | ||
129 | + this.post("/items/:item_id/copy", (schema, request) => { | ||
130 | + return { | ||
131 | + status: 200, | ||
132 | + data: { | ||
133 | + id: "2342", | ||
134 | + name: "image.jpg", | ||
135 | + is_folder: false, | ||
136 | + parentinfo: { | ||
137 | + id: "1234", | ||
138 | + name: "folder", | ||
139 | + is_folder: true, | ||
140 | + updated_timestamp: "2020-05-14T06:20:44Z", | ||
141 | + }, | ||
142 | + }, | ||
143 | + }; | ||
144 | + }); | ||
145 | + | ||
146 | + this.get("/items/:item_id", (schema, request) => { | ||
147 | + return { | ||
148 | + status: 200, | ||
149 | + data: { | ||
150 | + id: "2342", | ||
151 | + name: "image.jpg", | ||
152 | + is_folder: false, | ||
153 | + size: 92929, | ||
154 | + path: | ||
155 | + "https://presignedurldemo.s3.eu-west-2.amazonaws.com/image.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAJJWZ7B6WCRGMKFGQ%2F20180210%2Feu-west-2%2Fs3%2Faws4_request&X-Amz-Date=20180210T171315Z&X-Amz-Expires=1800&X-Amz-Signature=12b74b0788aa036bc7c3d03b3f20c61f1f91cc9ad8873e3314255dc479a25351&X-Amz-SignedHeaders=host", | ||
156 | + created_timestamp: "2020-05-14T06:20:44Z", | ||
157 | + updated_timestamp: "2020-05-14T06:20:44Z", | ||
158 | + }, | ||
159 | + }; | ||
160 | + }); | ||
161 | + | ||
162 | + this.delete("/items/:item_id", (schema, request) => { | ||
163 | + return { | ||
164 | + status: 200, | ||
165 | + message: "ok", | ||
166 | + }; | ||
167 | + }); | ||
168 | + | ||
71 | this.post("/users/login", (schema, request) => { | 169 | this.post("/users/login", (schema, request) => { |
72 | const body = JSON.parse(request.requestBody); | 170 | const body = JSON.parse(request.requestBody); |
73 | - if (body.user_id === "admin" && body.password === "password") { | 171 | + const admin = schema.findBy("user", { |
172 | + user_id: body.user_id, | ||
173 | + password: body.password, | ||
174 | + }); | ||
175 | + if (!admin) { | ||
176 | + return new Response( | ||
177 | + 401, | ||
178 | + { | ||
179 | + "Content-Type": "application/json", | ||
180 | + }, | ||
181 | + JSON.stringify({ | ||
182 | + status: 401, | ||
183 | + message: "unauthorized", | ||
184 | + }) | ||
185 | + ); | ||
186 | + } | ||
74 | return { | 187 | return { |
75 | status: 200, | 188 | status: 200, |
76 | data: { | 189 | data: { |
... | @@ -81,18 +194,13 @@ createServer({ | ... | @@ -81,18 +194,13 @@ createServer({ |
81 | expiration: "2020-05-14T07:23:24Z", | 194 | expiration: "2020-05-14T07:23:24Z", |
82 | }, | 195 | }, |
83 | }; | 196 | }; |
84 | - } | ||
85 | - return { | ||
86 | - status: 401, | ||
87 | - message: "unauthorized", | ||
88 | - }; | ||
89 | }); | 197 | }); |
90 | }, | 198 | }, |
91 | 199 | ||
92 | seeds(server) { | 200 | seeds(server) { |
93 | const user = server.create("user", { | 201 | const user = server.create("user", { |
94 | id: "1", | 202 | id: "1", |
95 | - user_id: "test", | 203 | + user_id: "admin", |
96 | name: "테스트", | 204 | name: "테스트", |
97 | password: "password", | 205 | password: "password", |
98 | total_size: 1024 * 1024 * 1024 * 5, // 5GB | 206 | total_size: 1024 * 1024 * 1024 * 5, // 5GB | ... | ... |
-
Please register or login to post a comment