Skip to content

Commit

Permalink
Try plist internal
Browse files Browse the repository at this point in the history
  • Loading branch information
yunusefendi52 committed May 1, 2024
1 parent c2ceea9 commit 9609a92
Show file tree
Hide file tree
Showing 5 changed files with 30 additions and 27 deletions.
2 changes: 1 addition & 1 deletion pages/install/[publicId]/index.vue
Original file line number Diff line number Diff line change
Expand Up @@ -59,7 +59,7 @@ useSeoMeta({
const download = (releaseId: number) => {
if (isIosDevice()) {
const url = generateManifestLink('', '', releaseId.toString(), publicId.toString())
const url = generateManifestLink({}, releaseId.toString(), publicId.toString())
document.location = url
} else {
const url = `/api/install/download?publicId=${publicId}&releaseId=${releaseId}`
Expand Down
13 changes: 9 additions & 4 deletions pages/orgs/[orgName]/apps/[appId]/[detailArtifact].vue
Original file line number Diff line number Diff line change
Expand Up @@ -68,12 +68,17 @@ const { data: detailArtifact, refresh, status: status2 } = useFetch('/api/artifa
},
})
const download = () => {
const download = async () => {
const url = `/api/artifacts/download-artifact?appName=${appName}&orgName=${orgName}&releaseId=${releaseId}`
if (isIosDevice()) {
const url = generateManifestLink(appName, orgName, releaseId, undefined)
document.location = url
const data = await $fetch(url, {
query: {
manifestPlist: true,
},
})
const manifestLink = generateManifestLink(data, releaseId, undefined)
document.location = manifestLink
} else {
const url = `/api/artifacts/download-artifact?appName=${appName}&orgName=${orgName}&releaseId=${releaseId}`
window.open(url, '_blank')
}
}
Expand Down
13 changes: 11 additions & 2 deletions server/api/artifacts/download-artifact.get.ts
Original file line number Diff line number Diff line change
Expand Up @@ -52,11 +52,20 @@ export const getArtifactFromInternal = async (
}

export default defineEventHandler(async (event) => {
const { appName, orgName, releaseId } = getQuery(event)
const { signedUrl } = await getArtifactFromInternal(
const { appName, orgName, releaseId, manifestPlist } = getQuery(event)
const { signedUrl, app, detailArtifact, } = await getArtifactFromInternal(
event,
orgName!.toString(),
appName!.toString(),
releaseId!.toString())
if (manifestPlist) {
return {
signedUrl,
packageName: detailArtifact.packageName,
versionName: detailArtifact.versionName2,
displayName: app.displayName,
}
}

await sendRedirect(event, signedUrl)
})
24 changes: 7 additions & 17 deletions server/api/manifest.plist.get.ts
Original file line number Diff line number Diff line change
Expand Up @@ -21,25 +21,15 @@ export default defineEventHandler(async (event) => {
app.displayName)
} else {
// Param from logged in user (without public id)
const orgName = data.orgName
const appName = data.appName
const { userOrg, app, detailArtifact } = await getArtifactFromInternal(
event,
orgName!.toString(),
appName!.toString(),
releaseId!.toString())
const { assets } = getStorageKeys(userOrg.organizationsId!, app.id, detailArtifact.fileObjectKey)
const s3 = new S3AppClient()
const signedUrl = await s3.getSignedUrlGetObject(event, new GetObjectCommand({
Bucket: s3BucketName,
Key: assets,
ResponseContentDisposition: `attachment; filename ="${app.name}${detailArtifact.extension ? `.${detailArtifact.extension}` : ''}"`,
}), 1800)
const packageName = data.packageName
const versionName = data.versionName
const displayName = data.displayName
const signedUrl = data.signedUrl
plist = generatePlist(
signedUrl,
detailArtifact.packageName!,
detailArtifact.versionName2,
app.displayName,
packageName,
versionName,
displayName,
)
}
setResponseHeader(event, 'Content-Type', "text/xml plist")
Expand Down
5 changes: 2 additions & 3 deletions utils/utils.ts
Original file line number Diff line number Diff line change
Expand Up @@ -50,10 +50,9 @@ export const formatDate = (value?: string | null) => {

export const isIosDevice = () => /(iPad|iPhone|iPod)/g.test(navigator.userAgent) || (/(Mac OS)/g.test(navigator.userAgent) && "ontouchend" in document)

export const generateManifestLink = (appName: string, orgName: string, releaseId: string, publicLink: string | undefined) => {
export const generateManifestLink = (manifestData: any, releaseId: string, publicLink: string | undefined) => {
const data = {
appName,
orgName,
...manifestData,
releaseId,
publicLink,
}
Expand Down

0 comments on commit 9609a92

Please sign in to comment.