Open skynethubio opened 3 years ago
SKAPPS_DICT_PATH: string; {skapp_name:true/false} JSON data: {"skapp.hns":{}, "skyfeed.hns":{}, "SkySpaces.hns": {}}
PUBLISHED_INDEX_PATH: string; //${DATA_DOMAIN}/${skapp}/published/index.json JSON Data: [appId1, AppId2....] PATH_Example: /skyapps.hns/skapp.hns/published/index.json, /skyapps.hns/anotherAppStore.hns/published/index.json..etc PUBLISHED_APP_INFO_PATH: string;//${DATA_DOMAIN}/${skapp}/published/{appid}/appInfo.json PUBLISHED_APP_COMMENT_PATH: string;//${DATA_DOMAIN}/${skapp}/published/{appid}/comments.json PUBLISHED_APP_STATS_PATH: string;//${DATA_DOMAIN}/${skapp}/published/{appid}/stats.json
DEPLOYED_INDEX_PATH: string;//${DATA_DOMAIN}/${skapp}/deployed/index.json JSON Data: [appId1, AppId2....] DEPLOYED_APP_INFO_PATH: string;//${DATA_DOMAIN}/${skapp}/deployed/{appid}/appInfo.json }
DAC getPublishedApps(appId[]) //Input value null or empty means get all published apps. IPublishedApp[] getSkappsInfo(appId[]) // Input value null or empty means get All PublishedApps along with comments and stats object. ISkappInfo[] getSkappsStats(appId[]) getSkappsComments(appId) getDeployedApps(appId[]) //Input value null or empty means get all deployed apps. IDeployedApp[]
Library skappAction(Action_Type,JSON Object)
export enum skappActionType { 'PUBLISH', 'REPUBLISH', 'DEPLOY', 'REDEPLOY', 'VIEWED', 'ACCESSED', 'FAVORITE', 'UNFAVORITE', 'LIKED', 'UNLIKED', 'ADD_COMMENT', 'EDIT_COMMENT' 'REMOVE_COMMENT' }
AppId must be generated by DAC.
DAC - exposed methods
skappAction(Action_Type,JSON Object) // JSON Object will be based on Action Type. Interface for each major action Type. Refer "skappActionType" for all action types.
getDeployedApps(appId[]) //Input value null or empty means get all deployed apps. IDeployedApp[] getPublishedApps(appId[]) //Input value null or empty means get all published apps. IPublishedApp[] getSkappsInfo(appId[]) // Input value null or empty means get All PublishedApps along with comments and stats object. ISkappInfo[] getSkappsStats(appId[]) getSkappsComments(appId)
TYPES (these are basic types, we will need to add Types for request and response for most actions)
// This is basically DataKey against which VALUE will be stored. VALUE content type is defined in below Interfaces - IDeployedApp, IPublishedApp, IAppComments, IAppStats
export interface IFilePaths { SKAPPS_DICT_PATH: string; {skapp_name:true/false} Example: {"skapp": true, "skyfeed":true, "SkySpaces":false}
PUBLISHED_INDEX_PATH: string; //
${DATA_DOMAIN}/${skapp}/published/index.json
Example: /skyapps.hns/skapp.hns/published/index.json/skyapps.hns/anotherAppStore.hns/published/index.json
..etc PUBLISHED_APP_INFO_PATH: string;//${DATA_DOMAIN}/${skapp}/published/{appid}/appInfo.json
PUBLISHED_APP_COMMENT_PATH: string;//${DATA_DOMAIN}/${skapp}/published/{appid}/comments.json
PUBLISHED_APP_STATS_PATH: string;//${DATA_DOMAIN}/${skapp}/published/{appid}/stats.json
DEPLOYED_INDEX_PATH: string;//${DATA_DOMAIN}/${skapp}/deployed/index.json
DEPLOYED_APP_INFO_PATH: string;//${DATA_DOMAIN}/${skapp}/deployed/{appid}/appInfo.json
}export interface IIndex { version: number;
currPageNumber: number; currPageNumEntries: number;
pages: string[]; pageSize: number; }
export enum skappActionType { 'PUBLISH', 'REPUBLISH', 'DEPLOY', 'REDEPLOY', 'VIEWED', 'ACCESSED', 'FAVORITE', 'UNFAVORITE', 'LIKED', 'UNLIKED', 'ADD_COMMENT', 'EDIT_COMMENT' 'REMOVE_COMMENT' }
export interface ISkappInfo { "id": "SKAPP_ID", "version": "1", "content": { "publishedApp": IPublishedApp, "comments": IAppComments, "stats": IAppStats,// consolidated stats from all Skapps }, "ts": 1610328319 }
export interface IDeployedApp { "id": "SKAPP_ID", "version": "1", "prevSkylink":"", "content": { "storageGateway": "skynetportalUrl", "hns": "skyfeed", "skylink": "skylink", "defaultPath": "index.html or EMPTY", "portalMinVersion": "1.5", "sourceCode": "git url", "history": [ "list of skylinks" ] }, "ts": 1610328319 }
export interface IPublishedApp { "id": "SKAPP_ID", "version": "1", "prevSkylink":"", "content": { "skappLogo": "[46 Character SKYLINK]", "appname": "SkyFeed", "demoUrl": "[46 Character SKYLINK]", "age": "[18+|general]", "appUrl": "skylink URL", "defaultPath": "index.html or EMPTY", "sourceCode": "git url", "category": [ "list" ], "tags": [ "tag1", "tag2" ], "appStatus": [ "beta|alpha|live" ], "previewImages": { "aspectRatio": 0.5625, "images": [ { "thumbnail": "sia://PAF7C6slOWpgCM9CTjrtuwA51yBgsLMOARI86gaoadFoHg", "image": "sia://PAF7C6slOWpgCM9CTjrtuwA51yBgsLMOARI86gaoadFoHg" }, { "thumbnail": "sia://PAF7C6slOWpgCM9CTjrtuwA51yBgsLMOARI86gaoadFoHg", "image": "sia://PAF7C6slOWpgCM9CTjrtuwA51yBgsLMOARI86gaoadFoHg" }, { "thumbnail": "sia://PAF7C6slOWpgCM9CTjrtuwA51yBgsLMOARI86gaoadFoHg", "image": "sia://PAF7C6slOWpgCM9CTjrtuwA51yBgsLMOARI86gaoadFoHg" }, { "thumbnail": "sia://PAF7C6slOWpgCM9CTjrtuwA51yBgsLMOARI86gaoadFoHg", "image": "sia://PAF7C6slOWpgCM9CTjrtuwA51yBgsLMOARI86gaoadFoHg" } ] }, "previewVideo": { "thumbnail": "sia://PAF7C6slOWpgCM9CTjrtuwA51yBgsLMOARI86gaoadFoHg", "mp4+1080x1920": "sia://PAF7C6slOWpgCM9CTjrtuwA51yBgsLMOARI86gaoadFoHg" }, "appDescription": "", "releaseNotes": "", "history": [ "list of skylinks" ], "supportDetails": "", "connections": { "twitter": "", "email": "", "discord": "" } }, "ts": 1610328319 }
export interface IAppComments { "id": "SKAPP_ID", "version": "1", "prevSkylink":"", "content": { "comments" : "[{timestamp : comment1},{timestamp : comment1}]" // list of comments }, "ts": 1610328319 }
export interface IAppStats { "id": "SKAPP_ID", "version": "1", "prevSkylink":"", "content": { "favorite" : 100, "viewed" : 100, // counter increments everytime card is clicked to view details "liked" : 500, "accessed" : 150, // counter increments everytime app URL is clicked }, "ts": 1610328319 }