@procamp/cli 0.0.5 → 0.0.6

Sign up to get free protection for your applications and to get access to all the features.
@@ -49,14 +49,20 @@ function publishCourse(access) {
49
49
  return __awaiter(this, void 0, void 0, function* () {
50
50
  const directory = process.cwd();
51
51
  const filenameConf = path.join(directory, 'meta.json');
52
- let isPrivate = true;
53
- if (access && access.toLowerCase() === 'public') {
54
- isPrivate = false;
55
- }
56
52
  if (yield fs.exists(filenameConf)) {
57
53
  const data = yield fs.readFile(filenameConf, { encoding: 'utf-8' });
58
54
  let meta = JSON.parse(data);
59
- meta.public = !isPrivate;
55
+ meta.public = !!meta.public;
56
+ if (access) {
57
+ switch (access.toLowerCase()) {
58
+ case 'public':
59
+ meta.public = true;
60
+ break;
61
+ case 'private':
62
+ meta.public = false;
63
+ break;
64
+ }
65
+ }
60
66
  yield (0, writeJson_1.writeJson)({
61
67
  directory,
62
68
  data: meta
@@ -1 +1 @@
1
- {"version":3,"file":"publish.js","sourceRoot":"","sources":["../../src/command/publish.ts"],"names":[],"mappings":"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","sourcesContent":["import { validateCourse } from '@procamp/course-validator';\nimport axios from 'axios';\nimport FormData from 'form-data';\nimport * as fs from 'fs-extra';\nimport * as os from 'os';\nimport * as path from 'path';\nimport { courseInfo } from '../interfaces/course';\nimport { procampConfig } from '../interfaces/procamp_config';\nimport { error } from '../utils/output';\nimport { writeJson } from '../utils/writeJson';\nimport { zipCourse } from './pack';\n\nexport async function publishCourse(access: string) {\n const directory = process.cwd();\n const filenameConf = path.join(directory, 'meta.json');\n let isPrivate = true;\n if (access && access.toLowerCase() === 'public') {\n isPrivate = false;\n }\n\n if (await fs.exists(filenameConf)) {\n const data = await fs.readFile(filenameConf, { encoding: 'utf-8' });\n let meta: courseInfo = JSON.parse(data);\n meta.public = !isPrivate;\n\n await writeJson({\n directory,\n data: meta\n });\n\n if (meta.courseId && meta.courseId.length !== 0) {\n const courseId: string = meta.courseId;\n const filePathZip = path.join(directory, '.output.zip');\n const configPath = path.join(os.homedir(), '.procamp-config.json');\n let configContent: procampConfig;\n if (await fs.exists(configPath)) {\n try {\n configContent = await fs.readJSON(configPath);\n } catch (e) {\n throw e;\n }\n if (!('userId' in meta) || meta.userId.length !== 0) {\n if (configContent.userId)\n await fs.writeJson(\n filenameConf,\n { ...meta, userId: configContent['userId'] },\n { spaces: 2 }\n );\n }\n } else return error(\"I don't find config file.Please log in \");\n\n await validateCourse(directory);\n const postZipfile = async () => {\n if (await fs.exists(filePathZip)) {\n const fileStream = fs.createReadStream(filePathZip);\n const form = new FormData();\n form.append('file', fileStream);\n axios\n .post(\n `https://course-manager.procamp.dev/api/courses/${courseId}`,\n form,\n {\n headers: {\n 'x-api-key': configContent['api_key']\n }\n }\n )\n .then((response) => {\n console.log(response.data);\n })\n .catch((err) => {\n if ('response' in err)\n if ('data' in err.response) {\n const data = err.response.data;\n if ('statusCode' in data && 'message' in data)\n error(\n 'Error publishing folder: ' +\n data.message +\n '. Error ' +\n data.statusCode\n );\n }\n });\n }\n };\n\n await zipCourse({ directory: directory });\n\n return await postZipfile();\n } else {\n return error(\n \"Course Id key don't exist or null in meta.json.\\n\" +\n 'Please complete course id'\n );\n }\n } else {\n return error('meta.json file does not exist');\n }\n}\n"]}
1
+ {"version":3,"file":"publish.js","sourceRoot":"","sources":["../../src/command/publish.ts"],"names":[],"mappings":"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","sourcesContent":["import { validateCourse } from '@procamp/course-validator';\nimport axios from 'axios';\nimport FormData from 'form-data';\nimport * as fs from 'fs-extra';\nimport * as os from 'os';\nimport * as path from 'path';\nimport { courseInfo } from '../interfaces/course';\nimport { procampConfig } from '../interfaces/procamp_config';\nimport { error } from '../utils/output';\nimport { writeJson } from '../utils/writeJson';\nimport { zipCourse } from './pack';\n\nexport async function publishCourse(access: string) {\n const directory = process.cwd();\n const filenameConf = path.join(directory, 'meta.json');\n\n if (await fs.exists(filenameConf)) {\n const data = await fs.readFile(filenameConf, { encoding: 'utf-8' });\n let meta: courseInfo = JSON.parse(data);\n meta.public = !!meta.public;\n\n if (access) {\n switch (access.toLowerCase()) {\n case 'public':\n meta.public = true;\n break;\n case 'private':\n meta.public = false;\n break;\n }\n }\n\n await writeJson({\n directory,\n data: meta\n });\n\n if (meta.courseId && meta.courseId.length !== 0) {\n const courseId: string = meta.courseId;\n const filePathZip = path.join(directory, '.output.zip');\n const configPath = path.join(os.homedir(), '.procamp-config.json');\n let configContent: procampConfig;\n if (await fs.exists(configPath)) {\n try {\n configContent = await fs.readJSON(configPath);\n } catch (e) {\n throw e;\n }\n if (!('userId' in meta) || meta.userId.length !== 0) {\n if (configContent.userId)\n await fs.writeJson(\n filenameConf,\n { ...meta, userId: configContent['userId'] },\n { spaces: 2 }\n );\n }\n } else return error(\"I don't find config file.Please log in \");\n\n await validateCourse(directory);\n const postZipfile = async () => {\n if (await fs.exists(filePathZip)) {\n const fileStream = fs.createReadStream(filePathZip);\n const form = new FormData();\n form.append('file', fileStream);\n axios\n .post(\n `https://course-manager.procamp.dev/api/courses/${courseId}`,\n form,\n {\n headers: {\n 'x-api-key': configContent['api_key']\n }\n }\n )\n .then((response) => {\n console.log(response.data);\n })\n .catch((err) => {\n if ('response' in err)\n if ('data' in err.response) {\n const data = err.response.data;\n if ('statusCode' in data && 'message' in data)\n error(\n 'Error publishing folder: ' +\n data.message +\n '. Error ' +\n data.statusCode\n );\n }\n });\n }\n };\n\n await zipCourse({ directory: directory });\n\n return await postZipfile();\n } else {\n return error(\n \"Course Id key don't exist or null in meta.json.\\n\" +\n 'Please complete course id'\n );\n }\n } else {\n return error('meta.json file does not exist');\n }\n}\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@procamp/cli",
3
- "version": "0.0.5",
3
+ "version": "0.0.6",
4
4
  "description": "Procamp CLI",
5
5
  "main": "dist/index.js",
6
6
  "files": [