Comments (3)
Use in Datapub:
await client.put('resource_create', resource.descriptor)
The SDK implemented:
index.js
const ActionApi = require('./util/action-api')
class Client {
constructor(authToken, organizationId, datasetId, api) {
this.authToken = authToken
this.organizationId = organizationId
this.datasetId = datasetId
this.api = api
}
put(actionType, data) {
return ActionApi.action(this.api, this.authToken, actionType, data)
}
.
.
.
}
module.exports = {
Client,
}
Action function:
const ActionApi = {
// Call the ckan api actions ie. 'package_create'
action: async (baseUrl, authToken, actionType, data) => {
const path = `/api/3/action/${actionType}`
const config = {
headers: {
'Content-Type': 'application/json;charset=utf-8',
Authorization: authToken,
}
}
const body = JSON.stringify(data)
const response = await axios.post(`${baseUrl}${path}`, data, config)
if (!response.data.success) {
throw `Action response: ${response.statusText}`
}
return response.data
},
}
from ckan-client-js.
The action
method should be part of Client
class
class Client {
// Call the ckan api actions ie. 'package_create'
action: async(actionType, payload, forceHttpGet=false) => {
const path = `/api/3/action/${actionType}`
const config = {
headers: {
'Content-Type': 'application/json;charset=utf-8',
Authorization: this.authToken,
}
}
const body = JSON.stringify(data)
// TODO: if forceHttpGet then ...
const response = await axios.post(`${baseUrl}${path}`, data, config)
if (!response.data.success) {
throw `Action response: ${response.statusText}`
}
return response.data
},
}
from ckan-client-js.
Covered in #14
from ckan-client-js.
Related Issues (17)
- Push dataset metadata client.push(datasetMetadata) HOT 1
- pushBlob method to push resource data to blob storage HOT 1
- Publish into @datopian org on npm
- Update README to document the usage of action(), retrieve(), put() and create() functions
- Example script for testing against demo.ckan.org
- Use Yarn by default instead of NPM
- Update README for better explanation of using methods
- Implement Git LFS basic-multipart transfer support
- Use browser file object as a data instead of whole buffer on upload HOT 1
- Clean up this module
- Compatibility with trailing / in the URL
- [epic] v0.2 Development of the Client SDK HOT 3
- Refactor LfsClient.GitLfsClient to use code from `giftless-client-js` and remove it from `ckan-client-js`
- Refactor sdk to be more elegant HOT 2
- retrieve method for dataset metdata
- Implement get resource HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from ckan-client-js.