當前位置: 首頁>>代碼示例>>Golang>>正文


Golang storage.Storage類代碼示例

本文整理匯總了Golang中github.com/gophergala2016/gophersiesta/server/storage.Storage的典型用法代碼示例。如果您正苦於以下問題:Golang Storage類的具體用法?Golang Storage怎麽用?Golang Storage使用的例子?那麽, 這裏精選的類代碼示例或許可以為您提供幫助。


在下文中一共展示了Storage類的4個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Golang代碼示例。

示例1: GetLabels

func GetLabels(s storage.Storage) func(c *gin.Context) {
	return func(c *gin.Context) {

		name := c.Param("appname")

		lbls := s.GetLabels(name)

		labels := &Labels{lbls}

		c.IndentedJSON(http.StatusOK, labels)
	}
}
開發者ID:conejoninja,項目名稱:gophersiesta,代碼行數:12,代碼來源:configrations.go

示例2: ReplacePlaceholders

// ReplacePlaceholders generated a config file using the base config file for appname by replacing the possible placeholders
// that the config fiel might have given a group of labels. These labels are used to retrieve the placeholders stored values
func ReplacePlaceholders(s storage.Storage) func(c *gin.Context) {
	return func(c *gin.Context) {
		name := c.Param("appname")
		labels := c.DefaultQuery("labels", "default")
		renderType := c.Param("format")

		list := make(map[string]*placeholders.Placeholder)

		myViper, err := readTemplate(name)
		if err != nil {
			c.String(http.StatusNotFound, "")
		} else {
			properties := placeholders.GetPlaceHolders(myViper)
			for _, v := range properties.Placeholders {
				list[v.PlaceHolder] = v
			}

			lbls := strings.Split(labels, ",")
			// MERGE values of different labels, last overrides current value
			for _, label := range lbls {
				l := s.GetOptions(name, label)
				for k, v := range l {
					if list[k] != nil {
						list[k].PropertyValue = v
					}
				}
			}

			template := replaceTemplatePlaceHolders(myViper, list)

			extension := getFileExtension(myViper)

			replacedViper := viper.New()
			replacedViper.SetConfigType(extension)
			replacedViper.ReadConfig(bytes.NewBuffer([]byte(template)))

			b, err := render(replacedViper, renderType)

			if err == nil {
				c.Data(http.StatusOK, "text/plain", b)
			}

			if err != nil {

				c.String(http.StatusInternalServerError, "Could not render %s", err)
			}
		}

	}
}
開發者ID:gophergala2016,項目名稱:gophersiesta,代碼行數:52,代碼來源:placeholders.go

示例3: SetValues

// SetValues set the placeholders values for a given appname and concrete namespace represented as labels
// If no labels are provided the "default" label is used
func SetValues(s storage.Storage) func(c *gin.Context) {
	return func(c *gin.Context) {
		name := c.Param("appname")
		labels := c.DefaultQuery("labels", "default")

		body := c.Request.Body
		x, err := ioutil.ReadAll(body)

		if err != nil {
			c.String(http.StatusBadRequest, "Bad request")
		} else {

			data := map[string]interface{}{}
			json.Unmarshal(x, &data)

			lbls := strings.Split(labels, ",")
			if len(data) > 0 { //it's a JSON
				for _, label := range lbls {
					for k, v := range data {
						s.SetOption(name, label, k, fmt.Sprint(v))
					}
				}
				c.String(http.StatusOK, "Ok")
			} else if strings.Contains(string(x), "=") {
				pairs := strings.Split(string(x), ",")
				for _, label := range lbls {
					for _, v := range pairs {
						vv := strings.Split(v, "=")
						s.SetOption(name, label, vv[0], strings.Join(vv[1:], "="))
					}
				}
				c.String(http.StatusOK, "Ok")
			} else {
				c.String(http.StatusBadRequest, "Properties not well-formed")
			}

		}

	}
}
開發者ID:gophergala2016,項目名稱:gophersiesta,代碼行數:42,代碼來源:placeholders.go

示例4: GetValues

// GetValues return the placeholders values for a given appname and concrete namespace represented as labels.
// If no labels are provided the "default" label is used
func GetValues(s storage.Storage) func(c *gin.Context) {
	return func(c *gin.Context) {
		name := c.Param("appname")
		labels := c.DefaultQuery("labels", "default")

		list := make(map[string]string)
		if strings.Contains(labels, ",") {
			lbls := strings.Split(labels, ",")
			// MERGE values of different labels, last overrides current value
			for _, label := range lbls {
				l := s.GetOptions(name, label)
				for k, v := range l {
					list[k] = v
				}
			}
		} else {
			list = s.GetOptions(name, labels)
		}

		vs := placeholders.CreateValues(list)

		c.IndentedJSON(http.StatusOK, vs)
	}
}
開發者ID:gophergala2016,項目名稱:gophersiesta,代碼行數:26,代碼來源:placeholders.go


注:本文中的github.com/gophergala2016/gophersiesta/server/storage.Storage類示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。