Merge pull request #2 from Unity-Technologies/feature/main/promise-warp
Feature - Wrap all the packages with promise
This commit is contained in:
Коммит
36575f37c3
167
lib/index.js
167
lib/index.js
|
@ -14,101 +14,124 @@ const setConfig = (host) => {
|
|||
}
|
||||
|
||||
const login = async (username, password) => {
|
||||
|
||||
// login
|
||||
var token = await axios.post(`${this.host}/api/login`, {
|
||||
'username': username,
|
||||
'password': password
|
||||
});
|
||||
var user_id = token.data.userId;
|
||||
var access_token = token.data.accessToken;
|
||||
var publisherId = token.data.publisherId;
|
||||
return new Promise(async (resolve, reject) => {
|
||||
try {
|
||||
// login
|
||||
var token = await axios.post(`${this.host}/api/login`, {
|
||||
'username': username,
|
||||
'password': password
|
||||
});
|
||||
var user_id = token.data.userId;
|
||||
var access_token = token.data.accessToken;
|
||||
|
||||
var key = await axios.post(`${this.host}/api/publishing-key`, {}, {
|
||||
headers: { Authorization: `Bearer ${access_token}` }
|
||||
});
|
||||
var payload = {
|
||||
'sub': key.data.keyChainId.toString(),
|
||||
'iss': key.data.keyChainId.toString(),
|
||||
'iat': Date.now() / 1000 - 60,
|
||||
'exp': Date.now() / 1000 + 86400,
|
||||
'aud': 'genesis',
|
||||
'scope': 'genesis.generateAccessToken'
|
||||
}
|
||||
|
||||
var private_key = `-----BEGIN PRIVATE KEY-----\n${key.data.privateKey}\n-----END PRIVATE KEY-----`
|
||||
|
||||
var api_token = jwt.sign(payload, private_key, {
|
||||
algorithm: 'RS256',
|
||||
header: {'kid': key.data.id.toString(), 'uid': user_id.toString()}
|
||||
});
|
||||
resolve({api_token, access_token});
|
||||
} catch (err) {
|
||||
reject(err);
|
||||
}
|
||||
})
|
||||
|
||||
console.log(`Successfully login with userId: ${user_id}, pubisherId: ${publisherId}.`)
|
||||
|
||||
var key = await axios.post(`${this.host}/api/publishing-key`, {}, {
|
||||
headers: { Authorization: `Bearer ${access_token}` }
|
||||
});
|
||||
var payload = {
|
||||
'sub': key.data.keyChainId.toString(),
|
||||
'iss': key.data.keyChainId.toString(),
|
||||
'iat': Date.now() / 1000 - 60,
|
||||
'exp': Date.now() / 1000 + 86400,
|
||||
'aud': 'genesis',
|
||||
'scope': 'genesis.generateAccessToken'
|
||||
}
|
||||
var private_key = `-----BEGIN PRIVATE KEY-----\n${key.data.privateKey}\n-----END PRIVATE KEY-----`
|
||||
|
||||
|
||||
var api_token = jwt.sign(payload, private_key, {
|
||||
algorithm: 'RS256',
|
||||
header: {'kid': key.data.id.toString(), 'uid': user_id.toString()}
|
||||
});
|
||||
|
||||
|
||||
return {api_token, access_token}
|
||||
}
|
||||
|
||||
const deleteDraftPackageVersion = async (keys, package_version_id) => {
|
||||
var config = { headers: { Authorization: `Bearer ${keys.api_token}` }}
|
||||
var res = await axios.delete(`${this.host}/store-publishing/package-version/${package_version_id}`, config);
|
||||
return res;
|
||||
return new Promise(async (resolve, reject) => {
|
||||
try {
|
||||
var config = { headers: { Authorization: `Bearer ${keys.api_token}` }}
|
||||
var res = await axios.delete(`${this.host}/store-publishing/package-version/${package_version_id}`, config);
|
||||
resolve(res);
|
||||
} catch (err) {
|
||||
reject(err);
|
||||
}})
|
||||
}
|
||||
|
||||
|
||||
const getPackageVersion = async (keys, package_version_id) => {
|
||||
var config = { headers: { Authorization: `Bearer ${keys.api_token}` }}
|
||||
var res = await axios.get(`${this.host}/store-publishing/package-version/${package_version_id}`, config);
|
||||
console.log(`Package Version:`);
|
||||
console.log(res.data);
|
||||
return res.data;
|
||||
return new Promise(async (resolve, reject) => {
|
||||
try {
|
||||
var config = { headers: { Authorization: `Bearer ${keys.api_token}` }}
|
||||
var res = await axios.get(`${this.host}/store-publishing/package-version/${package_version_id}`, config);
|
||||
resolve(res.data);
|
||||
} catch (err) {
|
||||
reject(err);
|
||||
}})
|
||||
}
|
||||
|
||||
const getUnityVersionsList = async (keys) => {
|
||||
var config = { headers: { Authorization: `Bearer ${keys.api_token}` }}
|
||||
var res = await axios.get(`${this.host}/store-publishing/fetch/unity-versions`, config);
|
||||
console.log(`Unity Versions List:`);
|
||||
console.log(res.data);
|
||||
return res.data;
|
||||
return new Promise(async (resolve, reject) => {
|
||||
try {
|
||||
var config = { headers: { Authorization: `Bearer ${keys.api_token}` }}
|
||||
var res = await axios.get(`${this.host}/store-publishing/fetch/unity-versions`, config);
|
||||
resolve(res.data);
|
||||
} catch (err) {
|
||||
reject(err);
|
||||
}})
|
||||
}
|
||||
|
||||
const getCategoryList = async (keys) => {
|
||||
var config = { headers: { Authorization: `Bearer ${keys.api_token}` }}
|
||||
var res = await axios.get(`${this.host}/store-publishing/fetch/categories`, config);
|
||||
console.log(`Categories List:`);
|
||||
console.log(res.data);
|
||||
return res.data;
|
||||
return new Promise(async (resolve, reject) => {
|
||||
try {
|
||||
var config = { headers: { Authorization: `Bearer ${keys.api_token}` }}
|
||||
var res = await axios.get(`${this.host}/store-publishing/fetch/categories`, config);
|
||||
resolve(res.data);
|
||||
} catch (err) {
|
||||
reject(err);
|
||||
}})
|
||||
}
|
||||
|
||||
const getPublisherLimits = async (keys) => {
|
||||
var config = { headers: { Authorization: `Bearer ${keys.access_token}` }}
|
||||
var res = await axios.get(`${this.host}/api/publishing-limit`, config);
|
||||
console.log(`pbulisher limits:`);
|
||||
console.log(res.data);
|
||||
return res.data;
|
||||
return new Promise(async (resolve, reject) => {
|
||||
try {
|
||||
var config = { headers: { Authorization: `Bearer ${keys.access_token}` }}
|
||||
var res = await axios.get(`${this.host}/api/publishing-limit`, config);
|
||||
resolve(res.data);
|
||||
} catch (err) {
|
||||
reject(err);
|
||||
}})
|
||||
}
|
||||
|
||||
const uploadUnityPackage = async (keys, file, packageVersion_id, unity_version) => {
|
||||
var filesize = await fs.statSync(file);
|
||||
const size = filesize.size;
|
||||
return new Promise(async (resolve, reject) => {
|
||||
try {
|
||||
var filesize = await fs.statSync(file);
|
||||
const size = filesize.size;
|
||||
|
||||
var res = await axios.post(`${this.host}/store-publishing/package-version/${packageVersion_id}/unitypackage/prepare`, {
|
||||
'unityVersion': unity_version,
|
||||
'sizes': [size] },
|
||||
{ headers: { Authorization: `Bearer ${keys.api_token}` }}
|
||||
);
|
||||
var res = await axios.post(`${this.host}/store-publishing/package-version/${packageVersion_id}/unitypackage/prepare`, {
|
||||
'unityVersion': unity_version,
|
||||
'sizes': [size] },
|
||||
{ headers: { Authorization: `Bearer ${keys.api_token}` }}
|
||||
);
|
||||
|
||||
const form = new FormData();
|
||||
form.append('file', fs.createReadStream(file));
|
||||
form.append('unityVersion', unity_version);
|
||||
form.append('index', 0);
|
||||
|
||||
const form = new FormData();
|
||||
form.append('file', fs.createReadStream(file));
|
||||
form.append('unityVersion', unity_version);
|
||||
form.append('index', 0);
|
||||
var res = await axios.post(`${this.host}/store-publishing/package-version/${packageVersion_id}/unitypackage`, form,
|
||||
{ headers: { Authorization: `Bearer ${keys.api_token}` }}
|
||||
);
|
||||
|
||||
var res = await axios.post(`${this.host}/store-publishing/package-version/${packageVersion_id}/unitypackage`, form,
|
||||
{ headers: { Authorization: `Bearer ${keys.api_token}` }}
|
||||
);
|
||||
|
||||
console.log("res:");
|
||||
console.log(res.data);
|
||||
resolve(res.data);
|
||||
} catch (err) {
|
||||
reject(err);
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
module.exports = {
|
||||
|
|
Загрузка…
Ссылка в новой задаче