1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/cloudcube-graphlayer

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
uniqueindexs.go 3.4 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
david Отправлено 22.07.2013 18:58 1ba2ec9
package GraphLayer
import (
"encoding/json"
"errors"
// "log"
)
// 创建唯一节点
func (session *Session) CreateUniqueNode(indexName string /*uniqueness string,*/, data map[string]interface{}) (result *GraphDataTemplate, err error) {
session.Method = "post"
url := session.URL + "/" + "index" + "/" + "node"
if len(indexName) == 0 {
return result, errors.New("IndexName is nil!")
}
url += "/" + indexName
// if len(uniqueness) == 0 {
// return result, errors.New("Uniquenes is nil")
// }
//url += "?" + "uniqueness=" + uniqueness
url += "?unique"
// log.Println(url)
if data == nil {
return result, errors.New("Node Infor is nil!")
}
// log.Println(data)
buf, err := json.Marshal(data)
if err != nil {
return result, err
}
// log.Println(string(buf))
body, err := session.Send(url, string(buf))
if err != nil {
return result, err
}
// log.Println(session.StatusCode)
results, err := session.Unmarshal(body)
if err != nil {
return result, err
}
errorList := map[int]error{
400: errors.New("Invalid data send."),
}
result = results[0]
return result, session.NewError(errorList)
}
func (session *Session) CreateUniqueRelationship(indexKey string, indexValue string, startUri string, endUri string, relationType string) (result *GraphDataTemplate, err error) {
session.Method = "post"
url := session.URL + "/" + "index" + "/" + "relationship"
if len(relationType) == 0 {
return result, errors.New("relationType is nil!")
}
url += "/" + relationType
url += "/" + "?unique"
// log.Println(url)
if len(indexKey) == 0 || len(indexValue) == 0 || len(startUri) == 0 || len(endUri) == 0 {
return result, errors.New("Invalid data ...")
}
data := map[string]string{
"key": indexKey,
"value": indexValue,
"start": startUri,
"end": endUri,
"type": relationType,
}
// log.Println(data)
buf, err := json.Marshal(data)
if err != nil {
return result, err
}
// log.Println(string(buf))
body, err := session.Send(url, string(buf))
// log.Println(body)
if err != nil {
return result, err
}
// log.Println(session.StatusCode)
results, err := session.Unmarshal(body)
if err != nil {
return result, err
}
errorList := map[int]error{
400: errors.New("Invalid data send."),
}
result = results[0]
return result, session.NewError(errorList)
}
func (session *Session) AddRelationshipToIndex(indexKey string, indexValue string, relationshipUri string, relationType string) (result *GraphDataTemplate, err error) {
session.Method = "post"
url := session.URL + "/" + "index" + "/" + "relationship"
if len(relationType) == 0 {
return result, errors.New("relationType is nil!")
}
url += "/" + relationType
url += "/" + "?unique"
// log.Println(url)
if len(indexKey) == 0 || len(indexValue) == 0 || len(relationshipUri) == 0 {
return result, errors.New("Invalid data ...")
}
data := map[string]string{
"key": indexKey,
"value": indexValue,
"uri": relationshipUri,
}
// log.Println(data)
buf, err := json.Marshal(data)
if err != nil {
return result, err
}
// log.Println(string(buf))
body, err := session.Send(url, string(buf))
// log.Println(body)
if err != nil {
return result, err
}
// log.Println(session.StatusCode)
results, err := session.Unmarshal(body)
if err != nil {
return result, err
}
errorList := map[int]error{
400: errors.New("Invalid data send."),
}
result = results[0]
return result, session.NewError(errorList)
}

Опубликовать ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/cloudcube-graphlayer.git
git@api.gitlife.ru:oschina-mirror/cloudcube-graphlayer.git
oschina-mirror
cloudcube-graphlayer
cloudcube-graphlayer
master