Feat: Client admin uploads (#952)
* convert uploads to ts * add custom headers to request * uploads resource * uploads routes updates * index export * add oas * remove delete uploads endpoint * add new package for form-data * remove exports for delete upload endpoint * remove dev package from medusa-js * automatic package upgrade of medusa
This commit is contained in:
@@ -33,7 +33,7 @@ export * from "./routes/admin/orders"
|
||||
export * from "./routes/admin/variants"
|
||||
export * from "./routes/admin/return-reasons"
|
||||
export * from "./routes/admin/swaps"
|
||||
export * from "./routes/admin/store"
|
||||
export * from "./routes/admin/uploads"
|
||||
export * from "./routes/admin/returns"
|
||||
export * from "./routes/admin/shipping-options"
|
||||
export * from "./routes/admin/regions"
|
||||
|
||||
@@ -1,21 +0,0 @@
|
||||
import fs from "fs"
|
||||
|
||||
export default async (req, res) => {
|
||||
try {
|
||||
const fileService = req.scope.resolve("fileService")
|
||||
|
||||
const result = await Promise.all(
|
||||
req.files.map(async (f) => {
|
||||
return fileService.upload(f).then((result) => {
|
||||
fs.unlinkSync(f.path)
|
||||
return result
|
||||
})
|
||||
})
|
||||
)
|
||||
|
||||
res.status(200).json({ uploads: result })
|
||||
} catch (err) {
|
||||
console.log(err)
|
||||
throw err
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,43 @@
|
||||
import fs from "fs"
|
||||
|
||||
/**
|
||||
* @oas [post] /
|
||||
* operationId: "PostUploads"
|
||||
* summary: "Uploads an array of files"
|
||||
* description: "Uploads an array of files to the specific fileservice that is installed in medusa."
|
||||
* x-authenticated: true
|
||||
* tags:
|
||||
* - Uploads
|
||||
* responses:
|
||||
* 200:
|
||||
* description: OK
|
||||
* content:
|
||||
* application/json:
|
||||
* schema:
|
||||
* properties:
|
||||
* uploads
|
||||
*/
|
||||
export default async (req, res) => {
|
||||
try {
|
||||
const fileService = req.scope.resolve("fileService")
|
||||
|
||||
const result = await Promise.all(
|
||||
req.files.map(async (f) => {
|
||||
return fileService.upload(f).then((result) => {
|
||||
fs.unlinkSync(f.path)
|
||||
return result
|
||||
})
|
||||
})
|
||||
)
|
||||
|
||||
res.status(200).json({ uploads: result })
|
||||
} catch (err) {
|
||||
console.log(err)
|
||||
throw err
|
||||
}
|
||||
}
|
||||
|
||||
export class IAdminPostUploadsFile {
|
||||
originalName: string
|
||||
path: string
|
||||
}
|
||||
@@ -1,12 +0,0 @@
|
||||
export default async (req, res) => {
|
||||
try {
|
||||
const fileService = req.scope.resolve("fileService")
|
||||
|
||||
await fileService.delete(req.body.file)
|
||||
|
||||
res.status(200).send("Deleted image")
|
||||
} catch (err) {
|
||||
console.log(err)
|
||||
throw err
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,24 @@
|
||||
/**
|
||||
* [delete] /uploads
|
||||
* operationId: "AdminDeleteUpload"
|
||||
* summary: "Removes an uploaded file"
|
||||
* description: "Removes an uploaded file using the installed fileservice"
|
||||
* x-authenticated: true
|
||||
* tags:
|
||||
* - Uploads
|
||||
* responses:
|
||||
* 200:
|
||||
* description: OK
|
||||
*/
|
||||
export default async (req, res) => {
|
||||
try {
|
||||
const fileService = req.scope.resolve("fileService")
|
||||
|
||||
await fileService.delete(req.body.file)
|
||||
|
||||
res.status(200).send({ id: "", object: "file", deleted: true })
|
||||
} catch (err) {
|
||||
console.log(err)
|
||||
throw err
|
||||
}
|
||||
}
|
||||
+12
-1
@@ -1,5 +1,6 @@
|
||||
import { Router } from "express"
|
||||
import multer from "multer"
|
||||
import { DeleteResponse } from "../../../../types/common"
|
||||
|
||||
import middlewares from "../../../middlewares"
|
||||
|
||||
@@ -15,7 +16,17 @@ export default (app) => {
|
||||
middlewares.wrap(require("./create-upload").default)
|
||||
)
|
||||
|
||||
route.post("/delete", middlewares.wrap(require("./delete-upload").default))
|
||||
// removed on purpose
|
||||
// route.post("/delete", middlewares.wrap(require("./delete-upload").default))
|
||||
|
||||
return app
|
||||
}
|
||||
|
||||
export type AdminUploadRes = {
|
||||
uploads: any[]
|
||||
}
|
||||
|
||||
export type AdminDeleteUploadRes = DeleteResponse
|
||||
|
||||
export * from "./create-upload"
|
||||
// export * from "./delete-upload"
|
||||
Reference in New Issue
Block a user