mirror of
https://github.com/wekan/wekan.git
synced 2026-11-05 21:44:59 -05:00
The GitHub wiki is disabled and its content was migrated into docs/, so every https://github.com/wekan/wekan/wiki/... link now redirects to the repo home and is broken. Rewrite all internal links in docs/ to relative paths: - wiki/<Page> -> relative path to the corresponding docs/ file (renamed pages mapped explicitly: Caddy-Webserver-Config->Webserver/Caddy.md, Wekan-Markdown ->Features/Markdown/Markdown.md, REST-API-Role->API/Role.md, etc.) - wiki home -> docs/README.md - blob|tree|raw/main|master/<path> -> relative path (anchors and #Lxx line ranges preserved; bare URLs wrapped as [name](path) so they stay clickable) Kept absolute (intentionally not flattened to the current ref): - ref-pinned links (edge, devel, version tags, commit hashes) - links whose target no longer exists in the tree wiki/issues -> the GitHub issues tracker URL (external). 436 links across 113 files; verified no wiki links remain and no broken relative links introduced. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2.6 KiB
2.6 KiB
-
Login as Admin user as Form Data to get Bearer token REST API
-
There needs to be Custom Field added to board https://wekan.fi/api/v4.42/#wekan-rest-api-customfields
-
Custom Field at board and card will have same
_idhttps://wekan.fi/api/v4.42/#put_board_list_card -
When writing Custom Field value to card, like text field, content type needs to be "application/json" and the string needs to be an array:
-d '{ "customFields" : [ { "_id" : "oZHkpcaxDHnbkbqGo", "value" : "foobar" } ] }'
- For other types of Custom Fields, you can look at Custom Field structure from MongoDB database with nosqlbooster that can also login through ssh to server Wekan snap MongoDB port 27019
In Wekan code (old)
wekan/models/customFields.js , at bottom
//CUSTOM FIELD REST API
if (Meteor.isServer) {
JsonRoutes.add('GET', '/api/boards/:boardId/custom-fields', function (req, res) {
Authentication.checkUserId( req.userId);
const paramBoardId = req.params.boardId;
JsonRoutes.sendResult(res, {
code: 200,
data: CustomFields.find({ boardId: paramBoardId }),
});
});
JsonRoutes.add('GET', '/api/boards/:boardId/custom-fields/:customFieldId', function (req, res) {
Authentication.checkUserId( req.userId);
const paramBoardId = req.params.boardId;
const paramCustomFieldId = req.params.customFieldId;
JsonRoutes.sendResult(res, {
code: 200,
data: CustomFields.findOne({ _id: paramCustomFieldId, boardId: paramBoardId }),
});
});
JsonRoutes.add('POST', '/api/boards/:boardId/custom-fields', function (req, res) {
Authentication.checkUserId( req.userId);
const paramBoardId = req.params.boardId;
const id = CustomFields.direct.insert({
name: req.body.name,
type: req.body.type,
settings: req.body.settings,
showOnCard: req.body.showOnCard,
boardId: paramBoardId,
});
const customField = CustomFields.findOne({_id: id, boardId: paramBoardId });
customFieldCreation(req.body.authorId, customField);
JsonRoutes.sendResult(res, {
code: 200,
data: {
_id: id,
},
});
});
JsonRoutes.add('DELETE', '/api/boards/:boardId/custom-fields/:customFieldId', function (req, res) {
Authentication.checkUserId( req.userId);
const paramBoardId = req.params.boardId;
const id = req.params.customFieldId;
CustomFields.remove({ _id: id, boardId: paramBoardId });
JsonRoutes.sendResult(res, {
code: 200,
data: {
_id: id,
},
});
});
}