add rest apis
authordamon92 <damon92.lee@samsung.com>
Fri, 29 Mar 2019 06:02:23 +0000 (15:02 +0900)
committerdamon92 <damon92.lee@samsung.com>
Fri, 29 Mar 2019 06:02:23 +0000 (15:02 +0900)
src/discoverymgr/discovery_setTXT.go
src/restapi/v1/restapi.go
src/restapi/v1/routers.go

index 35cf599..633a2d2 100644 (file)
@@ -10,16 +10,30 @@ var serverTXT []string
 //ResetServiceName will reset txt of mdns message
 func ResetServiceName() error {
        serverTXT = nil
-       return SetServiceNames(serverTXT)
+       return SetServiceNames("")
 }
 
 //AddNewServiceName add servicename to orchestration server
 func AddNewServiceName(doc *confdescription.Doc) error {
 
        newService := doc.ServiceInfo.ServiceName
+       if newService == "" {
+               return errors.New("no argument")
+       }
        if gServer == nil {
                return errors.New("Orchestration is not Exist")
        }
+       return SetServiceNames(newService)
+}
+
+//SetServiceNames set txt of mdns message
+func SetServiceNames(newService string) error {
+
+       if newService == "" {
+               gServer.SetText(serverTXT)
+               return nil
+       }
+
        for _, str := range serverTXT {
                if str == newService {
                        return errors.New("ServiceName Duplicated")
@@ -27,20 +41,15 @@ func AddNewServiceName(doc *confdescription.Doc) error {
        }
        serverTXT = append(serverTXT, newService)
 
-       return SetServiceNames(serverTXT)
-}
-
-//SetServiceNames set txt of mdns message
-func SetServiceNames(ServiceNames []string) error {
-
        var TXTSize int
-       for _, str := range ServiceNames {
+       for _, str := range serverTXT {
                TXTSize += len(str)
        }
        if TXTSize > maxTXTSize {
                return errors.New("TXT Size is Too much for mDNS TXT - 400B")
        }
-       gServer.SetText(ServiceNames)
+
+       gServer.SetText(serverTXT)
 
        return nil
 }
index 6abf518..59a967b 100644 (file)
@@ -80,6 +80,51 @@ func APIV1DiscoverymgrDevicesGet(w http.ResponseWriter, r *http.Request) {
        }
 }
 
+// APIV1DiscoverymgrDevicesPost function
+func APIV1DiscoverymgrDevicesPost(w http.ResponseWriter, r *http.Request) {
+       log.Printf("[%s] APIV1DiscoverymgrDevicesPost", logPrefix)
+
+       var distService map[string]interface{}
+       decoder := json.NewDecoder(r.Body)
+       err := decoder.Decode(&distService)
+       if err != nil {
+               return
+       }
+       target := distService["ServiceName"]
+
+       ret, err := discoverymgr.GetDeviceListWithService(target.(string))
+       if err != nil {
+               writeJSONResponse(w, nil, http.StatusBadRequest)
+               return
+       }
+       json, err := json.Marshal(ret)
+       if err == nil {
+               writeJSONResponse(w, json, http.StatusOK)
+       } else {
+               writeJSONResponse(w, nil, http.StatusBadRequest)
+       }
+}
+
+// APIV1DiscoverymgrDevicesTXTPost function
+func APIV1DiscoverymgrDevicesTXTPost(w http.ResponseWriter, r *http.Request) {
+       log.Printf("[%s] APIV1DiscoverymgrDevicesTXTPost", logPrefix)
+
+       var distService map[string]interface{}
+       decoder := json.NewDecoder(r.Body)
+       err := decoder.Decode(&distService)
+       if err != nil {
+               return
+       }
+       target := distService["ServiceName"]
+
+       err = discoverymgr.SetServiceNames(target.(string))
+       if err != nil {
+               writeJSONResponse(w, nil, http.StatusBadRequest)
+       } else {
+               writeJSONResponse(w, nil, http.StatusOK)
+       }
+}
+
 // APIV1ServicemgrServicesDelete function
 func APIV1ServicemgrServicesDelete(w http.ResponseWriter, r *http.Request) {
        log.Printf("[%s] APIV1ServicemgrServicesDelete", logPrefix)
index 5834c11..214cec7 100644 (file)
@@ -102,6 +102,20 @@ var routes = Routes{
        },
 
        Route{
+               "APIV1DiscoverymgrDevicesPost",
+               strings.ToUpper("Post"),
+               "/api/v1/discoverymgr/devices",
+               APIV1DiscoverymgrDevicesPost,
+       },
+
+       Route{
+               "APIV1DiscoverymgrDevicesTXTPost",
+               strings.ToUpper("Post"),
+               "/api/v1/discoverymgr/devices/TXT",
+               APIV1DiscoverymgrDevicesTXTPost,
+       },
+
+       Route{
                "APIV1ServicemgrServicesPost",
                strings.ToUpper("Post"),
                "/api/v1/servicemgr/services",