Skip to content

Commit

Permalink
Merge b60bd4e into 7b49289
Browse files Browse the repository at this point in the history
  • Loading branch information
MrOrz committed Jan 17, 2023
2 parents 7b49289 + b60bd4e commit 6fa568b
Showing 1 changed file with 32 additions and 14 deletions.
46 changes: 32 additions & 14 deletions src/graphql/mutations/CreateMediaArticle.js
Original file line number Diff line number Diff line change
Expand Up @@ -24,24 +24,14 @@ const VALID_ARTICLE_TYPE_TO_MEDIA_TYPE = {
};

/**
* Creates a new article in ElasticSearch,
* or return an article which attachment.hash is similar to mediaUrl
* Upload media of specified article type from the given mediaUrl
*
* @param {object} param
* @param {string} param.mediaUrl
* @param {ArticleTypeEnum} param.articleType
* @param {ArticleReferenceInput} param.reference
* @param {string} param.userId
* @param {string} param.appId
* @returns {Promise<string>} the new article's ID
* @returns {Promise<MediaEntry>}
*/
async function createNewMediaArticle({
mediaUrl,
articleType,
reference: originalReference,
userId,
appId,
}) {
export async function uploadMedia({ mediaUrl, articleType }) {
const mappedMediaType = VALID_ARTICLE_TYPE_TO_MEDIA_TYPE[articleType];
const mediaEntry = await mediaManager.insert({
url: mediaUrl,
Expand Down Expand Up @@ -93,6 +83,28 @@ async function createNewMediaArticle({
},
});

return mediaEntry;
}

/**
* Creates a new article in ElasticSearch,
* or return an article which attachment.hash is similar to mediaUrl
*
* @param {object} param
* @param {MediaEntry} param.mediaEntry
* @param {ArticleTypeEnum} param.articleType
* @param {ArticleReferenceInput} param.reference
* @param {string} param.userId
* @param {string} param.appId
* @returns {Promise<string>} the new article's ID
*/
async function createNewMediaArticle({
mediaEntry,
articleType,
reference: originalReference,
userId,
appId,
}) {
const attachmentHash = mediaEntry.id;
const text = '';
const now = new Date().toISOString();
Expand Down Expand Up @@ -168,9 +180,15 @@ export default {
{ user }
) {
assertUser(user);
const articleId = await createNewMediaArticle({

const mediaEntry = await uploadMedia({
mediaUrl,
articleType,
});

const articleId = await createNewMediaArticle({
mediaEntry,
articleType,
reference,
userId: user.id,
appId: user.appId,
Expand Down

0 comments on commit 6fa568b

Please sign in to comment.