Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[add][s] add push method and fix tests - #11 #18

Closed
wants to merge 9 commits into from
4 changes: 3 additions & 1 deletion .prettierrc
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
{
"trailingComma": "es5",
"tabWidth": 2,
"semi": false,
"singleQuote": true
"singleQuote": true,
"printWidth": 79
}
39 changes: 34 additions & 5 deletions lib/index.js
Original file line number Diff line number Diff line change
@@ -1,16 +1,17 @@
const mapper = require('frictionless-ckan-mapper-js')
const frictionlessCkanMapper = require('frictionless-ckan-mapper-js')
const axios = require('axios')

const CkanAuthApi = require('./util/ckan-auth-api')
const CkanUploadAPI = require('./util/ckan-upload-api')
const ActionApi = require('./util/action-api')
const Open = require('./file')

const { camelToSnakeCase } = require('./util/general')

/**
* @class Client.
* @param {string} apiKey
* @param {number} organizationId
* @param {string} organizationId
* @param {string} datasetId
* @param {string} api
*/
Expand Down Expand Up @@ -70,8 +71,36 @@ class Client {
return response.data
}

put(actionType, data) {
return ActionApi.action(this.api, this.apiKey, actionType, data)
/**
* @async
* @param {(string|Object)} datasetNameOrMetadata
* @return {Promise<Object>} The frictionless dataset
*/
async create(datasetNameOrMetadata) {
const datasetMetadata =
typeof datasetNameOrMetadata === 'string'
? { name: datasetNameOrMetadata }
: datasetNameOrMetadata

const ckanMetadata = frictionlessCkanMapper.packageFrictionlessToCkan(
datasetMetadata
)

const response = await this.action('package_create', ckanMetadata)
return frictionlessCkanMapper.packageCkanToFrictionless(response.result)
}

/**
* @async
* @param {Object} datasetMetadata
* @return {Promise<Object>} The frictionless dataset
*/
async push(datasetMetadata) {
const ckanMetadata = frictionlessCkanMapper.packageFrictionlessToCkan(
datasetMetadata
)
const response = await this.action('package_update', ckanMetadata)
return frictionlessCkanMapper.packageCkanToFrictionless(response.result)
}

/**
Expand All @@ -90,7 +119,7 @@ class Client {
true
)

return mapper.packageCkanToFrictionless(response.result)
return frictionlessCkanMapper.packageCkanToFrictionless(response.result)
}

/**
Expand Down
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
"test": "test"
},
"scripts": {
"test": "ava test/upload.test.js --verbose",
"test": "ava test/*.test.js --verbose",
"test:watch": "ava test/*.test.js --verbose --watch",
"build": "webpack",
"build:watch": "webpack --watch"
Expand Down
2 changes: 1 addition & 1 deletion test/get.test.js
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ test('get package', async (t) => {
)
const packageResponseConvertedToFrictionless = JSON.parse(
await fs.readFileSync(
__dirname + '/mocks/getPackageFrictionlessResponse.json'
__dirname + '/mocks/frictionless-dataset-converted-from-ckan.json'
)
)
// Testing dataname/id
Expand Down
234 changes: 0 additions & 234 deletions test/metadata.test.js

This file was deleted.

Loading