summaryrefslogtreecommitdiffstats
path: root/ctl-lib/ctl-control.c
blob: 0605d6b9edd7c6d7a73b95b49125167d6485d51d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
/*
 * Copyright (C) 2016 "IoT.bzh"
 * Author Fulup Ar Foll <fulup@iot.bzh>
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *   http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, something express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 *
 */

#define _GNU_SOURCE
#include <stdio.h>
#include <string.h>

#include "ctl-config.h"

// onload section receive one action or an array of actions
int ControlConfig(AFB_ApiT apiHandle, CtlSectionT *section, json_object *actionsJ) {

    // Load time parse actions in config file
    if (actionsJ != NULL) {
        section->actions= ActionConfig(apiHandle, actionsJ, 1);

        if (!section->actions) {
            AFB_ApiError (apiHandle, "ControlLoad config fail processing onload actions");
            return 1;
        }
    }
    return 0;
}
class="nx">Folders) { common.APIError(c, "Invalid id") return } confMut.Lock() defer confMut.Unlock() c.JSON(http.StatusOK, s.cfg.Folders[id]) } // addFolder adds a new folder to server config func (s *APIService) addFolder(c *gin.Context) { var cfgArg xdsconfig.FolderConfig if c.BindJSON(&cfgArg) != nil { common.APIError(c, "Invalid arguments") return } confMut.Lock() defer confMut.Unlock() s.log.Debugln("Add folder config: ", cfgArg) newFld, err := s.mfolder.UpdateFolder(cfgArg) if err != nil { common.APIError(c, err.Error()) return } c.JSON(http.StatusOK, newFld) } // delFolder deletes folder from server config func (s *APIService) delFolder(c *gin.Context) { id := c.Param("id") if id == "" { common.APIError(c, "Invalid id") return } confMut.Lock() defer confMut.Unlock() s.log.Debugln("Delete folder id ", id) var delEntry xdsconfig.FolderConfig var err error if delEntry, err = s.mfolder.DeleteFolder(id); err != nil { common.APIError(c, err.Error()) return } c.JSON(http.StatusOK, delEntry) }