aboutsummaryrefslogtreecommitdiff
path: root/src/server/ApiManagers/FireflyManager.ts
diff options
context:
space:
mode:
authoreleanor-park <eleanor_park@brown.edu>2025-01-09 11:19:33 -0500
committereleanor-park <eleanor_park@brown.edu>2025-01-09 11:19:33 -0500
commit2a24d77845d6c1d4f0730a9427572033c506b14c (patch)
tree3572df483114b7c381e699c5ad55935db586a923 /src/server/ApiManagers/FireflyManager.ts
parent51a9f85b4ddc38ac825efcefc0c6db23f3b9914e (diff)
parentdd0526a0a256fb3f1de9e0a2508566adcd6cd7e9 (diff)
Merge branch 'eleanor-gptdraw' of https://github.com/brown-dash/Dash-Web into eleanor-gptdraw
Diffstat (limited to 'src/server/ApiManagers/FireflyManager.ts')
-rw-r--r--src/server/ApiManagers/FireflyManager.ts47
1 files changed, 29 insertions, 18 deletions
diff --git a/src/server/ApiManagers/FireflyManager.ts b/src/server/ApiManagers/FireflyManager.ts
index 6daa5840e..a1f8fab8d 100644
--- a/src/server/ApiManagers/FireflyManager.ts
+++ b/src/server/ApiManagers/FireflyManager.ts
@@ -56,15 +56,22 @@ export default class FireflyManager extends ApiManager {
);
uploadImageToDropbox = (fileUrl: string, dbx = new Dropbox({ accessToken: process.env.DROPBOX_TOKEN })) =>
- new Promise<string>((res, rej) =>
+ new Promise<string | Error>((res, rej) =>
fs.readFile(path.join(filesDirectory, `${Directory.images}/${path.basename(fileUrl)}`), undefined, (err, contents) => {
if (err) {
console.log('Error: ', err);
rej();
} else {
- dbx.filesUpload({ path: `/Apps/browndash/${path.basename(fileUrl)}`, contents }).then(response => {
- dbx.filesGetTemporaryLink({ path: response.result.path_display ?? '' }).then(link => res(link.result.link));
- });
+ dbx.filesUpload({ path: `/Apps/browndash/${path.basename(fileUrl)}`, contents })
+ .then(response => {
+ dbx.filesGetTemporaryLink({ path: response.result.path_display ?? '' })
+ .then(link => res(link.result.link))
+ .catch(e => res(new Error(e.toString())));
+ })
+ .catch(e => {
+ console.log('Dropbox error:', e);
+ res(new Error(e.toString()));
+ });
}
})
);
@@ -229,12 +236,14 @@ export default class FireflyManager extends ApiManager {
subscription: '/queryFireflyImageFromStructure',
secureHandler: async ({ req, res }) =>
this.uploadImageToDropbox(req.body.structureUrl).then(uploadUrl =>
- this.generateImageFromStructure(req.body.prompt, req.body.width, req.body.height, uploadUrl, req.body.strength, req.body.styles).then(fire =>
- DashUploadUtils.UploadImage(JSON.parse(fire ?? '').url).then(info => {
- if (info instanceof Error) _invalid(res, info.message);
- else _success(res, info);
- })
- )
+ uploadUrl instanceof Error
+ ? _invalid(res, uploadUrl.message)
+ : this.generateImageFromStructure(req.body.prompt, req.body.width, req.body.height, uploadUrl, req.body.strength, req.body.styles).then(fire =>
+ DashUploadUtils.UploadImage(JSON.parse(fire ?? '').url).then(info => {
+ if (info instanceof Error) _invalid(res, info.message);
+ else _success(res, info);
+ })
+ )
),
});
register({
@@ -267,14 +276,16 @@ export default class FireflyManager extends ApiManager {
subscription: '/expandImage',
secureHandler: ({ req, res }) =>
this.uploadImageToDropbox(req.body.file).then(uploadUrl =>
- this.expandImage(uploadUrl, req.body.prompt).then(text => {
- if (text.error_code) _error(res, text.message);
- else
- DashUploadUtils.UploadImage(text.outputs[0].image.url).then(info => {
- if (info instanceof Error) _invalid(res, info.message);
- else _success(res, info);
- });
- })
+ uploadUrl instanceof Error
+ ? _invalid(res, uploadUrl.message)
+ : this.expandImage(uploadUrl, req.body.prompt).then(text => {
+ if (text.error_code) _error(res, text.message);
+ else
+ DashUploadUtils.UploadImage(text.outputs[0].image.url).then(info => {
+ if (info instanceof Error) _invalid(res, info.message);
+ else _success(res, info);
+ });
+ })
),
});
}