mirror of
https://github.com/balzack/databag.git
synced 2025-02-12 03:29:16 +00:00
golint doesnt like my naming, fine whatever
This commit is contained in:
parent
805b397ddc
commit
4716462368
@ -82,7 +82,7 @@ func AddAccount(w http.ResponseWriter, r *http.Request) {
|
||||
Username: username,
|
||||
Handle: strings.ToLower(username),
|
||||
Password: password,
|
||||
Guid: fingerprint,
|
||||
GUID: fingerprint,
|
||||
}
|
||||
detail := store.AccountDetail{
|
||||
PublicKey: publicPem,
|
||||
@ -113,7 +113,7 @@ func AddAccount(w http.ResponseWriter, r *http.Request) {
|
||||
|
||||
// create response
|
||||
profile := Profile{
|
||||
Guid: account.Guid,
|
||||
GUID: account.GUID,
|
||||
Handle: account.Username,
|
||||
Name: detail.Name,
|
||||
Description: detail.Description,
|
||||
|
@ -33,7 +33,7 @@ func AddAccountApp(w http.ResponseWriter, r *http.Request) {
|
||||
|
||||
// create app entry
|
||||
app := store.App {
|
||||
AccountID: account.Guid,
|
||||
AccountID: account.GUID,
|
||||
Name: appData.Name,
|
||||
Description: appData.Description,
|
||||
Image: appData.Image,
|
||||
@ -54,7 +54,7 @@ func AddAccountApp(w http.ResponseWriter, r *http.Request) {
|
||||
}
|
||||
|
||||
login := LoginAccess {
|
||||
AppToken: account.Guid + "." + access,
|
||||
AppToken: account.GUID + "." + access,
|
||||
Created: app.Created,
|
||||
}
|
||||
|
||||
|
@ -32,7 +32,7 @@ func AddArticle(w http.ResponseWriter, r *http.Request) {
|
||||
return res
|
||||
}
|
||||
|
||||
slot.ArticleSlotId = uuid.New().String()
|
||||
slot.ArticleSlotID = uuid.New().String()
|
||||
slot.AccountID = account.ID
|
||||
slot.ArticleID = article.ID
|
||||
slot.Revision = account.ArticleRevision + 1
|
||||
|
@ -33,7 +33,7 @@ func AddCard(w http.ResponseWriter, r *http.Request) {
|
||||
|
||||
slot := &store.CardSlot{}
|
||||
var card store.Card
|
||||
if err := store.DB.Preload("CardSlot").Preload("Groups").Where("account_id = ? AND guid = ?", account.Guid, guid).First(&card).Error; err != nil {
|
||||
if err := store.DB.Preload("CardSlot").Preload("Groups").Where("account_id = ? AND guid = ?", account.GUID, guid).First(&card).Error; err != nil {
|
||||
if !errors.Is(err, gorm.ErrRecordNotFound) {
|
||||
ErrResponse(w, http.StatusInternalServerError, err)
|
||||
return
|
||||
@ -46,7 +46,7 @@ func AddCard(w http.ResponseWriter, r *http.Request) {
|
||||
return
|
||||
}
|
||||
card := &store.Card{
|
||||
Guid: guid,
|
||||
GUID: guid,
|
||||
Username: identity.Handle,
|
||||
Name: identity.Name,
|
||||
Description: identity.Description,
|
||||
@ -58,7 +58,7 @@ func AddCard(w http.ResponseWriter, r *http.Request) {
|
||||
Status: APP_CARDCONFIRMED,
|
||||
ViewRevision: 0,
|
||||
InToken: hex.EncodeToString(data),
|
||||
AccountID: account.Guid,
|
||||
AccountID: account.GUID,
|
||||
}
|
||||
|
||||
// save new card
|
||||
@ -66,7 +66,7 @@ func AddCard(w http.ResponseWriter, r *http.Request) {
|
||||
if res := tx.Save(card).Error; res != nil {
|
||||
return res
|
||||
}
|
||||
slot.CardSlotId = uuid.New().String()
|
||||
slot.CardSlotID = uuid.New().String()
|
||||
slot.AccountID = account.ID
|
||||
slot.Revision = account.CardRevision + 1
|
||||
slot.CardID = card.ID
|
||||
@ -110,7 +110,7 @@ func AddCard(w http.ResponseWriter, r *http.Request) {
|
||||
slot = &card.CardSlot
|
||||
if slot == nil {
|
||||
slot = &store.CardSlot{
|
||||
CardSlotId: uuid.New().String(),
|
||||
CardSlotID: uuid.New().String(),
|
||||
AccountID: account.ID,
|
||||
Revision: account.CardRevision + 1,
|
||||
CardID: card.ID,
|
||||
|
@ -35,7 +35,7 @@ func AddChannel(w http.ResponseWriter, r *http.Request) {
|
||||
return res
|
||||
}
|
||||
|
||||
slot.ChannelSlotId = uuid.New().String()
|
||||
slot.ChannelSlotID = uuid.New().String()
|
||||
slot.AccountID = account.ID
|
||||
slot.ChannelID = channel.ID
|
||||
slot.Revision = account.ChannelRevision + 1
|
||||
@ -43,9 +43,9 @@ func AddChannel(w http.ResponseWriter, r *http.Request) {
|
||||
if res := tx.Save(slot).Error; res != nil {
|
||||
return res
|
||||
}
|
||||
for _, cardId := range params.Cards {
|
||||
for _, cardID := range params.Cards {
|
||||
cardSlot := store.CardSlot{}
|
||||
if res := tx.Preload("Card").Where("account_id = ? AND card_slot_id = ?", account.ID, cardId).First(&cardSlot).Error; res != nil {
|
||||
if res := tx.Preload("Card").Where("account_id = ? AND card_slot_id = ?", account.ID, cardID).First(&cardSlot).Error; res != nil {
|
||||
return res
|
||||
}
|
||||
if res := tx.Model(&slot.Channel).Association("Cards").Append(cardSlot.Card); res != nil {
|
||||
@ -54,9 +54,9 @@ func AddChannel(w http.ResponseWriter, r *http.Request) {
|
||||
cards = append(cards, cardSlot.Card);
|
||||
}
|
||||
|
||||
for _, groupId := range params.Groups {
|
||||
for _, groupID := range params.Groups {
|
||||
groupSlot := store.GroupSlot{}
|
||||
if res := tx.Preload("Group").Where("account_id = ? AND group_slot_id = ?", account.ID, groupId).First(&groupSlot).Error; res != nil {
|
||||
if res := tx.Preload("Group").Where("account_id = ? AND group_slot_id = ?", account.ID, groupID).First(&groupSlot).Error; res != nil {
|
||||
return res
|
||||
}
|
||||
if res := tx.Model(&slot.Channel).Association("Groups").Append(groupSlot.Group); res != nil {
|
||||
|
@ -27,7 +27,7 @@ func AddChannelTopic(w http.ResponseWriter, r *http.Request) {
|
||||
topicSlot := &store.TopicSlot{}
|
||||
err = store.DB.Transaction(func(tx *gorm.DB) error {
|
||||
|
||||
topicSlot.TopicSlotId = uuid.New().String()
|
||||
topicSlot.TopicSlotID = uuid.New().String()
|
||||
topicSlot.AccountID = act.ID
|
||||
topicSlot.ChannelID = channelSlot.Channel.ID
|
||||
topicSlot.Revision = act.ChannelRevision + 1
|
||||
@ -41,7 +41,7 @@ func AddChannelTopic(w http.ResponseWriter, r *http.Request) {
|
||||
topic.TopicSlotID = topicSlot.ID
|
||||
topic.Data = subject.Data
|
||||
topic.DataType = subject.DataType
|
||||
topic.Guid = guid
|
||||
topic.GUID = guid
|
||||
topic.DetailRevision = act.ChannelRevision + 1
|
||||
topic.TagRevision = act.ChannelRevision + 1
|
||||
if confirm == "true" {
|
||||
@ -75,11 +75,11 @@ func AddChannelTopic(w http.ResponseWriter, r *http.Request) {
|
||||
// determine affected contact list
|
||||
cards := make(map[string]store.Card)
|
||||
for _, card := range channelSlot.Channel.Cards {
|
||||
cards[card.Guid] = card
|
||||
cards[card.GUID] = card
|
||||
}
|
||||
for _, group := range channelSlot.Channel.Groups {
|
||||
for _, card := range group.Cards {
|
||||
cards[card.Guid] = card
|
||||
cards[card.GUID] = card
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -18,7 +18,7 @@ func AddChannelTopicAsset(w http.ResponseWriter, r *http.Request) {
|
||||
|
||||
// scan parameters
|
||||
params := mux.Vars(r)
|
||||
topicId := params["topicId"]
|
||||
topicID := params["topicID"]
|
||||
var transforms []string
|
||||
if r.FormValue("transforms") != "" {
|
||||
if err := json.Unmarshal([]byte(r.FormValue("transforms")), &transforms); err != nil {
|
||||
@ -45,7 +45,7 @@ func AddChannelTopicAsset(w http.ResponseWriter, r *http.Request) {
|
||||
|
||||
// load topic
|
||||
var topicSlot store.TopicSlot
|
||||
if err = store.DB.Preload("Topic").Where("channel_id = ? AND topic_slot_id = ?", channelSlot.Channel.ID, topicId).First(&topicSlot).Error; err != nil {
|
||||
if err = store.DB.Preload("Topic").Where("channel_id = ? AND topic_slot_id = ?", channelSlot.Channel.ID, topicID).First(&topicSlot).Error; err != nil {
|
||||
if errors.Is(err, gorm.ErrRecordNotFound) {
|
||||
ErrResponse(w, http.StatusNotFound, err)
|
||||
} else {
|
||||
@ -59,7 +59,7 @@ func AddChannelTopicAsset(w http.ResponseWriter, r *http.Request) {
|
||||
}
|
||||
|
||||
// can only update topic if creator
|
||||
if topicSlot.Topic.Guid != guid {
|
||||
if topicSlot.Topic.GUID != guid {
|
||||
ErrResponse(w, http.StatusUnauthorized, errors.New("topic not created by you"))
|
||||
return
|
||||
}
|
||||
@ -70,7 +70,7 @@ func AddChannelTopicAsset(w http.ResponseWriter, r *http.Request) {
|
||||
|
||||
// save new file
|
||||
id := uuid.New().String()
|
||||
path := getStrConfigValue(CONFIG_ASSETPATH, APP_DEFAULTPATH) + "/" + channelSlot.Account.Guid + "/" + id
|
||||
path := getStrConfigValue(CONFIG_ASSETPATH, APP_DEFAULTPATH) + "/" + channelSlot.Account.GUID + "/" + id
|
||||
if err := r.ParseMultipartForm(32 << 20); err != nil {
|
||||
ErrResponse(w, http.StatusBadRequest, err)
|
||||
return
|
||||
@ -90,7 +90,7 @@ func AddChannelTopicAsset(w http.ResponseWriter, r *http.Request) {
|
||||
|
||||
assets := []Asset{}
|
||||
asset := &store.Asset{}
|
||||
asset.AssetId = id
|
||||
asset.AssetID = id
|
||||
asset.AccountID = channelSlot.Account.ID
|
||||
asset.ChannelID = channelSlot.Channel.ID
|
||||
asset.TopicID = topicSlot.Topic.ID
|
||||
@ -101,15 +101,15 @@ func AddChannelTopicAsset(w http.ResponseWriter, r *http.Request) {
|
||||
if res := tx.Save(asset).Error; res != nil {
|
||||
return res
|
||||
}
|
||||
assets = append(assets, Asset{ AssetId: id, Status: APP_ASSETREADY})
|
||||
assets = append(assets, Asset{ AssetID: id, Status: APP_ASSETREADY})
|
||||
for _, transform := range transforms {
|
||||
asset := &store.Asset{}
|
||||
asset.AssetId = uuid.New().String()
|
||||
asset.AssetID = uuid.New().String()
|
||||
asset.AccountID = channelSlot.Account.ID
|
||||
asset.ChannelID = channelSlot.Channel.ID
|
||||
asset.TopicID = topicSlot.Topic.ID
|
||||
asset.Status = APP_ASSETWAITING
|
||||
asset.TransformId = id
|
||||
asset.TransformID = id
|
||||
t := strings.Split(transform, ";")
|
||||
if len(t) > 0 {
|
||||
asset.Transform = t[0]
|
||||
@ -123,7 +123,7 @@ func AddChannelTopicAsset(w http.ResponseWriter, r *http.Request) {
|
||||
if res := tx.Save(asset).Error; res != nil {
|
||||
return res
|
||||
}
|
||||
assets = append(assets, Asset{ AssetId: asset.AssetId, Transform: transform, Status: APP_ASSETWAITING})
|
||||
assets = append(assets, Asset{ AssetID: asset.AssetID, Transform: transform, Status: APP_ASSETWAITING})
|
||||
}
|
||||
if res := tx.Model(&topicSlot.Topic).Update("detail_revision", act.ChannelRevision + 1).Error; res != nil {
|
||||
return res
|
||||
@ -153,11 +153,11 @@ func AddChannelTopicAsset(w http.ResponseWriter, r *http.Request) {
|
||||
// determine affected contact list
|
||||
cards := make(map[string]store.Card)
|
||||
for _, card := range channelSlot.Channel.Cards {
|
||||
cards[card.Guid] = card
|
||||
cards[card.GUID] = card
|
||||
}
|
||||
for _, group := range channelSlot.Channel.Groups {
|
||||
for _, card := range group.Cards {
|
||||
cards[card.Guid] = card
|
||||
cards[card.GUID] = card
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -13,7 +13,7 @@ func AddChannelTopicTag(w http.ResponseWriter, r *http.Request) {
|
||||
|
||||
// scan parameters
|
||||
params := mux.Vars(r)
|
||||
topicId := params["topicId"]
|
||||
topicID := params["topicID"]
|
||||
|
||||
var subject Subject
|
||||
if err := ParseRequest(r, w, &subject); err != nil {
|
||||
@ -30,7 +30,7 @@ func AddChannelTopicTag(w http.ResponseWriter, r *http.Request) {
|
||||
|
||||
// load topic
|
||||
var topicSlot store.TopicSlot
|
||||
if err = store.DB.Preload("Topic.Tags").Where("channel_id = ? AND topic_slot_id = ?", channelSlot.Channel.ID, topicId).First(&topicSlot).Error; err != nil {
|
||||
if err = store.DB.Preload("Topic.Tags").Where("channel_id = ? AND topic_slot_id = ?", channelSlot.Channel.ID, topicID).First(&topicSlot).Error; err != nil {
|
||||
if errors.Is(err, gorm.ErrRecordNotFound) {
|
||||
ErrResponse(w, http.StatusNotFound, err)
|
||||
} else {
|
||||
@ -47,7 +47,7 @@ func AddChannelTopicTag(w http.ResponseWriter, r *http.Request) {
|
||||
tagSlot := &store.TagSlot{}
|
||||
err = store.DB.Transaction(func(tx *gorm.DB) error {
|
||||
|
||||
tagSlot.TagSlotId = uuid.New().String()
|
||||
tagSlot.TagSlotID = uuid.New().String()
|
||||
tagSlot.AccountID = act.ID
|
||||
tagSlot.Revision = act.ChannelRevision + 1
|
||||
tagSlot.ChannelID = channelSlot.Channel.ID
|
||||
@ -61,7 +61,7 @@ func AddChannelTopicTag(w http.ResponseWriter, r *http.Request) {
|
||||
tag.ChannelID = channelSlot.Channel.ID
|
||||
tag.TopicID = topicSlot.Topic.ID
|
||||
tag.TagSlotID = tagSlot.ID
|
||||
tag.Guid = guid
|
||||
tag.GUID = guid
|
||||
tag.DataType = subject.DataType
|
||||
tag.Data = subject.Data
|
||||
if res := tx.Save(tag).Error; res != nil {
|
||||
@ -94,11 +94,11 @@ func AddChannelTopicTag(w http.ResponseWriter, r *http.Request) {
|
||||
// determine affected contact list
|
||||
cards := make(map[string]store.Card)
|
||||
for _, card := range channelSlot.Channel.Cards {
|
||||
cards[card.Guid] = card
|
||||
cards[card.GUID] = card
|
||||
}
|
||||
for _, group := range channelSlot.Channel.Groups {
|
||||
for _, card := range group.Cards {
|
||||
cards[card.Guid] = card
|
||||
cards[card.GUID] = card
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -40,7 +40,7 @@ func AddGroup(w http.ResponseWriter, r *http.Request) {
|
||||
return res
|
||||
}
|
||||
|
||||
slot.GroupSlotId = uuid.New().String()
|
||||
slot.GroupSlotID = uuid.New().String()
|
||||
slot.AccountID = account.ID
|
||||
slot.GroupID = group.ID
|
||||
slot.Revision = account.GroupRevision + 1
|
||||
|
@ -13,7 +13,7 @@ import (
|
||||
func AddNodeAccountAccess(w http.ResponseWriter, r *http.Request) {
|
||||
|
||||
params := mux.Vars(r)
|
||||
accountId, res := strconv.ParseUint(params["accountId"], 10, 32)
|
||||
accountID, res := strconv.ParseUint(params["accountID"], 10, 32)
|
||||
if res != nil {
|
||||
ErrResponse(w, http.StatusBadRequest, res)
|
||||
return
|
||||
@ -32,7 +32,7 @@ func AddNodeAccountAccess(w http.ResponseWriter, r *http.Request) {
|
||||
token := hex.EncodeToString(data)
|
||||
|
||||
accountToken := store.AccountToken{
|
||||
AccountID: uint(accountId),
|
||||
AccountID: uint(accountID),
|
||||
TokenType: APP_TOKENRESET,
|
||||
Token: token,
|
||||
Expires: time.Now().Unix() + APP_RESETEXPIRE,
|
||||
|
@ -22,7 +22,7 @@ func Authorize(w http.ResponseWriter, r *http.Request) {
|
||||
claim := &Claim{ Token: token }
|
||||
|
||||
msg, err := WriteDataMessage(detail.PrivateKey, detail.PublicKey, detail.KeyType,
|
||||
APP_SIGNPKCS1V15, account.Guid, APP_MSGAUTHENTICATE, &claim)
|
||||
APP_SIGNPKCS1V15, account.GUID, APP_MSGAUTHENTICATE, &claim)
|
||||
if err != nil {
|
||||
ErrResponse(w, http.StatusInternalServerError, err)
|
||||
return
|
||||
|
@ -18,12 +18,12 @@ func ClearArticleGroup(w http.ResponseWriter, r *http.Request) {
|
||||
|
||||
// scan parameters
|
||||
params := mux.Vars(r)
|
||||
articleId := params["articleId"]
|
||||
groupId := params["groupId"]
|
||||
articleID := params["articleID"]
|
||||
groupID := params["groupID"]
|
||||
|
||||
// load referenced article
|
||||
var articleSlot store.ArticleSlot
|
||||
if err := store.DB.Preload("Article").Where("account_id = ? AND article_slot_id = ?", account.ID, articleId).First(&articleSlot).Error; err != nil {
|
||||
if err := store.DB.Preload("Article").Where("account_id = ? AND article_slot_id = ?", account.ID, articleID).First(&articleSlot).Error; err != nil {
|
||||
if !errors.Is(err, gorm.ErrRecordNotFound) {
|
||||
ErrResponse(w, http.StatusInternalServerError, err)
|
||||
} else {
|
||||
@ -38,7 +38,7 @@ func ClearArticleGroup(w http.ResponseWriter, r *http.Request) {
|
||||
|
||||
// load referenced group
|
||||
var groupSlot store.GroupSlot
|
||||
if err := store.DB.Preload("Group.Cards").Where("account_id = ? AND group_slot_id = ?", account.ID, groupId).First(&groupSlot).Error; err != nil {
|
||||
if err := store.DB.Preload("Group.Cards").Where("account_id = ? AND group_slot_id = ?", account.ID, groupID).First(&groupSlot).Error; err != nil {
|
||||
if !errors.Is(err, gorm.ErrRecordNotFound) {
|
||||
ErrResponse(w, http.StatusInternalServerError, err)
|
||||
} else {
|
||||
|
@ -18,12 +18,12 @@ func ClearCardGroup(w http.ResponseWriter, r *http.Request) {
|
||||
|
||||
// scan parameters
|
||||
params := mux.Vars(r)
|
||||
cardId := params["cardId"]
|
||||
groupId := params["groupId"]
|
||||
cardID := params["cardID"]
|
||||
groupID := params["groupID"]
|
||||
|
||||
// load referenced card
|
||||
var cardSlot store.CardSlot
|
||||
if err := store.DB.Preload("Card").Where("account_id = ? AND card_slot_id = ?", account.ID, cardId).First(&cardSlot).Error; err != nil {
|
||||
if err := store.DB.Preload("Card").Where("account_id = ? AND card_slot_id = ?", account.ID, cardID).First(&cardSlot).Error; err != nil {
|
||||
if errors.Is(err, gorm.ErrRecordNotFound) {
|
||||
ErrResponse(w, http.StatusNotFound, err)
|
||||
} else {
|
||||
@ -38,7 +38,7 @@ func ClearCardGroup(w http.ResponseWriter, r *http.Request) {
|
||||
|
||||
// load referenced group
|
||||
var groupSlot store.GroupSlot
|
||||
if err := store.DB.Preload("Group").Where("account_id = ? AND group_slot_id = ?", account.ID, groupId).First(&groupSlot).Error; err != nil {
|
||||
if err := store.DB.Preload("Group").Where("account_id = ? AND group_slot_id = ?", account.ID, groupID).First(&groupSlot).Error; err != nil {
|
||||
if !errors.Is(err, gorm.ErrRecordNotFound) {
|
||||
ErrResponse(w, http.StatusInternalServerError, err)
|
||||
} else {
|
||||
|
@ -18,11 +18,11 @@ func ClearCardNotes(w http.ResponseWriter, r *http.Request) {
|
||||
|
||||
// scan parameters
|
||||
params := mux.Vars(r)
|
||||
cardId := params["cardId"]
|
||||
cardID := params["cardID"]
|
||||
|
||||
// load referenced card
|
||||
var slot store.CardSlot
|
||||
if err := store.DB.Preload("Card.Groups").Where("account_id = ? AND card_slot_id = ?", account.ID, cardId).First(&slot).Error; err != nil {
|
||||
if err := store.DB.Preload("Card.Groups").Where("account_id = ? AND card_slot_id = ?", account.ID, cardID).First(&slot).Error; err != nil {
|
||||
if !errors.Is(err, gorm.ErrRecordNotFound) {
|
||||
ErrResponse(w, http.StatusInternalServerError, err)
|
||||
} else {
|
||||
|
@ -18,12 +18,12 @@ func ClearChannelCard(w http.ResponseWriter, r *http.Request) {
|
||||
|
||||
// scan parameters
|
||||
params := mux.Vars(r)
|
||||
channelId := params["channelId"]
|
||||
cardId := params["cardId"]
|
||||
channelID := params["channelID"]
|
||||
cardID := params["cardID"]
|
||||
|
||||
// load referenced channel
|
||||
var channelSlot store.ChannelSlot
|
||||
if err := store.DB.Preload("Channel.Cards.CardSlot").Preload("Channel.Groups.GroupSlot").Preload("Channel.Groups.Cards").Where("account_id = ? AND channel_slot_id = ?", account.ID, channelId).First(&channelSlot).Error; err != nil {
|
||||
if err := store.DB.Preload("Channel.Cards.CardSlot").Preload("Channel.Groups.GroupSlot").Preload("Channel.Groups.Cards").Where("account_id = ? AND channel_slot_id = ?", account.ID, channelID).First(&channelSlot).Error; err != nil {
|
||||
if !errors.Is(err, gorm.ErrRecordNotFound) {
|
||||
ErrResponse(w, http.StatusInternalServerError, err)
|
||||
} else {
|
||||
@ -38,7 +38,7 @@ func ClearChannelCard(w http.ResponseWriter, r *http.Request) {
|
||||
|
||||
// load referenced card
|
||||
var cardSlot store.CardSlot
|
||||
if err := store.DB.Preload("Card.CardSlot").Where("account_id = ? AND card_slot_id = ?", account.ID, cardId).First(&cardSlot).Error; err != nil {
|
||||
if err := store.DB.Preload("Card.CardSlot").Where("account_id = ? AND card_slot_id = ?", account.ID, cardID).First(&cardSlot).Error; err != nil {
|
||||
if !errors.Is(err, gorm.ErrRecordNotFound) {
|
||||
ErrResponse(w, http.StatusInternalServerError, err)
|
||||
} else {
|
||||
@ -54,11 +54,11 @@ func ClearChannelCard(w http.ResponseWriter, r *http.Request) {
|
||||
// determine contact list
|
||||
cards := make(map[string]store.Card)
|
||||
for _, card := range channelSlot.Channel.Cards {
|
||||
cards[card.Guid] = card
|
||||
cards[card.GUID] = card
|
||||
}
|
||||
for _, group := range channelSlot.Channel.Groups {
|
||||
for _, card := range group.Cards {
|
||||
cards[card.Guid] = card
|
||||
cards[card.GUID] = card
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -18,12 +18,12 @@ func ClearChannelGroup(w http.ResponseWriter, r *http.Request) {
|
||||
|
||||
// scan parameters
|
||||
params := mux.Vars(r)
|
||||
channelId := params["channelId"]
|
||||
groupId := params["groupId"]
|
||||
channelID := params["channelID"]
|
||||
groupID := params["groupID"]
|
||||
|
||||
// load referenced channel
|
||||
var channelSlot store.ChannelSlot
|
||||
if err := store.DB.Preload("Channel.Cards.CardSlot").Preload("Channel.Groups.GroupSlot").Preload("Channel.Groups.Cards").Where("account_id = ? AND channel_slot_id = ?", account.ID, channelId).First(&channelSlot).Error; err != nil {
|
||||
if err := store.DB.Preload("Channel.Cards.CardSlot").Preload("Channel.Groups.GroupSlot").Preload("Channel.Groups.Cards").Where("account_id = ? AND channel_slot_id = ?", account.ID, channelID).First(&channelSlot).Error; err != nil {
|
||||
if !errors.Is(err, gorm.ErrRecordNotFound) {
|
||||
ErrResponse(w, http.StatusInternalServerError, err)
|
||||
} else {
|
||||
@ -38,7 +38,7 @@ func ClearChannelGroup(w http.ResponseWriter, r *http.Request) {
|
||||
|
||||
// load referenced group
|
||||
var groupSlot store.GroupSlot
|
||||
if err := store.DB.Preload("Group.Cards").Preload("Group.GroupSlot").Where("account_id = ? AND group_slot_id = ?", account.ID, groupId).First(&groupSlot).Error; err != nil {
|
||||
if err := store.DB.Preload("Group.Cards").Preload("Group.GroupSlot").Where("account_id = ? AND group_slot_id = ?", account.ID, groupID).First(&groupSlot).Error; err != nil {
|
||||
if !errors.Is(err, gorm.ErrRecordNotFound) {
|
||||
ErrResponse(w, http.StatusInternalServerError, err)
|
||||
} else {
|
||||
@ -55,7 +55,7 @@ func ClearChannelGroup(w http.ResponseWriter, r *http.Request) {
|
||||
cards := make(map[string]store.Card)
|
||||
for _, group := range channelSlot.Channel.Groups {
|
||||
for _, card := range group.Cards {
|
||||
cards[card.Guid] = card
|
||||
cards[card.GUID] = card
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -16,7 +16,7 @@ func GetAccountListing(w http.ResponseWriter, r *http.Request) {
|
||||
profiles := []CardProfile{}
|
||||
for _, account := range accounts {
|
||||
profiles = append(profiles, CardProfile{
|
||||
Guid: account.Guid,
|
||||
GUID: account.GUID,
|
||||
Handle: account.Username,
|
||||
Name: account.AccountDetail.Name,
|
||||
Description: account.AccountDetail.Description,
|
||||
|
@ -37,7 +37,7 @@ func GetAccountListingMessage(w http.ResponseWriter, r *http.Request) {
|
||||
Node: getStrConfigValue(CONFIG_DOMAIN, ""),
|
||||
}
|
||||
msg, res := WriteDataMessage(detail.PrivateKey, detail.PublicKey, detail.KeyType,
|
||||
APP_SIGNPKCS1V15, account.Guid, APP_MSGIDENTITY, &identity)
|
||||
APP_SIGNPKCS1V15, account.GUID, APP_MSGIDENTITY, &identity)
|
||||
if res != nil {
|
||||
ErrResponse(w, http.StatusInternalServerError, res)
|
||||
return
|
||||
|
@ -17,7 +17,7 @@ func GetArticleSubjectField(w http.ResponseWriter, r *http.Request) {
|
||||
|
||||
// scan parameters
|
||||
params := mux.Vars(r)
|
||||
articleId := params["articleId"]
|
||||
articleID := params["articleID"]
|
||||
field := params["field"]
|
||||
elements := strings.Split(field, ".")
|
||||
|
||||
@ -38,7 +38,7 @@ func GetArticleSubjectField(w http.ResponseWriter, r *http.Request) {
|
||||
return
|
||||
}
|
||||
act = &card.Account
|
||||
guid = card.Guid
|
||||
guid = card.GUID
|
||||
} else {
|
||||
ErrResponse(w, http.StatusBadRequest, errors.New("unknown token type"))
|
||||
return
|
||||
@ -46,7 +46,7 @@ func GetArticleSubjectField(w http.ResponseWriter, r *http.Request) {
|
||||
|
||||
// load article
|
||||
var slot store.ArticleSlot
|
||||
if err := store.DB.Preload("Article.Groups.Cards").Where("account_id = ? AND article_slot_id = ?", act.ID, articleId).First(&slot).Error; err != nil {
|
||||
if err := store.DB.Preload("Article.Groups.Cards").Where("account_id = ? AND article_slot_id = ?", act.ID, articleID).First(&slot).Error; err != nil {
|
||||
if errors.Is(err, gorm.ErrRecordNotFound) {
|
||||
ErrResponse(w, http.StatusNotFound, err)
|
||||
} else {
|
||||
|
@ -110,7 +110,7 @@ func GetArticles(w http.ResponseWriter, r *http.Request) {
|
||||
|
||||
for _, slot := range slots {
|
||||
if !typesSet || hasArticleType(types, slot.Article) {
|
||||
shared := isArticleShared(card.Guid, slot.Article)
|
||||
shared := isArticleShared(card.GUID, slot.Article)
|
||||
if articleRevisionSet {
|
||||
response = append(response, getArticleModel(&slot, shared, false))
|
||||
} else if shared {
|
||||
@ -136,7 +136,7 @@ func isArticleShared(guid string, article *store.Article) bool {
|
||||
}
|
||||
for _, group := range article.Groups {
|
||||
for _, card := range group.Cards {
|
||||
if guid == card.Guid {
|
||||
if guid == card.GUID {
|
||||
return true
|
||||
}
|
||||
}
|
||||
|
@ -15,10 +15,10 @@ func GetCard(w http.ResponseWriter, r *http.Request) {
|
||||
ErrResponse(w, code, err)
|
||||
return
|
||||
}
|
||||
cardId := mux.Vars(r)["cardId"]
|
||||
cardID := mux.Vars(r)["cardID"]
|
||||
|
||||
var slot store.CardSlot
|
||||
if err := store.DB.Preload("Card.Groups.GroupSlot").Where("account_id = ? AND card_slot_id = ?", account.ID, cardId).First(&slot).Error; err != nil {
|
||||
if err := store.DB.Preload("Card.Groups.GroupSlot").Where("account_id = ? AND card_slot_id = ?", account.ID, cardID).First(&slot).Error; err != nil {
|
||||
if errors.Is(err, gorm.ErrRecordNotFound) {
|
||||
ErrResponse(w, http.StatusNotFound, err)
|
||||
} else {
|
||||
|
@ -15,10 +15,10 @@ func GetCardDetail(w http.ResponseWriter, r *http.Request) {
|
||||
ErrResponse(w, code, err)
|
||||
return
|
||||
}
|
||||
cardId := mux.Vars(r)["cardId"]
|
||||
cardID := mux.Vars(r)["cardID"]
|
||||
|
||||
var slot store.CardSlot
|
||||
if err := store.DB.Preload("Card.Groups").Where("account_id = ? AND card_slot_id = ?", account.ID, cardId).First(&slot).Error; err != nil {
|
||||
if err := store.DB.Preload("Card.Groups").Where("account_id = ? AND card_slot_id = ?", account.ID, cardID).First(&slot).Error; err != nil {
|
||||
if errors.Is(err, gorm.ErrRecordNotFound) {
|
||||
ErrResponse(w, http.StatusNotFound, err)
|
||||
} else {
|
||||
|
@ -19,10 +19,10 @@ func GetCardProfileImage(w http.ResponseWriter, r *http.Request) {
|
||||
ErrResponse(w, code, err)
|
||||
return
|
||||
}
|
||||
cardId := mux.Vars(r)["cardId"]
|
||||
cardID := mux.Vars(r)["cardID"]
|
||||
|
||||
var slot store.CardSlot
|
||||
if err := store.DB.Preload("Card.Groups").Where("account_id = ? AND card_slot_id = ?", account.ID, cardId).First(&slot).Error; err != nil {
|
||||
if err := store.DB.Preload("Card.Groups").Where("account_id = ? AND card_slot_id = ?", account.ID, cardID).First(&slot).Error; err != nil {
|
||||
if errors.Is(err, gorm.ErrRecordNotFound) {
|
||||
ErrResponse(w, http.StatusNotFound, err)
|
||||
} else {
|
||||
|
@ -15,10 +15,10 @@ func GetCardProfile(w http.ResponseWriter, r *http.Request) {
|
||||
ErrResponse(w, code, err)
|
||||
return
|
||||
}
|
||||
cardId := mux.Vars(r)["cardId"]
|
||||
cardID := mux.Vars(r)["cardID"]
|
||||
|
||||
var slot store.CardSlot
|
||||
if err := store.DB.Preload("Card.Groups").Where("account_id = ? AND card_slot_id = ?", account.ID, cardId).First(&slot).Error; err != nil {
|
||||
if err := store.DB.Preload("Card.Groups").Where("account_id = ? AND card_slot_id = ?", account.ID, cardID).First(&slot).Error; err != nil {
|
||||
if errors.Is(err, gorm.ErrRecordNotFound) {
|
||||
ErrResponse(w, http.StatusNotFound, err)
|
||||
} else {
|
||||
|
@ -12,7 +12,7 @@ func GetChannelDetail(w http.ResponseWriter, r *http.Request) {
|
||||
|
||||
// scan parameters
|
||||
params := mux.Vars(r)
|
||||
channelId := params["channelId"]
|
||||
channelID := params["channelID"]
|
||||
|
||||
var guid string
|
||||
var act *store.Account
|
||||
@ -31,7 +31,7 @@ func GetChannelDetail(w http.ResponseWriter, r *http.Request) {
|
||||
return
|
||||
}
|
||||
act = &card.Account
|
||||
guid = card.Guid
|
||||
guid = card.GUID
|
||||
} else {
|
||||
ErrResponse(w, http.StatusBadRequest, errors.New("unknown token type"))
|
||||
return
|
||||
@ -39,7 +39,7 @@ func GetChannelDetail(w http.ResponseWriter, r *http.Request) {
|
||||
|
||||
// load channel
|
||||
var slot store.ChannelSlot
|
||||
if err := store.DB.Preload("Channel.Cards.CardSlot").Preload("Channel.Groups.Cards").Preload("Channel.Groups.GroupSlot").Where("account_id = ? AND channel_slot_id = ?", act.ID, channelId).First(&slot).Error; err != nil {
|
||||
if err := store.DB.Preload("Channel.Cards.CardSlot").Preload("Channel.Groups.Cards").Preload("Channel.Groups.GroupSlot").Where("account_id = ? AND channel_slot_id = ?", act.ID, channelID).First(&slot).Error; err != nil {
|
||||
if errors.Is(err, gorm.ErrRecordNotFound) {
|
||||
ErrResponse(w, http.StatusNotFound, err)
|
||||
} else {
|
||||
|
@ -12,7 +12,7 @@ func GetChannelSummary(w http.ResponseWriter, r *http.Request) {
|
||||
|
||||
// scan parameters
|
||||
params := mux.Vars(r)
|
||||
channelId := params["channelId"]
|
||||
channelID := params["channelID"]
|
||||
|
||||
var guid string
|
||||
var act *store.Account
|
||||
@ -31,7 +31,7 @@ func GetChannelSummary(w http.ResponseWriter, r *http.Request) {
|
||||
return
|
||||
}
|
||||
act = &card.Account
|
||||
guid = card.Guid
|
||||
guid = card.GUID
|
||||
} else {
|
||||
ErrResponse(w, http.StatusBadRequest, errors.New("unknown token type"))
|
||||
return
|
||||
@ -41,7 +41,7 @@ func GetChannelSummary(w http.ResponseWriter, r *http.Request) {
|
||||
var slot store.ChannelSlot
|
||||
if err := store.DB.Preload("Channel.Topics", func(db *gorm.DB) *gorm.DB {
|
||||
return store.DB.Order("topics.id DESC").Limit(1)
|
||||
}).Preload("Channel.Cards.CardSlot").Preload("Channel.Groups.Cards").Preload("Channel.Groups.GroupSlot").Where("account_id = ? AND channel_slot_id = ?", act.ID, channelId).First(&slot).Error; err != nil {
|
||||
}).Preload("Channel.Cards.CardSlot").Preload("Channel.Groups.Cards").Preload("Channel.Groups.GroupSlot").Where("account_id = ? AND channel_slot_id = ?", act.ID, channelID).First(&slot).Error; err != nil {
|
||||
if errors.Is(err, gorm.ErrRecordNotFound) {
|
||||
ErrResponse(w, http.StatusNotFound, err)
|
||||
} else {
|
||||
|
@ -12,7 +12,7 @@ func GetChannelTopic(w http.ResponseWriter, r *http.Request) {
|
||||
|
||||
// scan parameters
|
||||
params := mux.Vars(r)
|
||||
topicId := params["topicId"]
|
||||
topicID := params["topicID"]
|
||||
|
||||
channelSlot, _, err, code := getChannelSlot(r, false)
|
||||
if err != nil {
|
||||
@ -22,7 +22,7 @@ func GetChannelTopic(w http.ResponseWriter, r *http.Request) {
|
||||
|
||||
// load topic
|
||||
var topicSlot store.TopicSlot
|
||||
if err = store.DB.Preload("Topic.Assets").Where("channel_id = ? AND topic_slot_id = ?", channelSlot.Channel.ID, topicId).First(&topicSlot).Error; err != nil {
|
||||
if err = store.DB.Preload("Topic.Assets").Where("channel_id = ? AND topic_slot_id = ?", channelSlot.Channel.ID, topicID).First(&topicSlot).Error; err != nil {
|
||||
if errors.Is(err, gorm.ErrRecordNotFound) {
|
||||
code = http.StatusNotFound
|
||||
} else {
|
||||
@ -36,7 +36,7 @@ func GetChannelTopic(w http.ResponseWriter, r *http.Request) {
|
||||
|
||||
func isMember(guid string, cards []store.Card) bool {
|
||||
for _, card := range cards {
|
||||
if guid == card.Guid {
|
||||
if guid == card.GUID {
|
||||
return true
|
||||
}
|
||||
}
|
||||
@ -46,7 +46,7 @@ func isMember(guid string, cards []store.Card) bool {
|
||||
func isViewer(guid string, groups []store.Group) bool {
|
||||
for _, group := range groups {
|
||||
for _, card := range group.Cards {
|
||||
if guid == card.Guid {
|
||||
if guid == card.GUID {
|
||||
return true
|
||||
}
|
||||
}
|
||||
@ -58,7 +58,7 @@ func getChannelSlot(r *http.Request, member bool) (slot store.ChannelSlot, guid
|
||||
|
||||
// scan parameters
|
||||
params := mux.Vars(r)
|
||||
channelId := params["channelId"]
|
||||
channelID := params["channelID"]
|
||||
|
||||
// validate contact access
|
||||
var account *store.Account
|
||||
@ -68,7 +68,7 @@ func getChannelSlot(r *http.Request, member bool) (slot store.ChannelSlot, guid
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
guid = account.Guid
|
||||
guid = account.GUID
|
||||
} else if tokenType == APP_TOKENCONTACT {
|
||||
var card *store.Card
|
||||
card, code, err = ParamContactToken(r, true)
|
||||
@ -76,7 +76,7 @@ func getChannelSlot(r *http.Request, member bool) (slot store.ChannelSlot, guid
|
||||
return
|
||||
}
|
||||
account = &card.Account
|
||||
guid = card.Guid
|
||||
guid = card.GUID
|
||||
} else {
|
||||
err = errors.New("unknown token type")
|
||||
code = http.StatusBadRequest
|
||||
@ -84,7 +84,7 @@ func getChannelSlot(r *http.Request, member bool) (slot store.ChannelSlot, guid
|
||||
}
|
||||
|
||||
// load channel
|
||||
if err = store.DB.Preload("Account").Preload("Channel.Cards").Preload("Channel.Groups.Cards").Where("account_id = ? AND channel_slot_id = ?", account.ID, channelId).First(&slot).Error; err != nil {
|
||||
if err = store.DB.Preload("Account").Preload("Channel.Cards").Preload("Channel.Groups.Cards").Where("account_id = ? AND channel_slot_id = ?", account.ID, channelID).First(&slot).Error; err != nil {
|
||||
if errors.Is(err, gorm.ErrRecordNotFound) {
|
||||
code = http.StatusNotFound
|
||||
} else {
|
||||
|
@ -12,8 +12,8 @@ func GetChannelTopicAsset(w http.ResponseWriter, r *http.Request) {
|
||||
|
||||
// scan parameters
|
||||
params := mux.Vars(r)
|
||||
topicId := params["topicId"]
|
||||
assetId := params["assetId"]
|
||||
topicID := params["topicID"]
|
||||
assetID := params["assetID"]
|
||||
|
||||
channelSlot, _, err, code := getChannelSlot(r, true)
|
||||
if err != nil {
|
||||
@ -24,7 +24,7 @@ func GetChannelTopicAsset(w http.ResponseWriter, r *http.Request) {
|
||||
|
||||
// load asset
|
||||
var asset store.Asset
|
||||
if err = store.DB.Preload("Topic.TopicSlot").Where("channel_id = ? AND asset_id = ?", channelSlot.Channel.ID, assetId).First(&asset).Error; err != nil {
|
||||
if err = store.DB.Preload("Topic.TopicSlot").Where("channel_id = ? AND asset_id = ?", channelSlot.Channel.ID, assetID).First(&asset).Error; err != nil {
|
||||
if errors.Is(err, gorm.ErrRecordNotFound) {
|
||||
ErrResponse(w, http.StatusNotFound, err)
|
||||
} else {
|
||||
@ -32,7 +32,7 @@ func GetChannelTopicAsset(w http.ResponseWriter, r *http.Request) {
|
||||
}
|
||||
return
|
||||
}
|
||||
if asset.Topic.TopicSlot.TopicSlotId != topicId {
|
||||
if asset.Topic.TopicSlot.TopicSlotID != topicID {
|
||||
ErrResponse(w, http.StatusNotFound, errors.New("invalid topic asset"))
|
||||
return
|
||||
}
|
||||
@ -42,7 +42,7 @@ func GetChannelTopicAsset(w http.ResponseWriter, r *http.Request) {
|
||||
}
|
||||
|
||||
// construct file path
|
||||
path := getStrConfigValue(CONFIG_ASSETPATH, APP_DEFAULTPATH) + "/" + act.Guid + "/" + asset.AssetId
|
||||
path := getStrConfigValue(CONFIG_ASSETPATH, APP_DEFAULTPATH) + "/" + act.GUID + "/" + asset.AssetID
|
||||
http.ServeFile(w, r, path)
|
||||
}
|
||||
|
||||
|
@ -12,7 +12,7 @@ func GetChannelTopicAssets(w http.ResponseWriter, r *http.Request) {
|
||||
|
||||
// scan parameters
|
||||
params := mux.Vars(r)
|
||||
topicId := params["topicId"]
|
||||
topicID := params["topicID"]
|
||||
|
||||
channelSlot, guid, err, code := getChannelSlot(r, true)
|
||||
if err != nil {
|
||||
@ -22,7 +22,7 @@ func GetChannelTopicAssets(w http.ResponseWriter, r *http.Request) {
|
||||
|
||||
// load topic
|
||||
var topicSlot store.TopicSlot
|
||||
if err = store.DB.Preload("Topic.Assets").Where("channel_id = ? AND topic_slot_id = ?", channelSlot.Channel.ID, topicId).First(&topicSlot).Error; err != nil {
|
||||
if err = store.DB.Preload("Topic.Assets").Where("channel_id = ? AND topic_slot_id = ?", channelSlot.Channel.ID, topicID).First(&topicSlot).Error; err != nil {
|
||||
if errors.Is(err, gorm.ErrRecordNotFound) {
|
||||
ErrResponse(w, http.StatusNotFound, err)
|
||||
} else {
|
||||
@ -36,7 +36,7 @@ func GetChannelTopicAssets(w http.ResponseWriter, r *http.Request) {
|
||||
}
|
||||
|
||||
// only creator can list assets
|
||||
if topicSlot.Topic.Guid != guid {
|
||||
if topicSlot.Topic.GUID != guid {
|
||||
ErrResponse(w, http.StatusUnauthorized, errors.New("permission denied to asset list"))
|
||||
return
|
||||
}
|
||||
@ -44,7 +44,7 @@ func GetChannelTopicAssets(w http.ResponseWriter, r *http.Request) {
|
||||
// return list of assets
|
||||
assets := []Asset{}
|
||||
for _, asset := range topicSlot.Topic.Assets {
|
||||
assets = append(assets, Asset{ AssetId: asset.AssetId, Status: asset.Status })
|
||||
assets = append(assets, Asset{ AssetID: asset.AssetID, Status: asset.Status })
|
||||
}
|
||||
WriteResponse(w, &assets)
|
||||
}
|
||||
|
@ -12,7 +12,7 @@ func GetChannelTopicDetail(w http.ResponseWriter, r *http.Request) {
|
||||
|
||||
// scan parameters
|
||||
params := mux.Vars(r)
|
||||
topicId := params["topicId"]
|
||||
topicID := params["topicID"]
|
||||
|
||||
var subject Subject
|
||||
if err := ParseRequest(r, w, &subject); err != nil {
|
||||
@ -28,7 +28,7 @@ func GetChannelTopicDetail(w http.ResponseWriter, r *http.Request) {
|
||||
|
||||
// load topic
|
||||
var topicSlot store.TopicSlot
|
||||
if err = store.DB.Where("channel_id = ? AND topic_slot_id = ?", channelSlot.Channel.ID, topicId).First(&topicSlot).Error; err != nil {
|
||||
if err = store.DB.Where("channel_id = ? AND topic_slot_id = ?", channelSlot.Channel.ID, topicID).First(&topicSlot).Error; err != nil {
|
||||
if errors.Is(err, gorm.ErrRecordNotFound) {
|
||||
code = http.StatusNotFound
|
||||
} else {
|
||||
|
@ -17,7 +17,7 @@ func GetChannelTopicSubjectField(w http.ResponseWriter, r *http.Request) {
|
||||
|
||||
// scan parameters
|
||||
params := mux.Vars(r)
|
||||
topicId := params["topicId"]
|
||||
topicID := params["topicID"]
|
||||
field := params["field"]
|
||||
elements := strings.Split(field, ".")
|
||||
|
||||
@ -29,7 +29,7 @@ func GetChannelTopicSubjectField(w http.ResponseWriter, r *http.Request) {
|
||||
|
||||
// load topic
|
||||
var topicSlot store.TopicSlot
|
||||
if err = store.DB.Where("channel_id = ? AND topic_slot_id = ?", channelSlot.Channel.ID, topicId).First(&topicSlot).Error; err != nil {
|
||||
if err = store.DB.Where("channel_id = ? AND topic_slot_id = ?", channelSlot.Channel.ID, topicID).First(&topicSlot).Error; err != nil {
|
||||
if errors.Is(err, gorm.ErrRecordNotFound) {
|
||||
code = http.StatusNotFound
|
||||
} else {
|
||||
|
@ -17,8 +17,8 @@ func GetChannelTopicTagSubjectField(w http.ResponseWriter, r *http.Request) {
|
||||
|
||||
// scan parameters
|
||||
params := mux.Vars(r)
|
||||
topicId := params["topicId"]
|
||||
tagId := params["tagId"]
|
||||
topicID := params["topicID"]
|
||||
tagID := params["tagID"]
|
||||
field := params["field"]
|
||||
elements := strings.Split(field, ".")
|
||||
|
||||
@ -30,7 +30,7 @@ func GetChannelTopicTagSubjectField(w http.ResponseWriter, r *http.Request) {
|
||||
|
||||
// load tag
|
||||
var tagSlot store.TagSlot
|
||||
if err = store.DB.Preload("Tag.Topic.TopicSlot").Where("channel_id = ? AND tag_slot_id = ?", channelSlot.Channel.ID, tagId).First(&tagSlot).Error; err != nil {
|
||||
if err = store.DB.Preload("Tag.Topic.TopicSlot").Where("channel_id = ? AND tag_slot_id = ?", channelSlot.Channel.ID, tagID).First(&tagSlot).Error; err != nil {
|
||||
if errors.Is(err, gorm.ErrRecordNotFound) {
|
||||
code = http.StatusNotFound
|
||||
} else {
|
||||
@ -42,7 +42,7 @@ func GetChannelTopicTagSubjectField(w http.ResponseWriter, r *http.Request) {
|
||||
ErrResponse(w, http.StatusNotFound, errors.New("referenced missing tag"))
|
||||
return
|
||||
}
|
||||
if tagSlot.Tag.Topic.TopicSlot.TopicSlotId != topicId {
|
||||
if tagSlot.Tag.Topic.TopicSlot.TopicSlotID != topicID {
|
||||
ErrResponse(w, http.StatusNotFound, errors.New("invalid topic tag"))
|
||||
return
|
||||
}
|
||||
|
@ -36,7 +36,7 @@ func GetChannelTopicTags(w http.ResponseWriter, r *http.Request) {
|
||||
|
||||
// scan parameters
|
||||
params := mux.Vars(r)
|
||||
topicId := params["topicId"]
|
||||
topicID := params["topicID"]
|
||||
|
||||
rev := r.FormValue("revision")
|
||||
if rev != "" {
|
||||
@ -76,7 +76,7 @@ func GetChannelTopicTags(w http.ResponseWriter, r *http.Request) {
|
||||
|
||||
// load topic
|
||||
var topicSlot store.TopicSlot
|
||||
if err = store.DB.Preload("Topic").Where("channel_id = ? AND topic_slot_id = ?", channelSlot.Channel.ID, topicId).First(&topicSlot).Error; err != nil {
|
||||
if err = store.DB.Preload("Topic").Where("channel_id = ? AND topic_slot_id = ?", channelSlot.Channel.ID, topicID).First(&topicSlot).Error; err != nil {
|
||||
if errors.Is(err, gorm.ErrRecordNotFound) {
|
||||
ErrResponse(w, http.StatusNotFound, err)
|
||||
} else {
|
||||
|
@ -119,7 +119,7 @@ func GetChannels(w http.ResponseWriter, r *http.Request) {
|
||||
|
||||
for _, slot := range slots {
|
||||
if !typesSet || hasChannelType(types, slot.Channel) {
|
||||
shared := isChannelShared(card.Guid, slot.Channel)
|
||||
shared := isChannelShared(card.GUID, slot.Channel)
|
||||
if channelRevisionSet {
|
||||
response = append(response, getChannelRevisionModel(&slot, shared))
|
||||
} else if shared {
|
||||
@ -144,13 +144,13 @@ func isChannelShared(guid string, channel *store.Channel) bool {
|
||||
return false
|
||||
}
|
||||
for _, card := range channel.Cards {
|
||||
if guid == card.Guid {
|
||||
if guid == card.GUID {
|
||||
return true
|
||||
}
|
||||
}
|
||||
for _, group := range channel.Groups {
|
||||
for _, card := range group.Cards {
|
||||
if guid == card.Guid {
|
||||
if guid == card.GUID {
|
||||
return true
|
||||
}
|
||||
}
|
||||
|
@ -16,10 +16,10 @@ func GetCloseMessage(w http.ResponseWriter, r *http.Request) {
|
||||
return
|
||||
}
|
||||
detail := account.AccountDetail
|
||||
cardId := mux.Vars(r)["cardId"]
|
||||
cardID := mux.Vars(r)["cardID"]
|
||||
|
||||
var slot store.CardSlot
|
||||
if err := store.DB.Preload("Card").Where("account_id = ? AND card_slot_id = ?", account.ID, cardId).First(&slot).Error; err != nil {
|
||||
if err := store.DB.Preload("Card").Where("account_id = ? AND card_slot_id = ?", account.ID, cardID).First(&slot).Error; err != nil {
|
||||
if !errors.Is(err, gorm.ErrRecordNotFound) {
|
||||
ErrResponse(w, http.StatusInternalServerError, err)
|
||||
} else {
|
||||
@ -38,11 +38,11 @@ func GetCloseMessage(w http.ResponseWriter, r *http.Request) {
|
||||
}
|
||||
|
||||
disconnect := &Disconnect{
|
||||
Contact: slot.Card.Guid,
|
||||
Contact: slot.Card.GUID,
|
||||
}
|
||||
|
||||
msg, err := WriteDataMessage(detail.PrivateKey, detail.PublicKey, detail.KeyType,
|
||||
APP_SIGNPKCS1V15, account.Guid, APP_MSGDISCONNECT, &disconnect)
|
||||
APP_SIGNPKCS1V15, account.GUID, APP_MSGDISCONNECT, &disconnect)
|
||||
if err != nil {
|
||||
ErrResponse(w, http.StatusInternalServerError, err)
|
||||
return
|
||||
|
@ -17,7 +17,7 @@ func GetGroupSubjectField(w http.ResponseWriter, r *http.Request) {
|
||||
|
||||
// scan parameters
|
||||
params := mux.Vars(r)
|
||||
groupId := params["groupId"]
|
||||
groupID := params["groupID"]
|
||||
field := params["field"]
|
||||
elements := strings.Split(field, ".")
|
||||
|
||||
@ -29,7 +29,7 @@ func GetGroupSubjectField(w http.ResponseWriter, r *http.Request) {
|
||||
|
||||
// load group
|
||||
var slot store.GroupSlot
|
||||
if err := store.DB.Preload("Group.GroupData").Where("account_id = ? AND group_slot_id = ?", account.ID, groupId).First(&slot).Error; err != nil {
|
||||
if err := store.DB.Preload("Group.GroupData").Where("account_id = ? AND group_slot_id = ?", account.ID, groupID).First(&slot).Error; err != nil {
|
||||
if errors.Is(err, gorm.ErrRecordNotFound) {
|
||||
ErrResponse(w, http.StatusNotFound, err)
|
||||
} else {
|
||||
|
@ -16,7 +16,7 @@ func GetNodeAccountImage(w http.ResponseWriter, r *http.Request) {
|
||||
|
||||
// get referenced account id
|
||||
params := mux.Vars(r)
|
||||
accountId, res := strconv.ParseUint(params["accountId"], 10, 32)
|
||||
accountID, res := strconv.ParseUint(params["accountID"], 10, 32)
|
||||
if res != nil {
|
||||
ErrResponse(w, http.StatusBadRequest, res)
|
||||
return
|
||||
@ -28,7 +28,7 @@ func GetNodeAccountImage(w http.ResponseWriter, r *http.Request) {
|
||||
}
|
||||
|
||||
var account store.Account
|
||||
if err := store.DB.Preload("AccountDetail").First(&account, uint(accountId)).Error; err != nil {
|
||||
if err := store.DB.Preload("AccountDetail").First(&account, uint(accountID)).Error; err != nil {
|
||||
if errors.Is(err, gorm.ErrRecordNotFound) {
|
||||
ErrResponse(w, http.StatusNotFound, err)
|
||||
} else {
|
||||
|
@ -21,8 +21,8 @@ func GetNodeAccounts(w http.ResponseWriter, r *http.Request) {
|
||||
profiles := []AccountProfile{}
|
||||
for _, account := range accounts {
|
||||
profiles = append(profiles, AccountProfile{
|
||||
AccountId: uint32(account.ID),
|
||||
Guid: account.Guid,
|
||||
AccountID: uint32(account.ID),
|
||||
GUID: account.GUID,
|
||||
Handle: account.Username,
|
||||
Name: account.AccountDetail.Name,
|
||||
Description: account.AccountDetail.Description,
|
||||
|
@ -16,10 +16,10 @@ func GetOpenMessage(w http.ResponseWriter, r *http.Request) {
|
||||
return
|
||||
}
|
||||
detail := account.AccountDetail
|
||||
cardId := mux.Vars(r)["cardId"]
|
||||
cardID := mux.Vars(r)["cardID"]
|
||||
|
||||
var slot store.CardSlot
|
||||
if err := store.DB.Preload("Card").Where("account_id = ? AND card_slot_id = ?", account.ID, cardId).First(&slot).Error; err != nil {
|
||||
if err := store.DB.Preload("Card").Where("account_id = ? AND card_slot_id = ?", account.ID, cardID).First(&slot).Error; err != nil {
|
||||
if !errors.Is(err, gorm.ErrRecordNotFound) {
|
||||
ErrResponse(w, http.StatusInternalServerError, err)
|
||||
} else {
|
||||
@ -38,7 +38,7 @@ func GetOpenMessage(w http.ResponseWriter, r *http.Request) {
|
||||
}
|
||||
|
||||
connect := &Connect{
|
||||
Contact: slot.Card.Guid,
|
||||
Contact: slot.Card.GUID,
|
||||
Token: slot.Card.InToken,
|
||||
ArticleRevision: account.ArticleRevision,
|
||||
ProfileRevision: account.ProfileRevision,
|
||||
@ -54,7 +54,7 @@ func GetOpenMessage(w http.ResponseWriter, r *http.Request) {
|
||||
}
|
||||
|
||||
msg, err := WriteDataMessage(detail.PrivateKey, detail.PublicKey, detail.KeyType,
|
||||
APP_SIGNPKCS1V15, account.Guid, APP_MSGCONNECT, &connect)
|
||||
APP_SIGNPKCS1V15, account.GUID, APP_MSGCONNECT, &connect)
|
||||
if err != nil {
|
||||
ErrResponse(w, http.StatusInternalServerError, err)
|
||||
return
|
||||
|
@ -43,7 +43,7 @@ func GetProfileMessage(w http.ResponseWriter, r *http.Request) {
|
||||
Node: getStrConfigValue(CONFIG_DOMAIN, ""),
|
||||
}
|
||||
msg, res := WriteDataMessage(detail.PrivateKey, detail.PublicKey, detail.KeyType,
|
||||
APP_SIGNPKCS1V15, account.Guid, APP_MSGIDENTITY, &identity)
|
||||
APP_SIGNPKCS1V15, account.GUID, APP_MSGIDENTITY, &identity)
|
||||
if res != nil {
|
||||
ErrResponse(w, http.StatusInternalServerError, res)
|
||||
return
|
||||
|
@ -78,7 +78,7 @@ func RemoveAccount(w http.ResponseWriter, r *http.Request) {
|
||||
}
|
||||
|
||||
// delete asset files
|
||||
path := getStrConfigValue(CONFIG_ASSETPATH, APP_DEFAULTPATH) + "/" + account.Guid
|
||||
path := getStrConfigValue(CONFIG_ASSETPATH, APP_DEFAULTPATH) + "/" + account.GUID
|
||||
if err = os.RemoveAll(path); err != nil {
|
||||
ErrMsg(err)
|
||||
}
|
||||
|
@ -18,11 +18,11 @@ func RemoveArticle(w http.ResponseWriter, r *http.Request) {
|
||||
|
||||
// scan parameters
|
||||
params := mux.Vars(r)
|
||||
articleId := params["articleId"]
|
||||
articleID := params["articleID"]
|
||||
|
||||
// load referenced article
|
||||
var slot store.ArticleSlot
|
||||
if err := store.DB.Preload("Article.Groups.Cards").Where("account_id = ? AND article_slot_id = ?", account.ID, articleId).First(&slot).Error; err != nil {
|
||||
if err := store.DB.Preload("Article.Groups.Cards").Where("account_id = ? AND article_slot_id = ?", account.ID, articleID).First(&slot).Error; err != nil {
|
||||
if !errors.Is(err, gorm.ErrRecordNotFound) {
|
||||
ErrResponse(w, http.StatusInternalServerError, err)
|
||||
} else {
|
||||
@ -39,7 +39,7 @@ func RemoveArticle(w http.ResponseWriter, r *http.Request) {
|
||||
cards := make(map[string]*store.Card)
|
||||
for _, group := range slot.Article.Groups {
|
||||
for _, card := range group.Cards {
|
||||
cards[card.Guid] = &card
|
||||
cards[card.GUID] = &card
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -18,11 +18,11 @@ func RemoveCard(w http.ResponseWriter, r *http.Request) {
|
||||
|
||||
// scan parameters
|
||||
params := mux.Vars(r)
|
||||
cardId := params["cardId"]
|
||||
cardID := params["cardID"]
|
||||
|
||||
// load referenced card
|
||||
var slot store.CardSlot
|
||||
if err := store.DB.Preload("Card.Groups").Preload("Card.Channels.Cards").Preload("Card.Channels.ChannelSlot").Where("account_id = ? AND card_slot_id = ?", account.ID, cardId).First(&slot).Error; err != nil {
|
||||
if err := store.DB.Preload("Card.Groups").Preload("Card.Channels.Cards").Preload("Card.Channels.ChannelSlot").Where("account_id = ? AND card_slot_id = ?", account.ID, cardID).First(&slot).Error; err != nil {
|
||||
if !errors.Is(err, gorm.ErrRecordNotFound) {
|
||||
ErrResponse(w, http.StatusInternalServerError, err)
|
||||
} else {
|
||||
@ -48,7 +48,7 @@ func RemoveCard(w http.ResponseWriter, r *http.Request) {
|
||||
return res
|
||||
}
|
||||
for _, card := range channel.Cards {
|
||||
cards[card.Guid] = &card
|
||||
cards[card.GUID] = &card
|
||||
}
|
||||
}
|
||||
if res := tx.Model(&slot.Card).Association("Groups").Clear(); res != nil {
|
||||
|
@ -14,7 +14,7 @@ func RemoveChannel(w http.ResponseWriter, r *http.Request) {
|
||||
|
||||
// scan parameters
|
||||
params := mux.Vars(r)
|
||||
channelId := params["channelId"]
|
||||
channelID := params["channelID"]
|
||||
|
||||
// validate contact access
|
||||
var account *store.Account
|
||||
@ -41,7 +41,7 @@ func RemoveChannel(w http.ResponseWriter, r *http.Request) {
|
||||
|
||||
// load channel
|
||||
var slot store.ChannelSlot
|
||||
if err = store.DB.Preload("Channel.Cards").Preload("Channel.Groups.Cards").Where("account_id = ? AND channel_slot_id = ?", account.ID, channelId).First(&slot).Error; err != nil {
|
||||
if err = store.DB.Preload("Channel.Cards").Preload("Channel.Groups.Cards").Where("account_id = ? AND channel_slot_id = ?", account.ID, channelID).First(&slot).Error; err != nil {
|
||||
if errors.Is(err, gorm.ErrRecordNotFound) {
|
||||
ErrResponse(w, http.StatusNotFound, err)
|
||||
} else {
|
||||
@ -57,11 +57,11 @@ func RemoveChannel(w http.ResponseWriter, r *http.Request) {
|
||||
// determine affected contact list
|
||||
cards := make(map[string]store.Card)
|
||||
for _, card := range slot.Channel.Cards {
|
||||
cards[card.Guid] = card
|
||||
cards[card.GUID] = card
|
||||
}
|
||||
for _, group := range slot.Channel.Groups {
|
||||
for _, card := range group.Cards {
|
||||
cards[card.Guid] = card
|
||||
cards[card.GUID] = card
|
||||
}
|
||||
}
|
||||
|
||||
@ -114,7 +114,7 @@ func RemoveChannel(w http.ResponseWriter, r *http.Request) {
|
||||
// cleanup file assets
|
||||
go garbageCollect(account)
|
||||
} else {
|
||||
if _, member := cards[contact.Guid]; !member {
|
||||
if _, member := cards[contact.GUID]; !member {
|
||||
ErrResponse(w, http.StatusNotFound, errors.New("member channel not found"));
|
||||
return
|
||||
}
|
||||
|
@ -12,8 +12,8 @@ func RemoveChannelTopic(w http.ResponseWriter, r *http.Request) {
|
||||
|
||||
// scan parameters
|
||||
params := mux.Vars(r)
|
||||
channelId := params["channelId"]
|
||||
topicId := params["topicId"]
|
||||
channelID := params["channelID"]
|
||||
topicID := params["topicID"]
|
||||
|
||||
channelSlot, guid, err, code := getChannelSlot(r, true)
|
||||
if err != nil {
|
||||
@ -24,7 +24,7 @@ func RemoveChannelTopic(w http.ResponseWriter, r *http.Request) {
|
||||
|
||||
// load topic
|
||||
var topicSlot store.TopicSlot
|
||||
if ret := store.DB.Preload("Topic.Channel.ChannelSlot").Where("account_id = ? AND topic_slot_id = ?", act.ID, topicId).First(&topicSlot).Error; ret != nil {
|
||||
if ret := store.DB.Preload("Topic.Channel.ChannelSlot").Where("account_id = ? AND topic_slot_id = ?", act.ID, topicID).First(&topicSlot).Error; ret != nil {
|
||||
if errors.Is(err, gorm.ErrRecordNotFound) {
|
||||
ErrResponse(w, http.StatusNotFound, ret)
|
||||
} else {
|
||||
@ -35,13 +35,13 @@ func RemoveChannelTopic(w http.ResponseWriter, r *http.Request) {
|
||||
ErrResponse(w, http.StatusNotFound, errors.New("referenced empty topic"))
|
||||
return
|
||||
}
|
||||
if topicSlot.Topic.Channel.ChannelSlot.ChannelSlotId != channelId {
|
||||
if topicSlot.Topic.Channel.ChannelSlot.ChannelSlotID != channelID {
|
||||
ErrResponse(w, http.StatusNotFound, errors.New("channel topic not found"))
|
||||
return
|
||||
}
|
||||
|
||||
// check permission
|
||||
if act.Guid != guid && topicSlot.Topic.Guid != guid {
|
||||
if act.GUID != guid && topicSlot.Topic.GUID != guid {
|
||||
ErrResponse(w, http.StatusUnauthorized, errors.New("not creator of topic or host"))
|
||||
return
|
||||
}
|
||||
@ -86,11 +86,11 @@ func RemoveChannelTopic(w http.ResponseWriter, r *http.Request) {
|
||||
// determine affected contact list
|
||||
cards := make(map[string]store.Card)
|
||||
for _, card := range channelSlot.Channel.Cards {
|
||||
cards[card.Guid] = card
|
||||
cards[card.GUID] = card
|
||||
}
|
||||
for _, group := range channelSlot.Channel.Groups {
|
||||
for _, card := range group.Cards {
|
||||
cards[card.Guid] = card
|
||||
cards[card.GUID] = card
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -12,8 +12,8 @@ func RemoveChannelTopicAsset(w http.ResponseWriter, r *http.Request) {
|
||||
|
||||
// scan parameters
|
||||
params := mux.Vars(r)
|
||||
topicId := params["topicId"]
|
||||
assetId := params["assetId"]
|
||||
topicID := params["topicID"]
|
||||
assetID := params["assetID"]
|
||||
|
||||
channelSlot, guid, err, code := getChannelSlot(r, true)
|
||||
if err != nil {
|
||||
@ -24,7 +24,7 @@ func RemoveChannelTopicAsset(w http.ResponseWriter, r *http.Request) {
|
||||
|
||||
// load asset
|
||||
var asset store.Asset
|
||||
if err = store.DB.Preload("Topic.TopicSlot").Where("channel_id = ? AND asset_id = ?", channelSlot.Channel.ID, assetId).First(&asset).Error; err != nil {
|
||||
if err = store.DB.Preload("Topic.TopicSlot").Where("channel_id = ? AND asset_id = ?", channelSlot.Channel.ID, assetID).First(&asset).Error; err != nil {
|
||||
if errors.Is(err, gorm.ErrRecordNotFound) {
|
||||
ErrResponse(w, http.StatusNotFound, err)
|
||||
} else {
|
||||
@ -32,13 +32,13 @@ func RemoveChannelTopicAsset(w http.ResponseWriter, r *http.Request) {
|
||||
}
|
||||
return
|
||||
}
|
||||
if asset.Topic.TopicSlot.TopicSlotId != topicId {
|
||||
if asset.Topic.TopicSlot.TopicSlotID != topicID {
|
||||
ErrResponse(w, http.StatusNotFound, errors.New("invalid topic"))
|
||||
return
|
||||
}
|
||||
|
||||
// can only update topic if creator
|
||||
if asset.Topic.Guid != guid {
|
||||
if asset.Topic.GUID != guid {
|
||||
ErrResponse(w, http.StatusUnauthorized, errors.New("topic not created by you"))
|
||||
return
|
||||
}
|
||||
@ -76,11 +76,11 @@ func RemoveChannelTopicAsset(w http.ResponseWriter, r *http.Request) {
|
||||
// determine affected contact list
|
||||
cards := make(map[string]store.Card)
|
||||
for _, card := range channelSlot.Channel.Cards {
|
||||
cards[card.Guid] = card
|
||||
cards[card.GUID] = card
|
||||
}
|
||||
for _, group := range channelSlot.Channel.Groups {
|
||||
for _, card := range group.Cards {
|
||||
cards[card.Guid] = card
|
||||
cards[card.GUID] = card
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -12,9 +12,9 @@ func RemoveChannelTopicTag(w http.ResponseWriter, r *http.Request) {
|
||||
|
||||
// scan parameters
|
||||
params := mux.Vars(r)
|
||||
channelId := params["channelId"]
|
||||
topicId := params["topicId"]
|
||||
tagId := params["tagId"]
|
||||
channelID := params["channelID"]
|
||||
topicID := params["topicID"]
|
||||
tagID := params["tagID"]
|
||||
|
||||
channelSlot, guid, err, code := getChannelSlot(r, false)
|
||||
if err != nil {
|
||||
@ -25,7 +25,7 @@ func RemoveChannelTopicTag(w http.ResponseWriter, r *http.Request) {
|
||||
|
||||
// load topic
|
||||
var topicSlot store.TopicSlot
|
||||
if ret := store.DB.Preload("Topic.Tags.TagSlot").Preload("Topic.Channel.ChannelSlot").Where("account_id = ? AND topic_slot_id = ?", act.ID, topicId).First(&topicSlot).Error; ret != nil {
|
||||
if ret := store.DB.Preload("Topic.Tags.TagSlot").Preload("Topic.Channel.ChannelSlot").Where("account_id = ? AND topic_slot_id = ?", act.ID, topicID).First(&topicSlot).Error; ret != nil {
|
||||
if errors.Is(err, gorm.ErrRecordNotFound) {
|
||||
ErrResponse(w, http.StatusNotFound, ret)
|
||||
} else {
|
||||
@ -36,7 +36,7 @@ func RemoveChannelTopicTag(w http.ResponseWriter, r *http.Request) {
|
||||
ErrResponse(w, http.StatusNotFound, errors.New("referenced empty topic"))
|
||||
return
|
||||
}
|
||||
if topicSlot.Topic.Channel.ChannelSlot.ChannelSlotId != channelId {
|
||||
if topicSlot.Topic.Channel.ChannelSlot.ChannelSlotID != channelID {
|
||||
ErrResponse(w, http.StatusNotFound, errors.New("channel topic not found"))
|
||||
return
|
||||
}
|
||||
@ -45,7 +45,7 @@ func RemoveChannelTopicTag(w http.ResponseWriter, r *http.Request) {
|
||||
var tag *store.Tag
|
||||
var tags []store.Tag
|
||||
for _, t := range topicSlot.Topic.Tags {
|
||||
if t.TagSlot.TagSlotId == tagId {
|
||||
if t.TagSlot.TagSlotID == tagID {
|
||||
tag = &t
|
||||
} else {
|
||||
tags = append(tags, t)
|
||||
@ -60,7 +60,7 @@ func RemoveChannelTopicTag(w http.ResponseWriter, r *http.Request) {
|
||||
}
|
||||
|
||||
// check permission
|
||||
if tag.Guid != guid {
|
||||
if tag.GUID != guid {
|
||||
ErrResponse(w, http.StatusUnauthorized, errors.New("not creator of tag"))
|
||||
return
|
||||
}
|
||||
@ -98,11 +98,11 @@ func RemoveChannelTopicTag(w http.ResponseWriter, r *http.Request) {
|
||||
// determine affected contact list
|
||||
cards := make(map[string]store.Card)
|
||||
for _, card := range channelSlot.Channel.Cards {
|
||||
cards[card.Guid] = card
|
||||
cards[card.GUID] = card
|
||||
}
|
||||
for _, group := range channelSlot.Channel.Groups {
|
||||
for _, card := range group.Cards {
|
||||
cards[card.Guid] = card
|
||||
cards[card.GUID] = card
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -18,11 +18,11 @@ func RemoveGroup(w http.ResponseWriter, r *http.Request) {
|
||||
|
||||
// scan parameters
|
||||
params := mux.Vars(r)
|
||||
groupId := params["groupId"]
|
||||
groupID := params["groupID"]
|
||||
|
||||
// load referenced group
|
||||
var slot store.GroupSlot
|
||||
if err := store.DB.Preload("Group.Cards.CardSlot").Where("account_id = ? AND group_slot_id = ?", account.ID, groupId).First(&slot).Error; err != nil {
|
||||
if err := store.DB.Preload("Group.Cards.CardSlot").Where("account_id = ? AND group_slot_id = ?", account.ID, groupID).First(&slot).Error; err != nil {
|
||||
if !errors.Is(err, gorm.ErrRecordNotFound) {
|
||||
ErrResponse(w, http.StatusInternalServerError, err)
|
||||
} else {
|
||||
|
@ -14,7 +14,7 @@ func RemoveNodeAccount(w http.ResponseWriter, r *http.Request) {
|
||||
|
||||
// get referenced account id
|
||||
params := mux.Vars(r)
|
||||
accountId, res := strconv.ParseUint(params["accountId"], 10, 32)
|
||||
accountID, res := strconv.ParseUint(params["accountID"], 10, 32)
|
||||
if res != nil {
|
||||
ErrResponse(w, http.StatusBadRequest, res)
|
||||
return
|
||||
@ -26,7 +26,7 @@ func RemoveNodeAccount(w http.ResponseWriter, r *http.Request) {
|
||||
}
|
||||
|
||||
var account store.Account
|
||||
if err := store.DB.First(&account, accountId).Error; err != nil {
|
||||
if err := store.DB.First(&account, accountID).Error; err != nil {
|
||||
if errors.Is(err, gorm.ErrRecordNotFound) {
|
||||
ErrResponse(w, http.StatusNotFound, err)
|
||||
} else {
|
||||
@ -98,7 +98,7 @@ func RemoveNodeAccount(w http.ResponseWriter, r *http.Request) {
|
||||
}
|
||||
|
||||
// delete asset files
|
||||
path := getStrConfigValue(CONFIG_ASSETPATH, APP_DEFAULTPATH) + "/" + account.Guid
|
||||
path := getStrConfigValue(CONFIG_ASSETPATH, APP_DEFAULTPATH) + "/" + account.GUID
|
||||
if err = os.RemoveAll(path); err != nil {
|
||||
ErrMsg(err)
|
||||
}
|
||||
|
@ -39,7 +39,7 @@ func SetAccountAccess(w http.ResponseWriter, r *http.Request) {
|
||||
|
||||
// create app entry
|
||||
app := store.App {
|
||||
AccountID: account.Guid,
|
||||
AccountID: account.GUID,
|
||||
Name: appData.Name,
|
||||
Description: appData.Description,
|
||||
Image: appData.Image,
|
||||
@ -65,7 +65,7 @@ func SetAccountAccess(w http.ResponseWriter, r *http.Request) {
|
||||
return
|
||||
}
|
||||
|
||||
WriteResponse(w, account.Guid + "." + access)
|
||||
WriteResponse(w, account.GUID + "." + access)
|
||||
}
|
||||
|
||||
|
||||
|
@ -18,12 +18,12 @@ func SetArticleGroup(w http.ResponseWriter, r *http.Request) {
|
||||
|
||||
// scan parameters
|
||||
params := mux.Vars(r)
|
||||
articleId := params["articleId"]
|
||||
groupId := params["groupId"]
|
||||
articleID := params["articleID"]
|
||||
groupID := params["groupID"]
|
||||
|
||||
// load referenced article
|
||||
var articleSlot store.ArticleSlot
|
||||
if err := store.DB.Preload("Article").Where("account_id = ? AND article_slot_id = ?", account.ID, articleId).First(&articleSlot).Error; err != nil {
|
||||
if err := store.DB.Preload("Article").Where("account_id = ? AND article_slot_id = ?", account.ID, articleID).First(&articleSlot).Error; err != nil {
|
||||
if !errors.Is(err, gorm.ErrRecordNotFound) {
|
||||
ErrResponse(w, http.StatusInternalServerError, err)
|
||||
} else {
|
||||
@ -38,7 +38,7 @@ func SetArticleGroup(w http.ResponseWriter, r *http.Request) {
|
||||
|
||||
// load referenced group
|
||||
var groupSlot store.GroupSlot
|
||||
if err := store.DB.Preload("Group.Cards").Preload("Group.GroupSlot").Where("account_id = ? AND group_slot_id = ?", account.ID, groupId).First(&groupSlot).Error; err != nil {
|
||||
if err := store.DB.Preload("Group.Cards").Preload("Group.GroupSlot").Where("account_id = ? AND group_slot_id = ?", account.ID, groupID).First(&groupSlot).Error; err != nil {
|
||||
if !errors.Is(err, gorm.ErrRecordNotFound) {
|
||||
ErrResponse(w, http.StatusInternalServerError, err)
|
||||
} else {
|
||||
|
@ -18,7 +18,7 @@ func SetArticleSubject(w http.ResponseWriter, r *http.Request) {
|
||||
|
||||
// scan parameters
|
||||
params := mux.Vars(r)
|
||||
articleId := params["articleId"]
|
||||
articleID := params["articleID"]
|
||||
|
||||
var subject Subject
|
||||
if err := ParseRequest(r, w, &subject); err != nil {
|
||||
@ -28,7 +28,7 @@ func SetArticleSubject(w http.ResponseWriter, r *http.Request) {
|
||||
|
||||
// load referenced article
|
||||
var slot store.ArticleSlot
|
||||
if err := store.DB.Preload("Article.Groups.Cards").Where("account_id = ? AND article_slot_id = ?", account.ID, articleId).First(&slot).Error; err != nil {
|
||||
if err := store.DB.Preload("Article.Groups.Cards").Where("account_id = ? AND article_slot_id = ?", account.ID, articleID).First(&slot).Error; err != nil {
|
||||
if !errors.Is(err, gorm.ErrRecordNotFound) {
|
||||
ErrResponse(w, http.StatusInternalServerError, err)
|
||||
} else {
|
||||
@ -45,7 +45,7 @@ func SetArticleSubject(w http.ResponseWriter, r *http.Request) {
|
||||
cards := make(map[string]store.Card)
|
||||
for _, group := range slot.Article.Groups {
|
||||
for _, card := range group.Cards {
|
||||
cards[card.Guid] = card
|
||||
cards[card.GUID] = card
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -17,12 +17,12 @@ func SetCardGroup(w http.ResponseWriter, r *http.Request) {
|
||||
|
||||
// scan parameters
|
||||
params := mux.Vars(r)
|
||||
cardId := params["cardId"]
|
||||
groupId := params["groupId"]
|
||||
cardID := params["cardID"]
|
||||
groupID := params["groupID"]
|
||||
|
||||
// load referenced card
|
||||
var slot store.CardSlot
|
||||
if err := store.DB.Preload("Card").Where("account_id = ? AND card_slot_id = ?", account.ID, cardId).First(&slot).Error; err != nil {
|
||||
if err := store.DB.Preload("Card").Where("account_id = ? AND card_slot_id = ?", account.ID, cardID).First(&slot).Error; err != nil {
|
||||
if errors.Is(err, gorm.ErrRecordNotFound) {
|
||||
ErrResponse(w, http.StatusNotFound, err)
|
||||
} else {
|
||||
@ -37,7 +37,7 @@ func SetCardGroup(w http.ResponseWriter, r *http.Request) {
|
||||
|
||||
// load referenced group
|
||||
var groupSlot store.GroupSlot
|
||||
if err := store.DB.Preload("Group").Where("account_id = ? AND group_slot_id = ?", account.ID, groupId).First(&groupSlot).Error; err != nil {
|
||||
if err := store.DB.Preload("Group").Where("account_id = ? AND group_slot_id = ?", account.ID, groupID).First(&groupSlot).Error; err != nil {
|
||||
if !errors.Is(err, gorm.ErrRecordNotFound) {
|
||||
ErrResponse(w, http.StatusInternalServerError, err)
|
||||
} else {
|
||||
|
@ -18,7 +18,7 @@ func SetCardNotes(w http.ResponseWriter, r *http.Request) {
|
||||
|
||||
// scan parameters
|
||||
params := mux.Vars(r)
|
||||
cardId := params["cardId"]
|
||||
cardID := params["cardID"]
|
||||
|
||||
var notes string
|
||||
if err := ParseRequest(r, w, ¬es); err != nil {
|
||||
@ -28,7 +28,7 @@ func SetCardNotes(w http.ResponseWriter, r *http.Request) {
|
||||
|
||||
// load referenced card
|
||||
var slot store.CardSlot
|
||||
if err := store.DB.Preload("Card.Groups").Where("account_id = ? AND card_slot_id = ?", account.ID, cardId).First(&slot).Error; err != nil {
|
||||
if err := store.DB.Preload("Card.Groups").Where("account_id = ? AND card_slot_id = ?", account.ID, cardID).First(&slot).Error; err != nil {
|
||||
if !errors.Is(err, gorm.ErrRecordNotFound) {
|
||||
ErrResponse(w, http.StatusInternalServerError, err)
|
||||
} else {
|
||||
|
@ -18,7 +18,7 @@ func SetCardProfile(w http.ResponseWriter, r *http.Request) {
|
||||
|
||||
// scan parameters
|
||||
params := mux.Vars(r)
|
||||
cardId := params["cardId"]
|
||||
cardID := params["cardID"]
|
||||
|
||||
var message DataMessage
|
||||
if err := ParseRequest(r, w, &message); err != nil {
|
||||
@ -34,7 +34,7 @@ func SetCardProfile(w http.ResponseWriter, r *http.Request) {
|
||||
}
|
||||
|
||||
slot := store.CardSlot{}
|
||||
if err := store.DB.Preload("Card.Groups").Where("account_id = ? AND card_slot_id = ?", account.ID, cardId).First(&slot).Error; err != nil {
|
||||
if err := store.DB.Preload("Card.Groups").Where("account_id = ? AND card_slot_id = ?", account.ID, cardID).First(&slot).Error; err != nil {
|
||||
if errors.Is(err, gorm.ErrRecordNotFound) {
|
||||
ErrResponse(w, http.StatusNotFound, err)
|
||||
} else {
|
||||
@ -47,7 +47,7 @@ func SetCardProfile(w http.ResponseWriter, r *http.Request) {
|
||||
ErrResponse(w, http.StatusNotFound, errors.New("referenced empty card"))
|
||||
return
|
||||
}
|
||||
if card.Guid != guid {
|
||||
if card.GUID != guid {
|
||||
ErrResponse(w, http.StatusBadRequest, errors.New("invalid profile"))
|
||||
return
|
||||
}
|
||||
|
@ -22,7 +22,7 @@ func SetCardStatus(w http.ResponseWriter, r *http.Request) {
|
||||
|
||||
// scan parameters
|
||||
params := mux.Vars(r)
|
||||
cardId := params["cardId"]
|
||||
cardID := params["cardID"]
|
||||
token := r.FormValue("token")
|
||||
|
||||
// scan revisions
|
||||
@ -75,7 +75,7 @@ func SetCardStatus(w http.ResponseWriter, r *http.Request) {
|
||||
|
||||
// load referenced card
|
||||
var slot store.CardSlot
|
||||
if err := store.DB.Preload("Card.Groups").Where("account_id = ? AND card_slot_id = ?", account.ID, cardId).First(&slot).Error; err != nil {
|
||||
if err := store.DB.Preload("Card.Groups").Where("account_id = ? AND card_slot_id = ?", account.ID, cardID).First(&slot).Error; err != nil {
|
||||
if !errors.Is(err, gorm.ErrRecordNotFound) {
|
||||
ErrResponse(w, http.StatusInternalServerError, err)
|
||||
} else {
|
||||
|
@ -18,12 +18,12 @@ func SetChannelCard(w http.ResponseWriter, r *http.Request) {
|
||||
|
||||
// scan parameters
|
||||
params := mux.Vars(r)
|
||||
channelId := params["channelId"]
|
||||
cardId := params["cardId"]
|
||||
channelID := params["channelID"]
|
||||
cardID := params["cardID"]
|
||||
|
||||
// load referenced channel
|
||||
var channelSlot store.ChannelSlot
|
||||
if err := store.DB.Preload("Channel.Cards.CardSlot").Preload("Channel.Groups.GroupSlot").Preload("Channel.Groups.Cards").Where("account_id = ? AND channel_slot_id = ?", account.ID, channelId).First(&channelSlot).Error; err != nil {
|
||||
if err := store.DB.Preload("Channel.Cards.CardSlot").Preload("Channel.Groups.GroupSlot").Preload("Channel.Groups.Cards").Where("account_id = ? AND channel_slot_id = ?", account.ID, channelID).First(&channelSlot).Error; err != nil {
|
||||
if !errors.Is(err, gorm.ErrRecordNotFound) {
|
||||
ErrResponse(w, http.StatusInternalServerError, err)
|
||||
} else {
|
||||
@ -38,7 +38,7 @@ func SetChannelCard(w http.ResponseWriter, r *http.Request) {
|
||||
|
||||
// load referenced card
|
||||
var cardSlot store.CardSlot
|
||||
if err := store.DB.Preload("Card.CardSlot").Where("account_id = ? AND card_slot_id = ?", account.ID, cardId).First(&cardSlot).Error; err != nil {
|
||||
if err := store.DB.Preload("Card.CardSlot").Where("account_id = ? AND card_slot_id = ?", account.ID, cardID).First(&cardSlot).Error; err != nil {
|
||||
if !errors.Is(err, gorm.ErrRecordNotFound) {
|
||||
ErrResponse(w, http.StatusInternalServerError, err)
|
||||
} else {
|
||||
@ -54,14 +54,14 @@ func SetChannelCard(w http.ResponseWriter, r *http.Request) {
|
||||
// determine contact list
|
||||
cards := make(map[string]store.Card)
|
||||
for _, card := range channelSlot.Channel.Cards {
|
||||
cards[card.Guid] = card
|
||||
cards[card.GUID] = card
|
||||
}
|
||||
for _, group := range channelSlot.Channel.Groups {
|
||||
for _, card := range group.Cards {
|
||||
cards[card.Guid] = card
|
||||
cards[card.GUID] = card
|
||||
}
|
||||
}
|
||||
cards[cardSlot.Card.Guid] = *cardSlot.Card
|
||||
cards[cardSlot.Card.GUID] = *cardSlot.Card
|
||||
|
||||
// save and update contact revision
|
||||
err = store.DB.Transaction(func(tx *gorm.DB) error {
|
||||
|
@ -18,12 +18,12 @@ func SetChannelGroup(w http.ResponseWriter, r *http.Request) {
|
||||
|
||||
// scan parameters
|
||||
params := mux.Vars(r)
|
||||
channelId := params["channelId"]
|
||||
groupId := params["groupId"]
|
||||
channelID := params["channelID"]
|
||||
groupID := params["groupID"]
|
||||
|
||||
// load referenced channel
|
||||
var channelSlot store.ChannelSlot
|
||||
if err := store.DB.Preload("Channel.Cards.CardSlot").Preload("Channel.Groups.GroupSlot").Preload("Channel.Groups.Cards").Where("account_id = ? AND channel_slot_id = ?", account.ID, channelId).First(&channelSlot).Error; err != nil {
|
||||
if err := store.DB.Preload("Channel.Cards.CardSlot").Preload("Channel.Groups.GroupSlot").Preload("Channel.Groups.Cards").Where("account_id = ? AND channel_slot_id = ?", account.ID, channelID).First(&channelSlot).Error; err != nil {
|
||||
if !errors.Is(err, gorm.ErrRecordNotFound) {
|
||||
ErrResponse(w, http.StatusInternalServerError, err)
|
||||
} else {
|
||||
@ -38,7 +38,7 @@ func SetChannelGroup(w http.ResponseWriter, r *http.Request) {
|
||||
|
||||
// load referenced group
|
||||
var groupSlot store.GroupSlot
|
||||
if err := store.DB.Preload("Group.Cards").Preload("Group.GroupSlot").Where("account_id = ? AND group_slot_id = ?", account.ID, groupId).First(&groupSlot).Error; err != nil {
|
||||
if err := store.DB.Preload("Group.Cards").Preload("Group.GroupSlot").Where("account_id = ? AND group_slot_id = ?", account.ID, groupID).First(&groupSlot).Error; err != nil {
|
||||
if !errors.Is(err, gorm.ErrRecordNotFound) {
|
||||
ErrResponse(w, http.StatusInternalServerError, err)
|
||||
} else {
|
||||
@ -73,7 +73,7 @@ func SetChannelGroup(w http.ResponseWriter, r *http.Request) {
|
||||
cards := make(map[string]store.Card)
|
||||
for _, group := range channelSlot.Channel.Groups {
|
||||
for _, card := range group.Cards {
|
||||
cards[card.Guid] = card
|
||||
cards[card.GUID] = card
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -18,7 +18,7 @@ func SetChannelSubject(w http.ResponseWriter, r *http.Request) {
|
||||
|
||||
// scan parameters
|
||||
params := mux.Vars(r)
|
||||
channelId := params["channelId"]
|
||||
channelID := params["channelID"]
|
||||
|
||||
var subject Subject
|
||||
if err := ParseRequest(r, w, &subject); err != nil {
|
||||
@ -28,7 +28,7 @@ func SetChannelSubject(w http.ResponseWriter, r *http.Request) {
|
||||
|
||||
// load referenced channel
|
||||
var slot store.ChannelSlot
|
||||
if err := store.DB.Preload("Channel.Cards").Preload("Channel.Groups.Cards").Where("account_id = ? AND channel_slot_id = ?", account.ID, channelId).First(&slot).Error; err != nil {
|
||||
if err := store.DB.Preload("Channel.Cards").Preload("Channel.Groups.Cards").Where("account_id = ? AND channel_slot_id = ?", account.ID, channelID).First(&slot).Error; err != nil {
|
||||
if !errors.Is(err, gorm.ErrRecordNotFound) {
|
||||
ErrResponse(w, http.StatusInternalServerError, err)
|
||||
} else {
|
||||
@ -44,11 +44,11 @@ func SetChannelSubject(w http.ResponseWriter, r *http.Request) {
|
||||
// determine affected contact list
|
||||
cards := make(map[string]store.Card)
|
||||
for _, card := range slot.Channel.Cards {
|
||||
cards[card.Guid] = card
|
||||
cards[card.GUID] = card
|
||||
}
|
||||
for _, group := range slot.Channel.Groups {
|
||||
for _, card := range group.Cards {
|
||||
cards[card.Guid] = card
|
||||
cards[card.GUID] = card
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -12,7 +12,7 @@ func SetChannelTopicConfirmed(w http.ResponseWriter, r *http.Request) {
|
||||
|
||||
// scan parameters
|
||||
params := mux.Vars(r)
|
||||
topicId := params["topicId"]
|
||||
topicID := params["topicID"]
|
||||
|
||||
var status string
|
||||
if err := ParseRequest(r, w, &status); err != nil {
|
||||
@ -33,7 +33,7 @@ func SetChannelTopicConfirmed(w http.ResponseWriter, r *http.Request) {
|
||||
|
||||
// load topic
|
||||
var topicSlot store.TopicSlot
|
||||
if err = store.DB.Preload("Topic").Where("channel_id = ? AND topic_slot_id = ?", channelSlot.Channel.ID, topicId).First(&topicSlot).Error; err != nil {
|
||||
if err = store.DB.Preload("Topic").Where("channel_id = ? AND topic_slot_id = ?", channelSlot.Channel.ID, topicID).First(&topicSlot).Error; err != nil {
|
||||
if errors.Is(err, gorm.ErrRecordNotFound) {
|
||||
ErrResponse(w, http.StatusNotFound, err)
|
||||
} else {
|
||||
@ -75,11 +75,11 @@ func SetChannelTopicConfirmed(w http.ResponseWriter, r *http.Request) {
|
||||
// determine affected contact list
|
||||
cards := make(map[string]store.Card)
|
||||
for _, card := range channelSlot.Channel.Cards {
|
||||
cards[card.Guid] = card
|
||||
cards[card.GUID] = card
|
||||
}
|
||||
for _, group := range channelSlot.Channel.Groups {
|
||||
for _, card := range group.Cards {
|
||||
cards[card.Guid] = card
|
||||
cards[card.GUID] = card
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -12,7 +12,7 @@ func SetChannelTopicSubject(w http.ResponseWriter, r *http.Request) {
|
||||
|
||||
// scan parameters
|
||||
params := mux.Vars(r)
|
||||
topicId := params["topicId"]
|
||||
topicID := params["topicID"]
|
||||
confirm := r.FormValue("confirm");
|
||||
|
||||
var subject Subject
|
||||
@ -30,7 +30,7 @@ func SetChannelTopicSubject(w http.ResponseWriter, r *http.Request) {
|
||||
|
||||
// load topic
|
||||
var topicSlot store.TopicSlot
|
||||
if err = store.DB.Preload("Topic").Where("channel_id = ? AND topic_slot_id = ?", channelSlot.Channel.ID, topicId).First(&topicSlot).Error; err != nil {
|
||||
if err = store.DB.Preload("Topic").Where("channel_id = ? AND topic_slot_id = ?", channelSlot.Channel.ID, topicID).First(&topicSlot).Error; err != nil {
|
||||
if errors.Is(err, gorm.ErrRecordNotFound) {
|
||||
ErrResponse(w, http.StatusNotFound, err)
|
||||
} else {
|
||||
@ -40,7 +40,7 @@ func SetChannelTopicSubject(w http.ResponseWriter, r *http.Request) {
|
||||
}
|
||||
|
||||
// can only update subject if creator
|
||||
if topicSlot.Topic.Guid != guid {
|
||||
if topicSlot.Topic.GUID != guid {
|
||||
ErrResponse(w, http.StatusUnauthorized, errors.New("topic not created by you"))
|
||||
return
|
||||
}
|
||||
@ -88,11 +88,11 @@ func SetChannelTopicSubject(w http.ResponseWriter, r *http.Request) {
|
||||
// determine affected contact list
|
||||
cards := make(map[string]store.Card)
|
||||
for _, card := range channelSlot.Channel.Cards {
|
||||
cards[card.Guid] = card
|
||||
cards[card.GUID] = card
|
||||
}
|
||||
for _, group := range channelSlot.Channel.Groups {
|
||||
for _, card := range group.Cards {
|
||||
cards[card.Guid] = card
|
||||
cards[card.GUID] = card
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -12,9 +12,9 @@ func SetChannelTopicTagSubject(w http.ResponseWriter, r *http.Request) {
|
||||
|
||||
// scan parameters
|
||||
params := mux.Vars(r)
|
||||
channelId := params["channelId"]
|
||||
topicId := params["topicId"]
|
||||
tagId := params["tagId"]
|
||||
channelID := params["channelID"]
|
||||
topicID := params["topicID"]
|
||||
tagID := params["tagID"]
|
||||
|
||||
var subject Subject
|
||||
if err := ParseRequest(r, w, &subject); err != nil {
|
||||
@ -31,7 +31,7 @@ func SetChannelTopicTagSubject(w http.ResponseWriter, r *http.Request) {
|
||||
|
||||
// load topic
|
||||
var tagSlot store.TagSlot
|
||||
if err = store.DB.Preload("Tag.Channel.ChannelSlot").Preload("Tag.Topic.TopicSlot").Where("account_id = ? AND tag_slot_id = ?", act.ID, tagId).First(&tagSlot).Error; err != nil {
|
||||
if err = store.DB.Preload("Tag.Channel.ChannelSlot").Preload("Tag.Topic.TopicSlot").Where("account_id = ? AND tag_slot_id = ?", act.ID, tagID).First(&tagSlot).Error; err != nil {
|
||||
if errors.Is(err, gorm.ErrRecordNotFound) {
|
||||
ErrResponse(w, http.StatusNotFound, err)
|
||||
} else {
|
||||
@ -43,15 +43,15 @@ func SetChannelTopicTagSubject(w http.ResponseWriter, r *http.Request) {
|
||||
ErrResponse(w, http.StatusNotFound, errors.New("referenced empty tag"))
|
||||
return
|
||||
}
|
||||
if tagSlot.Tag.Channel.ChannelSlot.ChannelSlotId != channelId {
|
||||
if tagSlot.Tag.Channel.ChannelSlot.ChannelSlotID != channelID {
|
||||
ErrResponse(w, http.StatusNotFound, errors.New("channel tag not found"))
|
||||
return
|
||||
}
|
||||
if tagSlot.Tag.Topic.TopicSlot.TopicSlotId != topicId {
|
||||
if tagSlot.Tag.Topic.TopicSlot.TopicSlotID != topicID {
|
||||
ErrResponse(w, http.StatusNotFound, errors.New("topic tag not found"))
|
||||
return
|
||||
}
|
||||
if tagSlot.Tag.Guid != guid {
|
||||
if tagSlot.Tag.GUID != guid {
|
||||
ErrResponse(w, http.StatusUnauthorized, errors.New("not creator of tag"))
|
||||
return
|
||||
}
|
||||
@ -92,11 +92,11 @@ func SetChannelTopicTagSubject(w http.ResponseWriter, r *http.Request) {
|
||||
// determine affected contact list
|
||||
cards := make(map[string]store.Card)
|
||||
for _, card := range channelSlot.Channel.Cards {
|
||||
cards[card.Guid] = card
|
||||
cards[card.GUID] = card
|
||||
}
|
||||
for _, group := range channelSlot.Channel.Groups {
|
||||
for _, card := range group.Cards {
|
||||
cards[card.Guid] = card
|
||||
cards[card.GUID] = card
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -40,7 +40,7 @@ func SetCloseMessage(w http.ResponseWriter, r *http.Request) {
|
||||
|
||||
// see if card exists
|
||||
var card store.Card
|
||||
if err := store.DB.Preload("CardSlot").Where("account_id = ? AND guid = ?", account.Guid, guid).First(&card).Error; err != nil {
|
||||
if err := store.DB.Preload("CardSlot").Where("account_id = ? AND guid = ?", account.GUID, guid).First(&card).Error; err != nil {
|
||||
if !errors.Is(err, gorm.ErrRecordNotFound) {
|
||||
ErrResponse(w, http.StatusInternalServerError, err)
|
||||
} else {
|
||||
|
@ -18,7 +18,7 @@ func SetGroupSubject(w http.ResponseWriter, r *http.Request) {
|
||||
|
||||
// scan parameters
|
||||
params := mux.Vars(r)
|
||||
groupId := params["groupId"]
|
||||
groupID := params["groupID"]
|
||||
|
||||
var subject Subject
|
||||
if err := ParseRequest(r, w, &subject); err != nil {
|
||||
@ -28,7 +28,7 @@ func SetGroupSubject(w http.ResponseWriter, r *http.Request) {
|
||||
|
||||
// load referenced group
|
||||
var slot store.GroupSlot
|
||||
if err := store.DB.Preload("Group.GroupData").Where("account_id = ? AND group_slot_id = ?", account.ID, groupId).First(&slot).Error; err != nil {
|
||||
if err := store.DB.Preload("Group.GroupData").Where("account_id = ? AND group_slot_id = ?", account.ID, groupID).First(&slot).Error; err != nil {
|
||||
if !errors.Is(err, gorm.ErrRecordNotFound) {
|
||||
ErrResponse(w, http.StatusInternalServerError, err)
|
||||
} else {
|
||||
|
@ -14,7 +14,7 @@ func SetNodeAccount(w http.ResponseWriter, r *http.Request) {
|
||||
|
||||
// get referenced account id
|
||||
params := mux.Vars(r)
|
||||
accountId, res := strconv.ParseUint(params["accountId"], 10, 32)
|
||||
accountID, res := strconv.ParseUint(params["accountID"], 10, 32)
|
||||
if res != nil {
|
||||
ErrResponse(w, http.StatusBadRequest, res)
|
||||
return
|
||||
@ -35,7 +35,7 @@ func SetNodeAccount(w http.ResponseWriter, r *http.Request) {
|
||||
accountToken := store.AccountToken{
|
||||
TokenType: APP_TOKENRESET,
|
||||
Token: token,
|
||||
AccountID: uint(accountId),
|
||||
AccountID: uint(accountID),
|
||||
Expires: time.Now().Unix() + APP_CREATEEXPIRE,
|
||||
};
|
||||
|
||||
|
@ -11,7 +11,7 @@ func SetNodeAccountStatus(w http.ResponseWriter, r *http.Request) {
|
||||
|
||||
// get referenced account id
|
||||
params := mux.Vars(r)
|
||||
accountId, res := strconv.ParseUint(params["accountId"], 10, 32)
|
||||
accountID, res := strconv.ParseUint(params["accountID"], 10, 32)
|
||||
if res != nil {
|
||||
ErrResponse(w, http.StatusBadRequest, res)
|
||||
return
|
||||
@ -28,7 +28,7 @@ func SetNodeAccountStatus(w http.ResponseWriter, r *http.Request) {
|
||||
return
|
||||
}
|
||||
|
||||
if err := store.DB.Model(store.Account{}).Where("id = ?", accountId).Update("disabled", flag).Error; err != nil {
|
||||
if err := store.DB.Model(store.Account{}).Where("id = ?", accountID).Update("disabled", flag).Error; err != nil {
|
||||
ErrResponse(w, http.StatusInternalServerError, err)
|
||||
return
|
||||
}
|
||||
|
@ -29,7 +29,7 @@ func SetNodeConfig(w http.ResponseWriter, r *http.Request) {
|
||||
if res := tx.Clauses(clause.OnConflict{
|
||||
Columns: []clause.Column{{Name: "config_id"}},
|
||||
DoUpdates: clause.AssignmentColumns([]string{"str_value"}),
|
||||
}).Create(&store.Config{ConfigId: CONFIG_DOMAIN, StrValue: config.Domain}).Error; res != nil {
|
||||
}).Create(&store.Config{ConfigID: CONFIG_DOMAIN, StrValue: config.Domain}).Error; res != nil {
|
||||
return res
|
||||
}
|
||||
|
||||
@ -37,7 +37,7 @@ func SetNodeConfig(w http.ResponseWriter, r *http.Request) {
|
||||
if res := tx.Clauses(clause.OnConflict{
|
||||
Columns: []clause.Column{{Name: "config_id"}},
|
||||
DoUpdates: clause.AssignmentColumns([]string{"num_value"}),
|
||||
}).Create(&store.Config{ConfigId: CONFIG_ACCOUNTLIMIT, NumValue: config.AccountLimit}).Error; res != nil {
|
||||
}).Create(&store.Config{ConfigID: CONFIG_ACCOUNTLIMIT, NumValue: config.AccountLimit}).Error; res != nil {
|
||||
return res
|
||||
}
|
||||
|
||||
@ -45,7 +45,7 @@ func SetNodeConfig(w http.ResponseWriter, r *http.Request) {
|
||||
if res := tx.Clauses(clause.OnConflict{
|
||||
Columns: []clause.Column{{Name: "config_id"}},
|
||||
DoUpdates: clause.AssignmentColumns([]string{"bool_value"}),
|
||||
}).Create(&store.Config{ConfigId: CONFIG_ACCOUNTLIMIT, BoolValue: config.OpenAccess}).Error; res != nil {
|
||||
}).Create(&store.Config{ConfigID: CONFIG_ACCOUNTLIMIT, BoolValue: config.OpenAccess}).Error; res != nil {
|
||||
return res
|
||||
}
|
||||
|
||||
@ -53,7 +53,7 @@ func SetNodeConfig(w http.ResponseWriter, r *http.Request) {
|
||||
if res := tx.Clauses(clause.OnConflict{
|
||||
Columns: []clause.Column{{Name: "config_id"}},
|
||||
DoUpdates: clause.AssignmentColumns([]string{"num_value"}),
|
||||
}).Create(&store.Config{ConfigId: CONFIG_STORAGE, NumValue: config.AccountStorage}).Error; res != nil {
|
||||
}).Create(&store.Config{ConfigID: CONFIG_STORAGE, NumValue: config.AccountStorage}).Error; res != nil {
|
||||
return res
|
||||
}
|
||||
|
||||
|
@ -27,10 +27,10 @@ func SetNodeStatus(w http.ResponseWriter, r *http.Request) {
|
||||
}
|
||||
|
||||
err = store.DB.Transaction(func(tx *gorm.DB) error {
|
||||
if res := tx.Create(&store.Config{ConfigId: CONFIG_TOKEN, StrValue: token}).Error; res != nil {
|
||||
if res := tx.Create(&store.Config{ConfigID: CONFIG_TOKEN, StrValue: token}).Error; res != nil {
|
||||
return res
|
||||
}
|
||||
if res := tx.Create(&store.Config{ConfigId: CONFIG_CONFIGURED, BoolValue: true}).Error; res != nil {
|
||||
if res := tx.Create(&store.Config{ConfigID: CONFIG_CONFIGURED, BoolValue: true}).Error; res != nil {
|
||||
return res
|
||||
}
|
||||
return nil;
|
||||
|
@ -44,7 +44,7 @@ func SetOpenMessage(w http.ResponseWriter, r *http.Request) {
|
||||
// see if card exists
|
||||
slot := &store.CardSlot{}
|
||||
card := &store.Card{}
|
||||
if err := store.DB.Preload("CardSlot").Where("account_id = ? AND guid = ?", account.Guid, guid).First(card).Error; err != nil {
|
||||
if err := store.DB.Preload("CardSlot").Where("account_id = ? AND guid = ?", account.GUID, guid).First(card).Error; err != nil {
|
||||
if !errors.Is(err, gorm.ErrRecordNotFound) {
|
||||
ErrResponse(w, http.StatusInternalServerError, err)
|
||||
return
|
||||
@ -56,7 +56,7 @@ func SetOpenMessage(w http.ResponseWriter, r *http.Request) {
|
||||
ErrResponse(w, http.StatusInternalServerError, res)
|
||||
return
|
||||
}
|
||||
card.Guid = guid
|
||||
card.GUID = guid
|
||||
card.Username = connect.Handle
|
||||
card.Name = connect.Name
|
||||
card.Description = connect.Description
|
||||
@ -72,14 +72,14 @@ func SetOpenMessage(w http.ResponseWriter, r *http.Request) {
|
||||
card.NotifiedChannel = connect.ChannelRevision
|
||||
card.OutToken = connect.Token
|
||||
card.InToken = hex.EncodeToString(data)
|
||||
card.AccountID = account.Guid
|
||||
card.AccountID = account.GUID
|
||||
|
||||
// create slot
|
||||
err = store.DB.Transaction(func(tx *gorm.DB) error {
|
||||
if res := tx.Save(card).Error; res != nil {
|
||||
return res
|
||||
}
|
||||
slot.CardSlotId = uuid.New().String()
|
||||
slot.CardSlotID = uuid.New().String()
|
||||
slot.AccountID = account.ID
|
||||
slot.Revision = account.CardRevision + 1
|
||||
slot.CardID = card.ID
|
||||
|
@ -15,36 +15,36 @@ const CONFIG_STORAGE = "storage"
|
||||
const CONFIG_ASSETPATH = "asset_path"
|
||||
const CONFIG_SCRIPTPATH = "script_path"
|
||||
|
||||
func getStrConfigValue(configId string, empty string) string {
|
||||
func getStrConfigValue(configID string, empty string) string {
|
||||
var config store.Config
|
||||
err := store.DB.Where("config_id = ?", configId).First(&config).Error
|
||||
err := store.DB.Where("config_id = ?", configID).First(&config).Error
|
||||
if errors.Is(err, gorm.ErrRecordNotFound) {
|
||||
return empty
|
||||
}
|
||||
return config.StrValue
|
||||
}
|
||||
|
||||
func getNumConfigValue(configId string, empty int64) int64 {
|
||||
func getNumConfigValue(configID string, empty int64) int64 {
|
||||
var config store.Config
|
||||
err := store.DB.Where("config_id = ?", configId).First(&config).Error
|
||||
err := store.DB.Where("config_id = ?", configID).First(&config).Error
|
||||
if errors.Is(err, gorm.ErrRecordNotFound) {
|
||||
return empty
|
||||
}
|
||||
return config.NumValue
|
||||
}
|
||||
|
||||
func getBoolConfigValue(configId string, empty bool) bool {
|
||||
func getBoolConfigValue(configID string, empty bool) bool {
|
||||
var config store.Config
|
||||
err := store.DB.Where("config_id = ?", configId).First(&config).Error
|
||||
err := store.DB.Where("config_id = ?", configID).First(&config).Error
|
||||
if errors.Is(err, gorm.ErrRecordNotFound) {
|
||||
return empty
|
||||
}
|
||||
return config.BoolValue
|
||||
}
|
||||
|
||||
func getBinConfigValue(configId string, empty []byte) []byte {
|
||||
func getBinConfigValue(configID string, empty []byte) []byte {
|
||||
var config store.Config
|
||||
err := store.DB.Where("config_id = ?", configId).First(&config).Error
|
||||
err := store.DB.Where("config_id = ?", configID).First(&config).Error
|
||||
if errors.Is(err, gorm.ErrRecordNotFound) {
|
||||
return empty
|
||||
}
|
||||
|
@ -13,7 +13,7 @@ func garbageCollect(act *store.Account) {
|
||||
defer garbageSync.Unlock()
|
||||
|
||||
// get all asset files
|
||||
dir := getStrConfigValue(CONFIG_ASSETPATH, APP_DEFAULTPATH) + "/" + act.Guid
|
||||
dir := getStrConfigValue(CONFIG_ASSETPATH, APP_DEFAULTPATH) + "/" + act.GUID
|
||||
files, err := os.ReadDir(dir)
|
||||
if err != nil {
|
||||
ErrMsg(err)
|
||||
@ -35,13 +35,13 @@ func garbageCollect(act *store.Account) {
|
||||
|
||||
// mark all referenced files
|
||||
for _, asset := range assets {
|
||||
list[asset.AssetId] = true
|
||||
list[asset.AssetID] = true
|
||||
}
|
||||
|
||||
// delete any unreferenced file
|
||||
for id, set := range list {
|
||||
if !set {
|
||||
LogMsg("removing file asset " + act.Guid + "/" + id)
|
||||
LogMsg("removing file asset " + act.GUID + "/" + id)
|
||||
if err := os.Remove(dir + "/" + id); err != nil {
|
||||
ErrMsg(err)
|
||||
}
|
||||
|
@ -41,13 +41,13 @@ func TestMain(m *testing.M) {
|
||||
}
|
||||
|
||||
// config data path
|
||||
scripts := &store.Config{ ConfigId: CONFIG_SCRIPTPATH, StrValue: "./testscripts" }
|
||||
scripts := &store.Config{ ConfigID: CONFIG_SCRIPTPATH, StrValue: "./testscripts" }
|
||||
if err := store.DB.Save(scripts).Error; err != nil {
|
||||
panic("failed to configure scripts path")
|
||||
}
|
||||
|
||||
// config data path
|
||||
path := &store.Config{ ConfigId: CONFIG_ASSETPATH, StrValue: "./testdata" }
|
||||
path := &store.Config{ ConfigID: CONFIG_ASSETPATH, StrValue: "./testdata" }
|
||||
if err := store.DB.Save(path).Error; err != nil {
|
||||
panic("failed to configure data path")
|
||||
}
|
||||
|
@ -72,7 +72,7 @@ func ReadDataMessage(msg *DataMessage, obj interface{}) (string, string, int64,
|
||||
}
|
||||
|
||||
// validate signer
|
||||
if signedData.Guid != guid {
|
||||
if signedData.GUID != guid {
|
||||
return "", "", 0, errors.New("invalid message source")
|
||||
}
|
||||
|
||||
@ -99,7 +99,7 @@ func WriteDataMessage(privateKey string, publicKey string, keyType string,
|
||||
return nil, err
|
||||
}
|
||||
var signedData SignedData
|
||||
signedData.Guid = guid
|
||||
signedData.GUID = guid
|
||||
signedData.Timestamp = time.Now().Unix()
|
||||
signedData.MessageType = messageType
|
||||
signedData.Value = string(data)
|
||||
|
@ -7,7 +7,7 @@ import (
|
||||
func getProfileModel(account *store.Account) *Profile {
|
||||
|
||||
return &Profile{
|
||||
Guid: account.Guid,
|
||||
GUID: account.GUID,
|
||||
Handle: account.Username,
|
||||
Name: account.AccountDetail.Name,
|
||||
Description: account.AccountDetail.Description,
|
||||
@ -23,13 +23,13 @@ func getCardModel(slot *store.CardSlot) *Card {
|
||||
|
||||
if slot.Card == nil {
|
||||
return &Card{
|
||||
Id: slot.CardSlotId,
|
||||
ID: slot.CardSlotID,
|
||||
Revision: slot.Revision,
|
||||
}
|
||||
}
|
||||
|
||||
return &Card{
|
||||
Id: slot.CardSlotId,
|
||||
ID: slot.CardSlotID,
|
||||
Revision: slot.Revision,
|
||||
Data: &CardData {
|
||||
NotifiedProfile: slot.Card.NotifiedProfile,
|
||||
@ -48,13 +48,13 @@ func getCardRevisionModel(slot *store.CardSlot) *Card {
|
||||
|
||||
if slot.Card == nil {
|
||||
return &Card{
|
||||
Id: slot.CardSlotId,
|
||||
ID: slot.CardSlotID,
|
||||
Revision: slot.Revision,
|
||||
}
|
||||
}
|
||||
|
||||
return &Card{
|
||||
Id: slot.CardSlotId,
|
||||
ID: slot.CardSlotID,
|
||||
Revision: slot.Revision,
|
||||
Data: &CardData {
|
||||
NotifiedProfile: slot.Card.NotifiedProfile,
|
||||
@ -71,7 +71,7 @@ func getCardDetailModel(slot *store.CardSlot) *CardDetail {
|
||||
|
||||
var groups []string;
|
||||
for _, group := range slot.Card.Groups {
|
||||
groups = append(groups, group.GroupSlot.GroupSlotId)
|
||||
groups = append(groups, group.GroupSlot.GroupSlotID)
|
||||
}
|
||||
|
||||
return &CardDetail{
|
||||
@ -85,7 +85,7 @@ func getCardDetailModel(slot *store.CardSlot) *CardDetail {
|
||||
func getCardProfileModel(slot *store.CardSlot) *CardProfile {
|
||||
|
||||
return &CardProfile{
|
||||
Guid: slot.Card.Guid,
|
||||
GUID: slot.Card.GUID,
|
||||
Handle: slot.Card.Username,
|
||||
Name: slot.Card.Name,
|
||||
Description: slot.Card.Description,
|
||||
@ -99,13 +99,13 @@ func getCardProfileModel(slot *store.CardSlot) *CardProfile {
|
||||
func getGroupModel(slot *store.GroupSlot) *Group {
|
||||
if slot.Group == nil {
|
||||
return &Group{
|
||||
Id: slot.GroupSlotId,
|
||||
ID: slot.GroupSlotID,
|
||||
Revision: slot.Revision,
|
||||
}
|
||||
}
|
||||
|
||||
return &Group{
|
||||
Id: slot.GroupSlotId,
|
||||
ID: slot.GroupSlotID,
|
||||
Revision: slot.Revision,
|
||||
Data: &GroupData {
|
||||
DataType: slot.Group.DataType,
|
||||
@ -119,22 +119,22 @@ func getGroupModel(slot *store.GroupSlot) *Group {
|
||||
func getArticleModel(slot *store.ArticleSlot, showData bool, showList bool) *Article {
|
||||
if !showData || slot.Article == nil {
|
||||
return &Article{
|
||||
Id: slot.ArticleSlotId,
|
||||
ID: slot.ArticleSlotID,
|
||||
Revision: slot.Revision,
|
||||
}
|
||||
}
|
||||
|
||||
var articleGroups *IdList
|
||||
var articleGroups *IDList
|
||||
if showList {
|
||||
var groups []string;
|
||||
for _, group := range slot.Article.Groups {
|
||||
groups = append(groups, group.GroupSlot.GroupSlotId)
|
||||
groups = append(groups, group.GroupSlot.GroupSlotID)
|
||||
}
|
||||
articleGroups = &IdList{ Ids: groups }
|
||||
articleGroups = &IDList{ IDs: groups }
|
||||
}
|
||||
|
||||
return &Article{
|
||||
Id: slot.ArticleSlotId,
|
||||
ID: slot.ArticleSlotID,
|
||||
Revision: slot.Revision,
|
||||
Data: &ArticleData {
|
||||
DataType: slot.Article.DataType,
|
||||
@ -150,13 +150,13 @@ func getChannelRevisionModel(slot *store.ChannelSlot, showData bool) *Channel {
|
||||
|
||||
if !showData || slot.Channel == nil {
|
||||
return &Channel{
|
||||
Id: slot.ChannelSlotId,
|
||||
ID: slot.ChannelSlotID,
|
||||
Revision: slot.Revision,
|
||||
}
|
||||
}
|
||||
|
||||
return &Channel{
|
||||
Id: slot.ChannelSlotId,
|
||||
ID: slot.ChannelSlotID,
|
||||
Revision: slot.Revision,
|
||||
Data: &ChannelData {
|
||||
DetailRevision: slot.Channel.DetailRevision,
|
||||
@ -175,18 +175,18 @@ func getChannelDetailModel(slot *store.ChannelSlot, showList bool) *ChannelDetai
|
||||
if showList {
|
||||
var groups []string;
|
||||
for _, group := range slot.Channel.Groups {
|
||||
groups = append(groups, group.GroupSlot.GroupSlotId)
|
||||
groups = append(groups, group.GroupSlot.GroupSlotID)
|
||||
}
|
||||
var cards []string;
|
||||
for _, card := range slot.Channel.Cards {
|
||||
cards = append(cards, card.CardSlot.CardSlotId)
|
||||
cards = append(cards, card.CardSlot.CardSlotID)
|
||||
}
|
||||
contacts = &ChannelContacts{ Groups: groups, Cards: cards }
|
||||
}
|
||||
|
||||
members := []string{}
|
||||
for _, card := range slot.Channel.Cards {
|
||||
members = append(members, card.Guid)
|
||||
members = append(members, card.GUID)
|
||||
}
|
||||
|
||||
return &ChannelDetail{
|
||||
@ -207,7 +207,7 @@ func getChannelSummaryModel(slot *store.ChannelSlot) *ChannelSummary {
|
||||
|
||||
topicDetail := TopicDetail{};
|
||||
if len(slot.Channel.Topics) > 0 {
|
||||
topicDetail.Guid = slot.Channel.Topics[0].Guid;
|
||||
topicDetail.GUID = slot.Channel.Topics[0].GUID;
|
||||
topicDetail.DataType = slot.Channel.Topics[0].DataType;
|
||||
topicDetail.Data = slot.Channel.Topics[0].Data;
|
||||
topicDetail.Created = slot.Channel.Topics[0].Created;
|
||||
@ -224,13 +224,13 @@ func getChannelModel(slot *store.ChannelSlot, showData bool, showList bool) *Cha
|
||||
|
||||
if !showData || slot.Channel == nil {
|
||||
return &Channel{
|
||||
Id: slot.ChannelSlotId,
|
||||
ID: slot.ChannelSlotID,
|
||||
Revision: slot.Revision,
|
||||
}
|
||||
}
|
||||
|
||||
return &Channel{
|
||||
Id: slot.ChannelSlotId,
|
||||
ID: slot.ChannelSlotID,
|
||||
Revision: slot.Revision,
|
||||
Data: &ChannelData {
|
||||
DetailRevision: slot.Channel.DetailRevision,
|
||||
@ -245,13 +245,13 @@ func getTopicRevisionModel(slot *store.TopicSlot) *Topic {
|
||||
|
||||
if slot.Topic == nil {
|
||||
return &Topic{
|
||||
Id: slot.TopicSlotId,
|
||||
ID: slot.TopicSlotID,
|
||||
Revision: slot.Revision,
|
||||
}
|
||||
}
|
||||
|
||||
return &Topic{
|
||||
Id: slot.TopicSlotId,
|
||||
ID: slot.TopicSlotID,
|
||||
Revision: slot.Revision,
|
||||
Data: &TopicData {
|
||||
DetailRevision: slot.Topic.DetailRevision,
|
||||
@ -276,7 +276,7 @@ func getTopicDetailModel(slot *store.TopicSlot) *TopicDetail {
|
||||
}
|
||||
|
||||
return &TopicDetail{
|
||||
Guid: slot.Topic.Guid,
|
||||
GUID: slot.Topic.GUID,
|
||||
DataType: slot.Topic.DataType,
|
||||
Data: slot.Topic.Data,
|
||||
Created: slot.Topic.Created,
|
||||
@ -290,13 +290,13 @@ func getTopicModel(slot *store.TopicSlot) *Topic {
|
||||
|
||||
if slot.Topic == nil {
|
||||
return &Topic{
|
||||
Id: slot.TopicSlotId,
|
||||
ID: slot.TopicSlotID,
|
||||
Revision: slot.Revision,
|
||||
}
|
||||
}
|
||||
|
||||
return &Topic{
|
||||
Id: slot.TopicSlotId,
|
||||
ID: slot.TopicSlotID,
|
||||
Revision: slot.Revision,
|
||||
Data: &TopicData {
|
||||
DetailRevision: slot.Topic.DetailRevision,
|
||||
@ -310,16 +310,16 @@ func getTagModel(slot *store.TagSlot) *Tag {
|
||||
|
||||
if slot.Tag == nil {
|
||||
return &Tag{
|
||||
Id: slot.TagSlotId,
|
||||
ID: slot.TagSlotID,
|
||||
Revision: slot.Revision,
|
||||
}
|
||||
}
|
||||
|
||||
return &Tag{
|
||||
Id: slot.TagSlotId,
|
||||
ID: slot.TagSlotID,
|
||||
Revision: slot.Revision,
|
||||
Data: &TagData{
|
||||
Guid: slot.Tag.Guid,
|
||||
GUID: slot.Tag.GUID,
|
||||
DataType: slot.Tag.DataType,
|
||||
Data: slot.Tag.Data,
|
||||
Created: slot.Tag.Created,
|
||||
|
@ -2,9 +2,9 @@ package databag
|
||||
|
||||
type AccountProfile struct {
|
||||
|
||||
AccountId uint32 `json:"accountId"`
|
||||
AccountID uint32 `json:"accountID"`
|
||||
|
||||
Guid string `json:"guid"`
|
||||
GUID string `json:"guid"`
|
||||
|
||||
Handle string `json:"handle,omitempty"`
|
||||
|
||||
@ -39,7 +39,7 @@ type Announce struct {
|
||||
|
||||
type App struct {
|
||||
|
||||
Id string `json:"id"`
|
||||
ID string `json:"id"`
|
||||
|
||||
Revision int64 `json:"revision"`
|
||||
|
||||
@ -61,7 +61,7 @@ type AppData struct {
|
||||
|
||||
type Article struct {
|
||||
|
||||
Id string `json:"id"`
|
||||
ID string `json:"id"`
|
||||
|
||||
Revision int64 `json:"revision"`
|
||||
|
||||
@ -78,7 +78,7 @@ type ArticleData struct {
|
||||
|
||||
Updated int64 `json:"updated"`
|
||||
|
||||
Groups *IdList `json:"groups,omitempty"`
|
||||
Groups *IDList `json:"groups,omitempty"`
|
||||
}
|
||||
|
||||
type ArticleGroups struct {
|
||||
@ -88,7 +88,7 @@ type ArticleGroups struct {
|
||||
|
||||
type Asset struct {
|
||||
|
||||
AssetId string `json:"assetId"`
|
||||
AssetID string `json:"assetID"`
|
||||
|
||||
Transform string `json:"transform,omitempty"`
|
||||
|
||||
@ -97,7 +97,7 @@ type Asset struct {
|
||||
|
||||
type Card struct {
|
||||
|
||||
Id string `json:"id"`
|
||||
ID string `json:"id"`
|
||||
|
||||
Revision int64 `json:"revision"`
|
||||
|
||||
@ -136,7 +136,7 @@ type CardDetail struct {
|
||||
|
||||
type CardProfile struct {
|
||||
|
||||
Guid string `json:"guid"`
|
||||
GUID string `json:"guid"`
|
||||
|
||||
Handle string `json:"handle,omitempty"`
|
||||
|
||||
@ -162,7 +162,7 @@ type ChannelContacts struct {
|
||||
|
||||
type Channel struct {
|
||||
|
||||
Id string `json:"id"`
|
||||
ID string `json:"id"`
|
||||
|
||||
Revision int64 `json:"revision"`
|
||||
|
||||
@ -280,7 +280,7 @@ type Disconnect struct {
|
||||
|
||||
type Group struct {
|
||||
|
||||
Id string `json:"id"`
|
||||
ID string `json:"id"`
|
||||
|
||||
Revision int64 `json:"revision"`
|
||||
|
||||
@ -317,9 +317,9 @@ type Identity struct {
|
||||
Node string `json:"node"`
|
||||
}
|
||||
|
||||
type IdList struct {
|
||||
type IDList struct {
|
||||
|
||||
Ids []string `json:"ids"`
|
||||
IDs []string `json:"ids"`
|
||||
}
|
||||
|
||||
type LoginAccess struct {
|
||||
@ -342,7 +342,7 @@ type NodeConfig struct {
|
||||
|
||||
type Profile struct {
|
||||
|
||||
Guid string `json:"guid"`
|
||||
GUID string `json:"guid"`
|
||||
|
||||
Handle string `json:"handle,omitempty"`
|
||||
|
||||
@ -387,7 +387,7 @@ type Revision struct {
|
||||
|
||||
type SignedData struct {
|
||||
|
||||
Guid string `json:"guid"`
|
||||
GUID string `json:"guid"`
|
||||
|
||||
Timestamp int64 `json:"timestamp"`
|
||||
|
||||
@ -405,7 +405,7 @@ type Subject struct {
|
||||
|
||||
type Tag struct {
|
||||
|
||||
Id string `json:"id"`
|
||||
ID string `json:"id"`
|
||||
|
||||
Revision int64 `json:"revision"`
|
||||
|
||||
@ -414,7 +414,7 @@ type Tag struct {
|
||||
|
||||
type TagData struct {
|
||||
|
||||
Guid string `json:"guid"`
|
||||
GUID string `json:"guid"`
|
||||
|
||||
DataType string `json:"dataType"`
|
||||
|
||||
@ -427,7 +427,7 @@ type TagData struct {
|
||||
|
||||
type Topic struct {
|
||||
|
||||
Id string `json:"id"`
|
||||
ID string `json:"id"`
|
||||
|
||||
Revision int64 `json:"revision"`
|
||||
|
||||
@ -445,7 +445,7 @@ type TopicData struct {
|
||||
|
||||
type TopicDetail struct {
|
||||
|
||||
Guid string `json:"guid"`
|
||||
GUID string `json:"guid"`
|
||||
|
||||
DataType string `json:"dataType"`
|
||||
|
||||
|
@ -101,7 +101,7 @@ func SendRemoteNotification(notification *store.Notification) {
|
||||
ErrMsg(err);
|
||||
return
|
||||
}
|
||||
url := "https://" + notification.Node + "/contact/" + module + "/revision?contact=" + notification.Guid + "." + notification.Token
|
||||
url := "https://" + notification.Node + "/contact/" + module + "/revision?contact=" + notification.GUID + "." + notification.Token
|
||||
req, err := http.NewRequest(http.MethodPut, url, bytes.NewBuffer(body))
|
||||
if err != nil {
|
||||
ErrMsg(err)
|
||||
@ -123,7 +123,7 @@ func SetProfileNotification(account *store.Account) {
|
||||
|
||||
// select all connected cards
|
||||
var cards []store.Card
|
||||
if err := store.DB.Where("account_id = ? AND status = ?", account.Guid, APP_CARDCONNECTED).Find(&cards).Error; err != nil {
|
||||
if err := store.DB.Where("account_id = ? AND status = ?", account.GUID, APP_CARDCONNECTED).Find(&cards).Error; err != nil {
|
||||
ErrMsg(err)
|
||||
return
|
||||
}
|
||||
@ -134,7 +134,7 @@ func SetProfileNotification(account *store.Account) {
|
||||
notification := &store.Notification{
|
||||
Node: card.Node,
|
||||
Module: APP_NOTIFYPROFILE,
|
||||
Guid: card.Guid,
|
||||
GUID: card.GUID,
|
||||
Token: card.OutToken,
|
||||
Revision: account.ProfileRevision,
|
||||
}
|
||||
@ -163,7 +163,7 @@ func SetContactArticleNotification(account *store.Account, card *store.Card) {
|
||||
notification := &store.Notification{
|
||||
Node: card.Node,
|
||||
Module: APP_NOTIFYARTICLE,
|
||||
Guid: card.Guid,
|
||||
GUID: card.GUID,
|
||||
Token: card.OutToken,
|
||||
Revision: account.ArticleRevision,
|
||||
}
|
||||
@ -188,7 +188,7 @@ func SetContactViewNotification(account *store.Account, card *store.Card) {
|
||||
notification := &store.Notification{
|
||||
Node: card.Node,
|
||||
Module: APP_NOTIFYVIEW,
|
||||
Guid: card.Guid,
|
||||
GUID: card.GUID,
|
||||
Token: card.OutToken,
|
||||
Revision: card.ViewRevision,
|
||||
}
|
||||
@ -212,7 +212,7 @@ func SetContactChannelNotification(account *store.Account, card *store.Card) {
|
||||
notification := &store.Notification{
|
||||
Node: card.Node,
|
||||
Module: APP_NOTIFYCHANNEL,
|
||||
Guid: card.Guid,
|
||||
GUID: card.GUID,
|
||||
Token: card.OutToken,
|
||||
Revision: account.ChannelRevision,
|
||||
}
|
||||
|
@ -77,7 +77,7 @@ var routes = Routes{
|
||||
Route{
|
||||
"GetAccountAsset",
|
||||
strings.ToUpper("Get"),
|
||||
"/account/assets/{assetId}",
|
||||
"/account/assets/{assetID}",
|
||||
GetAccountAsset,
|
||||
},
|
||||
|
||||
@ -140,7 +140,7 @@ var routes = Routes{
|
||||
Route{
|
||||
"RemoveAccountApp",
|
||||
strings.ToUpper("Delete"),
|
||||
"/account/apps/{appId}",
|
||||
"/account/apps/{appID}",
|
||||
RemoveAccountApp,
|
||||
},
|
||||
|
||||
@ -196,21 +196,21 @@ var routes = Routes{
|
||||
Route{
|
||||
"GetNodeAccountImage",
|
||||
strings.ToUpper("Get"),
|
||||
"/admin/accounts/{accountId}/image",
|
||||
"/admin/accounts/{accountID}/image",
|
||||
GetNodeAccountImage,
|
||||
},
|
||||
|
||||
Route{
|
||||
"SetNodeAccountStatus",
|
||||
strings.ToUpper("Put"),
|
||||
"/admin/accounts/{accountId}/status",
|
||||
"/admin/accounts/{accountID}/status",
|
||||
SetNodeAccountStatus,
|
||||
},
|
||||
|
||||
Route{
|
||||
"AddNodeAccountAccess",
|
||||
strings.ToUpper("Post"),
|
||||
"/admin/accounts/{accountId}/auth",
|
||||
"/admin/accounts/{accountID}/auth",
|
||||
AddNodeAccountAccess,
|
||||
},
|
||||
|
||||
@ -245,14 +245,14 @@ var routes = Routes{
|
||||
Route{
|
||||
"RemoveNodeAccount",
|
||||
strings.ToUpper("Delete"),
|
||||
"/admin/accounts/{accountId}",
|
||||
"/admin/accounts/{accountID}",
|
||||
RemoveNodeAccount,
|
||||
},
|
||||
|
||||
Route{
|
||||
"SetNodeAccount",
|
||||
strings.ToUpper("Put"),
|
||||
"/admin/accounts/{accountId}/reset",
|
||||
"/admin/accounts/{accountID}/reset",
|
||||
SetNodeAccount,
|
||||
},
|
||||
|
||||
@ -280,7 +280,7 @@ var routes = Routes{
|
||||
Route{
|
||||
"GetGroupSubjectField",
|
||||
strings.ToUpper("Get"),
|
||||
"/alias/groups/{groupId}/subject/{field}",
|
||||
"/alias/groups/{groupID}/subject/{field}",
|
||||
GetGroupSubjectField,
|
||||
},
|
||||
|
||||
@ -294,14 +294,14 @@ var routes = Routes{
|
||||
Route{
|
||||
"RemoveGroup",
|
||||
strings.ToUpper("Delete"),
|
||||
"/alias/groups/{groupId}",
|
||||
"/alias/groups/{groupID}",
|
||||
RemoveGroup,
|
||||
},
|
||||
|
||||
Route{
|
||||
"SetGroupSubject",
|
||||
strings.ToUpper("Put"),
|
||||
"/alias/groups/{groupId}/subject",
|
||||
"/alias/groups/{groupID}/subject",
|
||||
SetGroupSubject,
|
||||
},
|
||||
|
||||
@ -315,14 +315,14 @@ var routes = Routes{
|
||||
Route{
|
||||
"ClearArticleGroup",
|
||||
strings.ToUpper("Delete"),
|
||||
"/attribute/articles/{articleId}/groups/{groupId}",
|
||||
"/attribute/articles/{articleID}/groups/{groupID}",
|
||||
ClearArticleGroup,
|
||||
},
|
||||
|
||||
Route{
|
||||
"GetArticleSubjectField",
|
||||
strings.ToUpper("Get"),
|
||||
"/attribute/articles/{articleId}/subject/{field}",
|
||||
"/attribute/articles/{articleID}/subject/{field}",
|
||||
GetArticleSubjectField,
|
||||
},
|
||||
|
||||
@ -336,21 +336,21 @@ var routes = Routes{
|
||||
Route{
|
||||
"RemoveArticle",
|
||||
strings.ToUpper("Delete"),
|
||||
"/attribute/articles/{articleId}",
|
||||
"/attribute/articles/{articleID}",
|
||||
RemoveArticle,
|
||||
},
|
||||
|
||||
Route{
|
||||
"SetArticleGroup",
|
||||
strings.ToUpper("Put"),
|
||||
"/attribute/articles/{articleId}/groups/{groupId}",
|
||||
"/attribute/articles/{articleID}/groups/{groupID}",
|
||||
SetArticleGroup,
|
||||
},
|
||||
|
||||
Route{
|
||||
"SetArticleSubject",
|
||||
strings.ToUpper("Put"),
|
||||
"/attribute/articles/{articleId}/subject",
|
||||
"/attribute/articles/{articleID}/subject",
|
||||
SetArticleSubject,
|
||||
},
|
||||
|
||||
@ -371,35 +371,35 @@ var routes = Routes{
|
||||
Route{
|
||||
"ClearCardGroup",
|
||||
strings.ToUpper("Delete"),
|
||||
"/contact/cards/{cardId}/groups/{groupId}",
|
||||
"/contact/cards/{cardID}/groups/{groupID}",
|
||||
ClearCardGroup,
|
||||
},
|
||||
|
||||
Route{
|
||||
"ClearCardNotes",
|
||||
strings.ToUpper("Delete"),
|
||||
"/contact/cards/{cardId}/notes",
|
||||
"/contact/cards/{cardID}/notes",
|
||||
ClearCardNotes,
|
||||
},
|
||||
|
||||
Route{
|
||||
"GetCardDetail",
|
||||
strings.ToUpper("Get"),
|
||||
"/contact/cards/{cardId}/detail",
|
||||
"/contact/cards/{cardID}/detail",
|
||||
GetCardDetail,
|
||||
},
|
||||
|
||||
Route{
|
||||
"GetCardProfile",
|
||||
strings.ToUpper("Get"),
|
||||
"/contact/cards/{cardId}/profile",
|
||||
"/contact/cards/{cardID}/profile",
|
||||
GetCardProfile,
|
||||
},
|
||||
|
||||
Route{
|
||||
"GetCardProfileImage",
|
||||
strings.ToUpper("Get"),
|
||||
"/contact/cards/{cardId}/profile/image",
|
||||
"/contact/cards/{cardID}/profile/image",
|
||||
GetCardProfileImage,
|
||||
},
|
||||
|
||||
@ -413,21 +413,21 @@ var routes = Routes{
|
||||
Route{
|
||||
"GetCloseMessage",
|
||||
strings.ToUpper("Get"),
|
||||
"/contact/cards/{cardId}/closeMessage",
|
||||
"/contact/cards/{cardID}/closeMessage",
|
||||
GetCloseMessage,
|
||||
},
|
||||
|
||||
Route{
|
||||
"GetOpenMessage",
|
||||
strings.ToUpper("Get"),
|
||||
"/contact/cards/{cardId}/openMessage",
|
||||
"/contact/cards/{cardID}/openMessage",
|
||||
GetOpenMessage,
|
||||
},
|
||||
|
||||
Route{
|
||||
"RemoveCard",
|
||||
strings.ToUpper("Delete"),
|
||||
"/contact/cards/{cardId}",
|
||||
"/contact/cards/{cardID}",
|
||||
RemoveCard,
|
||||
},
|
||||
|
||||
@ -441,28 +441,28 @@ var routes = Routes{
|
||||
Route{
|
||||
"SetCardGroup",
|
||||
strings.ToUpper("Put"),
|
||||
"/contact/cards/{cardId}/groups/{groupId}",
|
||||
"/contact/cards/{cardID}/groups/{groupID}",
|
||||
SetCardGroup,
|
||||
},
|
||||
|
||||
Route{
|
||||
"SetCardNotes",
|
||||
strings.ToUpper("Put"),
|
||||
"/contact/cards/{cardId}/notes",
|
||||
"/contact/cards/{cardID}/notes",
|
||||
SetCardNotes,
|
||||
},
|
||||
|
||||
Route{
|
||||
"SetCardProfile",
|
||||
strings.ToUpper("Put"),
|
||||
"/contact/cards/{cardId}/profile",
|
||||
"/contact/cards/{cardID}/profile",
|
||||
SetCardProfile,
|
||||
},
|
||||
|
||||
Route{
|
||||
"SetCardStatus",
|
||||
strings.ToUpper("Put"),
|
||||
"/contact/cards/{cardId}/status",
|
||||
"/contact/cards/{cardID}/status",
|
||||
SetCardStatus,
|
||||
},
|
||||
|
||||
@ -511,112 +511,112 @@ var routes = Routes{
|
||||
Route{
|
||||
"AddChannelTopicAsset",
|
||||
strings.ToUpper("Post"),
|
||||
"/content/channels/{channelId}/topics/{topicId}/assets",
|
||||
"/content/channels/{channelID}/topics/{topicID}/assets",
|
||||
AddChannelTopicAsset,
|
||||
},
|
||||
|
||||
Route{
|
||||
"AddChannelTopic",
|
||||
strings.ToUpper("Post"),
|
||||
"/content/channels/{channelId}/topics",
|
||||
"/content/channels/{channelID}/topics",
|
||||
AddChannelTopic,
|
||||
},
|
||||
|
||||
Route{
|
||||
"AddChannelTopicTag",
|
||||
strings.ToUpper("Post"),
|
||||
"/content/channels/{channelId}/topics/{topicId}/tags",
|
||||
"/content/channels/{channelID}/topics/{topicID}/tags",
|
||||
AddChannelTopicTag,
|
||||
},
|
||||
|
||||
Route{
|
||||
"ClearChannelCard",
|
||||
strings.ToUpper("Delete"),
|
||||
"/content/channels/{channelId}/cards/{cardId}",
|
||||
"/content/channels/{channelID}/cards/{cardID}",
|
||||
ClearChannelCard,
|
||||
},
|
||||
|
||||
Route{
|
||||
"ClearChannelGroup",
|
||||
strings.ToUpper("Delete"),
|
||||
"/content/channels/{channelId}/groups/{groupId}",
|
||||
"/content/channels/{channelID}/groups/{groupID}",
|
||||
ClearChannelGroup,
|
||||
},
|
||||
|
||||
Route{
|
||||
"GetChannelTopicAsset",
|
||||
strings.ToUpper("Get"),
|
||||
"/content/channels/{channelId}/topics/{topicId}/assets/{assetId}",
|
||||
"/content/channels/{channelID}/topics/{topicID}/assets/{assetID}",
|
||||
GetChannelTopicAsset,
|
||||
},
|
||||
|
||||
Route{
|
||||
"GetChannelTopicAssets",
|
||||
strings.ToUpper("Get"),
|
||||
"/content/channels/{channelId}/topics/{topicId}/assets",
|
||||
"/content/channels/{channelID}/topics/{topicID}/assets",
|
||||
GetChannelTopicAssets,
|
||||
},
|
||||
|
||||
Route{
|
||||
"GetChannelDetail",
|
||||
strings.ToUpper("Get"),
|
||||
"/content/channels/{channelId}/detail",
|
||||
"/content/channels/{channelID}/detail",
|
||||
GetChannelDetail,
|
||||
},
|
||||
|
||||
Route{
|
||||
"GetChannelSummary",
|
||||
strings.ToUpper("Get"),
|
||||
"/content/channels/{channelId}/summary",
|
||||
"/content/channels/{channelID}/summary",
|
||||
GetChannelSummary,
|
||||
},
|
||||
|
||||
Route{
|
||||
"GetChannelSubjectField",
|
||||
strings.ToUpper("Get"),
|
||||
"/content/channels/{channelId}/subject/{field}",
|
||||
"/content/channels/{channelID}/subject/{field}",
|
||||
GetChannelSubjectField,
|
||||
},
|
||||
|
||||
Route{
|
||||
"GetChannelTopic",
|
||||
strings.ToUpper("Get"),
|
||||
"/content/channels/{channelId}/topics/{topicId}/detail",
|
||||
"/content/channels/{channelID}/topics/{topicID}/detail",
|
||||
GetChannelTopic,
|
||||
},
|
||||
|
||||
Route{
|
||||
"GetChannelTopicDetail",
|
||||
strings.ToUpper("Get"),
|
||||
"/content/channels/{channelId}/topics/{topicId}/detail",
|
||||
"/content/channels/{channelID}/topics/{topicID}/detail",
|
||||
GetChannelTopicDetail,
|
||||
},
|
||||
|
||||
Route{
|
||||
"GetChannelTopicSubjectField",
|
||||
strings.ToUpper("Get"),
|
||||
"/content/channels/{channelId}/topics/{topicId}/subject/{field}",
|
||||
"/content/channels/{channelID}/topics/{topicID}/subject/{field}",
|
||||
GetChannelTopicSubjectField,
|
||||
},
|
||||
|
||||
Route{
|
||||
"GetChannelTopicTagSubjectField",
|
||||
strings.ToUpper("Get"),
|
||||
"/content/channels/{channelId}/topics/{topicId}/tags/{tagId}/subject/{field}",
|
||||
"/content/channels/{channelID}/topics/{topicID}/tags/{tagID}/subject/{field}",
|
||||
GetChannelTopicTagSubjectField,
|
||||
},
|
||||
|
||||
Route{
|
||||
"GetChannelTopicTags",
|
||||
strings.ToUpper("Get"),
|
||||
"/content/channels/{channelId}/topics/{topicId}/tags",
|
||||
"/content/channels/{channelID}/topics/{topicID}/tags",
|
||||
GetChannelTopicTags,
|
||||
},
|
||||
|
||||
Route{
|
||||
"GetChannelTopics",
|
||||
strings.ToUpper("Get"),
|
||||
"/content/channels/{channelId}/topics",
|
||||
"/content/channels/{channelID}/topics",
|
||||
GetChannelTopics,
|
||||
},
|
||||
|
||||
@ -630,70 +630,70 @@ var routes = Routes{
|
||||
Route{
|
||||
"RemoveChannel",
|
||||
strings.ToUpper("Delete"),
|
||||
"/content/channels/{channelId}",
|
||||
"/content/channels/{channelID}",
|
||||
RemoveChannel,
|
||||
},
|
||||
|
||||
Route{
|
||||
"RemoveChannelTopicAsset",
|
||||
strings.ToUpper("Delete"),
|
||||
"/content/channels/{channelId}/topics/{topicId}/assets/{assetId}",
|
||||
"/content/channels/{channelID}/topics/{topicID}/assets/{assetID}",
|
||||
RemoveChannelTopicAsset,
|
||||
},
|
||||
|
||||
Route{
|
||||
"RemoveChannelTopic",
|
||||
strings.ToUpper("Delete"),
|
||||
"/content/channels/{channelId}/topics/{topicId}",
|
||||
"/content/channels/{channelID}/topics/{topicID}",
|
||||
RemoveChannelTopic,
|
||||
},
|
||||
|
||||
Route{
|
||||
"RemoveChannelTopicTag",
|
||||
strings.ToUpper("Delete"),
|
||||
"/content/channels/{channelId}/topics/{topicId}/tags/{tagId}",
|
||||
"/content/channels/{channelID}/topics/{topicID}/tags/{tagID}",
|
||||
RemoveChannelTopicTag,
|
||||
},
|
||||
|
||||
Route{
|
||||
"SetChannelCard",
|
||||
strings.ToUpper("Put"),
|
||||
"/content/channels/{channelId}/cards/{cardId}",
|
||||
"/content/channels/{channelID}/cards/{cardID}",
|
||||
SetChannelCard,
|
||||
},
|
||||
|
||||
Route{
|
||||
"SetChannelTopicConfirmed",
|
||||
strings.ToUpper("Put"),
|
||||
"/content/channels/{channelId}/topics/{topicId}/confirmed",
|
||||
"/content/channels/{channelID}/topics/{topicID}/confirmed",
|
||||
SetChannelTopicConfirmed,
|
||||
},
|
||||
|
||||
Route{
|
||||
"SetChannelGroup",
|
||||
strings.ToUpper("Put"),
|
||||
"/content/channels/{channelId}/groups/{groupId}",
|
||||
"/content/channels/{channelID}/groups/{groupID}",
|
||||
SetChannelGroup,
|
||||
},
|
||||
|
||||
Route{
|
||||
"SetChannelSubject",
|
||||
strings.ToUpper("Put"),
|
||||
"/content/channels/{channelId}/subject",
|
||||
"/content/channels/{channelID}/subject",
|
||||
SetChannelSubject,
|
||||
},
|
||||
|
||||
Route{
|
||||
"SetChannelTopicSubject",
|
||||
strings.ToUpper("Put"),
|
||||
"/content/channels/{channelId}/topics/{topicId}/subject",
|
||||
"/content/channels/{channelID}/topics/{topicID}/subject",
|
||||
SetChannelTopicSubject,
|
||||
},
|
||||
|
||||
Route{
|
||||
"SetChannelTopicTagSubject",
|
||||
strings.ToUpper("Put"),
|
||||
"/content/channels/{channelId}/topics/{topicId}/tags/{tagId}/subject",
|
||||
"/content/channels/{channelID}/topics/{topicID}/tags/{tagID}/subject",
|
||||
SetChannelTopicTagSubject,
|
||||
},
|
||||
|
||||
|
@ -27,7 +27,7 @@ func AutoMigrate(db *gorm.DB) {
|
||||
type Notification struct {
|
||||
ID uint `gorm:"primaryKey;not null;unique;autoIncrement"`
|
||||
Node string `gorm:"not null"`
|
||||
Guid string `gorm:"not null"`
|
||||
GUID string `gorm:"not null"`
|
||||
Module string `gorm:"not null"`
|
||||
Token string `gorm:"not null"`
|
||||
Revision int64 `gorm:"not null"`
|
||||
@ -35,7 +35,7 @@ type Notification struct {
|
||||
|
||||
type Config struct {
|
||||
ID uint `gorm:"primaryKey;not null;unique;autoIncrement"`
|
||||
ConfigId string `gorm:"not null;uniqueIndex"`
|
||||
ConfigID string `gorm:"not null;uniqueIndex"`
|
||||
StrValue string
|
||||
NumValue int64
|
||||
BoolValue bool
|
||||
@ -55,7 +55,7 @@ type AccountToken struct {
|
||||
type Account struct {
|
||||
ID uint `gorm:"primaryKey;not null;unique;autoIncrement"`
|
||||
AccountDetailID uint `gorm:"not null"`
|
||||
Guid string `gorm:"not null;uniqueIndex"`
|
||||
GUID string `gorm:"not null;uniqueIndex"`
|
||||
Username string `gorm:"not null;uniqueIndex"`
|
||||
Handle string `gorm:"uniqueIndex"`
|
||||
Password []byte `gorm:"not null"`
|
||||
@ -94,12 +94,12 @@ type App struct {
|
||||
Url string
|
||||
Token string `gorm:"not null;index:appguid,unique"`
|
||||
Created int64 `gorm:"autoCreateTime"`
|
||||
Account Account `gorm:"references:Guid"`
|
||||
Account Account `gorm:"references:GUID"`
|
||||
}
|
||||
|
||||
type GroupSlot struct {
|
||||
ID uint
|
||||
GroupSlotId string `gorm:"not null;index:groupslot,unique"`
|
||||
GroupSlotID string `gorm:"not null;index:groupslot,unique"`
|
||||
AccountID uint `gorm:"not null;index:groupslot,unique"`
|
||||
Revision int64 `gorm:"not null"`
|
||||
GroupID uint `gorm:"not null;default:0"`
|
||||
@ -129,7 +129,7 @@ type GroupData struct {
|
||||
|
||||
type CardSlot struct {
|
||||
ID uint `gorm:"primaryKey;not null;unique;autoIncrement"`
|
||||
CardSlotId string `gorm:"not null;index:cardslot,unique"`
|
||||
CardSlotID string `gorm:"not null;index:cardslot,unique"`
|
||||
AccountID uint `gorm:"not null;index:cardslot,unique"`
|
||||
Revision int64 `gorm:"not null"`
|
||||
CardID uint `gorm:"not null;default:0"`
|
||||
@ -140,7 +140,7 @@ type CardSlot struct {
|
||||
type Card struct {
|
||||
ID uint `gorm:"primaryKey;not null;unique;autoIncrement"`
|
||||
AccountID string `gorm:"not null;index:cardguid,unique"`
|
||||
Guid string `gorm:"not null;index:cardguid,unique"`
|
||||
GUID string `gorm:"not null;index:cardguid,unique"`
|
||||
Username string
|
||||
Name string
|
||||
Description string
|
||||
@ -161,7 +161,7 @@ type Card struct {
|
||||
NotifiedArticle int64
|
||||
NotifiedChannel int64
|
||||
NotifiedProfile int64
|
||||
Account Account `gorm:"references:Guid"`
|
||||
Account Account `gorm:"references:GUID"`
|
||||
Groups []Group `gorm:"many2many:card_groups"`
|
||||
Channels []Channel `gorm:"many2many:channel_cards"`
|
||||
CardSlot CardSlot
|
||||
@ -169,7 +169,7 @@ type Card struct {
|
||||
|
||||
type ArticleSlot struct {
|
||||
ID uint `gorm:"primaryKey;not null;unique;autoIncrement"`
|
||||
ArticleSlotId string `gorm:"not null;index:articleslot,unique"`
|
||||
ArticleSlotID string `gorm:"not null;index:articleslot,unique"`
|
||||
AccountID uint `gorm:"not null;index:articleslot,unique"`
|
||||
Revision int64 `gorm:"not null"`
|
||||
ArticleID uint `gorm:"not null;default:0"`
|
||||
@ -190,7 +190,7 @@ type Article struct {
|
||||
|
||||
type ChannelSlot struct {
|
||||
ID uint
|
||||
ChannelSlotId string `gorm:"not null;index:channelslot,unique"`
|
||||
ChannelSlotID string `gorm:"not null;index:channelslot,unique"`
|
||||
AccountID uint `gorm:"not null;index:channelslot,unique"`
|
||||
Revision int64 `gorm:"not null"`
|
||||
ChannelID uint `gorm:"not null;default:0"`
|
||||
@ -215,7 +215,7 @@ type Channel struct {
|
||||
|
||||
type TopicSlot struct {
|
||||
ID uint
|
||||
TopicSlotId string `gorm:"not null;index:topicaccount,unique;index:topicchannel,unique"`
|
||||
TopicSlotID string `gorm:"not null;index:topicaccount,unique;index:topicchannel,unique"`
|
||||
AccountID uint `gorm:"not null;index:topicaccount,unique"`
|
||||
ChannelID uint `gorm:"not null;index:topicchannel,unique"`
|
||||
Revision int64 `gorm:"not null"`
|
||||
@ -230,7 +230,7 @@ type Topic struct {
|
||||
AccountID uint
|
||||
ChannelID uint
|
||||
TopicSlotID uint `gorm:"not null;index:topictopicslot,unique"`
|
||||
Guid string
|
||||
GUID string
|
||||
DataType string `gorm:"index"`
|
||||
Data string
|
||||
Status string `gorm:"not null;index"`
|
||||
@ -246,7 +246,7 @@ type Topic struct {
|
||||
|
||||
type Asset struct {
|
||||
ID uint `gorm:"primaryKey;not null;unique;autoIncrement"`
|
||||
AssetId string `gorm:"not null;index:asset,unique"`
|
||||
AssetID string `gorm:"not null;index:asset,unique"`
|
||||
AccountID uint `gorm:"not null;index:asset,unique"`
|
||||
ChannelID uint
|
||||
TopicID uint
|
||||
@ -254,7 +254,7 @@ type Asset struct {
|
||||
Size int64
|
||||
Crc uint32
|
||||
Transform string
|
||||
TransformId string
|
||||
TransformID string
|
||||
TransformParams string
|
||||
TransformQueue string
|
||||
Created int64 `gorm:"autoCreateTime"`
|
||||
@ -266,7 +266,7 @@ type Asset struct {
|
||||
|
||||
type TagSlot struct {
|
||||
ID uint
|
||||
TagSlotId string `gorm:"not null;index:tagslot,unique"`
|
||||
TagSlotID string `gorm:"not null;index:tagslot,unique"`
|
||||
AccountID uint `gorm:"not null;index:tagslot,unique"`
|
||||
ChannelID uint `gorm:"not null"`
|
||||
TopicID uint `gorm:"not null;index:tagtopic"`
|
||||
@ -283,7 +283,7 @@ type Tag struct {
|
||||
AccountID uint
|
||||
ChannelID uint `gorm:"not null;index:channeltag"`
|
||||
TopicID uint `gorm:"not null;index:topictag"`
|
||||
Guid string `gorm:"not null"`
|
||||
GUID string `gorm:"not null"`
|
||||
DataType string `gorm:"index"`
|
||||
Data string
|
||||
Created int64 `gorm:"autoCreateTime"`
|
||||
|
@ -108,16 +108,16 @@ func (c *TestContactData) UpdateContact() (err error) {
|
||||
|
||||
func (c *TestContactData) UpdateContactProfile() (err error) {
|
||||
var msg DataMessage
|
||||
token := c.card.Data.CardProfile.Guid + "." + c.card.Data.CardDetail.Token
|
||||
params := &TestApiParams{ query: "/profile/message", tokenType: APP_TOKENCONTACT, token: token }
|
||||
response := &TestApiResponse{ data: &msg }
|
||||
if err = TestApiRequest(GetProfileMessage, params, response); err != nil {
|
||||
token := c.card.Data.CardProfile.GUID + "." + c.card.Data.CardDetail.Token
|
||||
params := &TestAPIParams{ query: "/profile/message", tokenType: APP_TOKENCONTACT, token: token }
|
||||
response := &TestAPIResponse{ data: &msg }
|
||||
if err = TestAPIRequest(GetProfileMessage, params, response); err != nil {
|
||||
return
|
||||
}
|
||||
params = &TestApiParams{ restType: "PUT", query: "/contact/cards/{cardId}/profile", tokenType: APP_TOKENAGENT, token: c.token,
|
||||
path: map[string]string{ "cardId": c.card.Id }, body: &msg }
|
||||
response = &TestApiResponse{}
|
||||
if err = TestApiRequest(SetCardProfile, params, response); err != nil {
|
||||
params = &TestAPIParams{ restType: "PUT", query: "/contact/cards/{cardID}/profile", tokenType: APP_TOKENAGENT, token: c.token,
|
||||
path: map[string]string{ "cardID": c.card.ID }, body: &msg }
|
||||
response = &TestAPIResponse{}
|
||||
if err = TestAPIRequest(SetCardProfile, params, response); err != nil {
|
||||
return
|
||||
}
|
||||
return
|
||||
@ -126,29 +126,29 @@ func (c *TestContactData) UpdateContactProfile() (err error) {
|
||||
func (c *TestContactData) UpdateContactArticle() (err error) {
|
||||
var articles []Article
|
||||
if c.articleRevision == 0 || c.viewRevision != c.card.Data.NotifiedView {
|
||||
token := c.card.Data.CardProfile.Guid + "." + c.card.Data.CardDetail.Token
|
||||
params := &TestApiParams{ query: "/articles", tokenType: APP_TOKENCONTACT, token: token }
|
||||
response := &TestApiResponse{ data: &articles }
|
||||
if err = TestApiRequest(GetArticles, params, response); err != nil {
|
||||
token := c.card.Data.CardProfile.GUID + "." + c.card.Data.CardDetail.Token
|
||||
params := &TestAPIParams{ query: "/articles", tokenType: APP_TOKENCONTACT, token: token }
|
||||
response := &TestAPIResponse{ data: &articles }
|
||||
if err = TestAPIRequest(GetArticles, params, response); err != nil {
|
||||
return
|
||||
}
|
||||
c.articles = make(map[string]*Article)
|
||||
} else {
|
||||
token := c.card.Data.CardProfile.Guid + "." + c.card.Data.CardDetail.Token
|
||||
token := c.card.Data.CardProfile.GUID + "." + c.card.Data.CardDetail.Token
|
||||
viewRevision := strconv.FormatInt(c.viewRevision, 10)
|
||||
articleRevision := strconv.FormatInt(c.articleRevision, 10)
|
||||
params := &TestApiParams{ query: "/articles?articleRevision=" + articleRevision + "&viewRevision=" + viewRevision,
|
||||
params := &TestAPIParams{ query: "/articles?articleRevision=" + articleRevision + "&viewRevision=" + viewRevision,
|
||||
tokenType: APP_TOKENCONTACT, token: token }
|
||||
response := &TestApiResponse{ data: &articles }
|
||||
if err = TestApiRequest(GetArticles, params, response); err != nil {
|
||||
response := &TestAPIResponse{ data: &articles }
|
||||
if err = TestAPIRequest(GetArticles, params, response); err != nil {
|
||||
return
|
||||
}
|
||||
}
|
||||
for _, article := range articles {
|
||||
if article.Data == nil {
|
||||
delete(c.articles, article.Id)
|
||||
delete(c.articles, article.ID)
|
||||
} else {
|
||||
c.articles[article.Id] = &article
|
||||
c.articles[article.ID] = &article
|
||||
}
|
||||
}
|
||||
return nil
|
||||
@ -157,29 +157,29 @@ func (c *TestContactData) UpdateContactArticle() (err error) {
|
||||
func (c *TestContactData) UpdateContactChannels() (err error) {
|
||||
var channels []Channel
|
||||
if c.channelRevision == 0 || c.viewRevision != c.card.Data.NotifiedView {
|
||||
token := c.card.Data.CardProfile.Guid + "." + c.card.Data.CardDetail.Token
|
||||
params := &TestApiParams{ query: "/channels", tokenType: APP_TOKENCONTACT, token: token }
|
||||
response := &TestApiResponse{ data: &channels }
|
||||
if err = TestApiRequest(GetChannels, params, response); err != nil {
|
||||
token := c.card.Data.CardProfile.GUID + "." + c.card.Data.CardDetail.Token
|
||||
params := &TestAPIParams{ query: "/channels", tokenType: APP_TOKENCONTACT, token: token }
|
||||
response := &TestAPIResponse{ data: &channels }
|
||||
if err = TestAPIRequest(GetChannels, params, response); err != nil {
|
||||
return
|
||||
}
|
||||
} else {
|
||||
token := c.card.Data.CardProfile.Guid + "." + c.card.Data.CardDetail.Token
|
||||
token := c.card.Data.CardProfile.GUID + "." + c.card.Data.CardDetail.Token
|
||||
viewRevision := strconv.FormatInt(c.viewRevision, 10)
|
||||
channelRevision := strconv.FormatInt(c.channelRevision, 10)
|
||||
params := &TestApiParams{ query: "/channels?channelRevision=" + channelRevision + "&viewRevision=" + viewRevision,
|
||||
params := &TestAPIParams{ query: "/channels?channelRevision=" + channelRevision + "&viewRevision=" + viewRevision,
|
||||
tokenType: APP_TOKENCONTACT, token: token }
|
||||
response := &TestApiResponse{ data: &channels }
|
||||
if err = TestApiRequest(GetChannels, params, response); err != nil {
|
||||
response := &TestAPIResponse{ data: &channels }
|
||||
if err = TestAPIRequest(GetChannels, params, response); err != nil {
|
||||
return
|
||||
}
|
||||
}
|
||||
|
||||
for _, channel := range channels {
|
||||
if channel.Data == nil {
|
||||
delete(c.channels, channel.Id)
|
||||
delete(c.channels, channel.ID)
|
||||
} else {
|
||||
tc, set := c.channels[channel.Id]
|
||||
tc, set := c.channels[channel.ID]
|
||||
if set {
|
||||
if channel.Revision != tc.channel.Revision {
|
||||
if err = c.UpdateContactChannel(tc, &channel); err != nil {
|
||||
@ -188,8 +188,8 @@ func (c *TestContactData) UpdateContactChannels() (err error) {
|
||||
tc.channel.Revision = channel.Revision
|
||||
}
|
||||
} else {
|
||||
tc := &TestChannel{ channel: Channel{ Id: channel.Id, Data: &ChannelData{} } }
|
||||
c.channels[channel.Id] = tc
|
||||
tc := &TestChannel{ channel: Channel{ ID: channel.ID, Data: &ChannelData{} } }
|
||||
c.channels[channel.ID] = tc
|
||||
if err = c.UpdateContactChannel(tc, &channel); err != nil {
|
||||
return
|
||||
}
|
||||
@ -212,12 +212,12 @@ func (c *TestContactData) UpdateContactChannel(storeChannel *TestChannel, channe
|
||||
storeChannel.channel.Data.ChannelDetail = channel.Data.ChannelDetail
|
||||
storeChannel.channel.Data.DetailRevision = channel.Data.DetailRevision
|
||||
} else if storeChannel.channel.Data.DetailRevision != channel.Data.DetailRevision {
|
||||
token := c.card.Data.CardProfile.Guid + "." + c.card.Data.CardDetail.Token
|
||||
params := &TestApiParams{ query: "/channel/{channelId}", path: map[string]string{ "channelId": channel.Id },
|
||||
token := c.card.Data.CardProfile.GUID + "." + c.card.Data.CardDetail.Token
|
||||
params := &TestAPIParams{ query: "/channel/{channelID}", path: map[string]string{ "channelID": channel.ID },
|
||||
tokenType: APP_TOKENCONTACT, token: token }
|
||||
detail := &ChannelDetail{}
|
||||
response := &TestApiResponse{ data: &detail }
|
||||
if err = TestApiRequest(GetChannelDetail, params, response); err != nil {
|
||||
response := &TestAPIResponse{ data: &detail }
|
||||
if err = TestAPIRequest(GetChannelDetail, params, response); err != nil {
|
||||
return
|
||||
}
|
||||
if channel.Data == nil {
|
||||
@ -234,30 +234,30 @@ func (c *TestContactData) UpdateContactChannel(storeChannel *TestChannel, channe
|
||||
func (c *TestContactData) UpdateContactChannelTopics(storeChannel *TestChannel) (err error) {
|
||||
var topics []Topic
|
||||
if storeChannel.channel.Revision == 0 {
|
||||
token := c.card.Data.CardProfile.Guid + "." + c.card.Data.CardDetail.Token
|
||||
params := &TestApiParams{ query: "/channels/{channelId}/topics",
|
||||
path: map[string]string{ "channelId": storeChannel.channel.Id }, tokenType: APP_TOKENCONTACT, token: token }
|
||||
response := &TestApiResponse{ data: &topics }
|
||||
if err = TestApiRequest(GetChannelTopics, params, response); err != nil {
|
||||
token := c.card.Data.CardProfile.GUID + "." + c.card.Data.CardDetail.Token
|
||||
params := &TestAPIParams{ query: "/channels/{channelID}/topics",
|
||||
path: map[string]string{ "channelID": storeChannel.channel.ID }, tokenType: APP_TOKENCONTACT, token: token }
|
||||
response := &TestAPIResponse{ data: &topics }
|
||||
if err = TestAPIRequest(GetChannelTopics, params, response); err != nil {
|
||||
return
|
||||
}
|
||||
storeChannel.topics = make(map[string]*TestTopic)
|
||||
} else {
|
||||
token := c.card.Data.CardProfile.Guid + "." + c.card.Data.CardDetail.Token
|
||||
token := c.card.Data.CardProfile.GUID + "." + c.card.Data.CardDetail.Token
|
||||
revision := strconv.FormatInt(storeChannel.channel.Revision, 10)
|
||||
params := &TestApiParams{ query: "/channels/{channelId}/topics?revision=" + revision,
|
||||
path: map[string]string{ "channelId": storeChannel.channel.Id }, tokenType: APP_TOKENCONTACT, token: token }
|
||||
response := &TestApiResponse{ data: &topics }
|
||||
if err = TestApiRequest(GetChannelTopics, params, response); err != nil {
|
||||
params := &TestAPIParams{ query: "/channels/{channelID}/topics?revision=" + revision,
|
||||
path: map[string]string{ "channelID": storeChannel.channel.ID }, tokenType: APP_TOKENCONTACT, token: token }
|
||||
response := &TestAPIResponse{ data: &topics }
|
||||
if err = TestAPIRequest(GetChannelTopics, params, response); err != nil {
|
||||
return
|
||||
}
|
||||
}
|
||||
|
||||
for _, topic := range topics {
|
||||
if topic.Data == nil {
|
||||
delete(storeChannel.topics, topic.Id)
|
||||
delete(storeChannel.topics, topic.ID)
|
||||
} else {
|
||||
storeTopic, set := storeChannel.topics[topic.Id]
|
||||
storeTopic, set := storeChannel.topics[topic.ID]
|
||||
if set {
|
||||
if topic.Revision != storeTopic.topic.Revision {
|
||||
if err = c.UpdateContactChannelTopic(storeChannel, storeTopic, &topic); err != nil {
|
||||
@ -266,8 +266,8 @@ func (c *TestContactData) UpdateContactChannelTopics(storeChannel *TestChannel)
|
||||
storeTopic.topic.Revision = topic.Revision
|
||||
}
|
||||
} else {
|
||||
storeTopic := &TestTopic{ topic: Topic{ Id: topic.Id, Data: &TopicData{} } }
|
||||
storeChannel.topics[topic.Id] = storeTopic
|
||||
storeTopic := &TestTopic{ topic: Topic{ ID: topic.ID, Data: &TopicData{} } }
|
||||
storeChannel.topics[topic.ID] = storeTopic
|
||||
if err = c.UpdateContactChannelTopic(storeChannel, storeTopic, &topic); err != nil {
|
||||
return
|
||||
}
|
||||
@ -290,13 +290,13 @@ func (c *TestContactData) UpdateContactChannelTopic(storeChannel *TestChannel, s
|
||||
storeTopic.topic.Data.TopicDetail = topic.Data.TopicDetail
|
||||
storeTopic.topic.Data.DetailRevision = topic.Data.DetailRevision
|
||||
} else if storeTopic.topic.Data.DetailRevision != topic.Data.DetailRevision {
|
||||
token := c.card.Data.CardProfile.Guid + "." + c.card.Data.CardDetail.Token
|
||||
params := &TestApiParams{ query: "/channels/{channelId}/topics/{topicId}",
|
||||
path: map[string]string{ "channelId": storeChannel.channel.Id, "topicId": topic.Id },
|
||||
token := c.card.Data.CardProfile.GUID + "." + c.card.Data.CardDetail.Token
|
||||
params := &TestAPIParams{ query: "/channels/{channelID}/topics/{topicID}",
|
||||
path: map[string]string{ "channelID": storeChannel.channel.ID, "topicID": topic.ID },
|
||||
tokenType: APP_TOKENCONTACT, token: token }
|
||||
topic := Topic{}
|
||||
response := &TestApiResponse{ data: &topic }
|
||||
if err = TestApiRequest(GetChannelTopic, params, response); err != nil {
|
||||
response := &TestAPIResponse{ data: &topic }
|
||||
if err = TestAPIRequest(GetChannelTopic, params, response); err != nil {
|
||||
return
|
||||
}
|
||||
if topic.Data == nil {
|
||||
@ -313,32 +313,32 @@ func (c *TestContactData) UpdateContactChannelTopic(storeChannel *TestChannel, s
|
||||
func (c *TestContactData) UpdateContactChannelTopicTags(storeChannel *TestChannel, storeTopic *TestTopic) (err error) {
|
||||
var tags []Tag
|
||||
if storeTopic.topic.Revision == 0 {
|
||||
token := c.card.Data.CardProfile.Guid + "." + c.card.Data.CardDetail.Token
|
||||
params := &TestApiParams{ query: "/channels/{channelId}/topics/{topicId}/tags",
|
||||
path: map[string]string{ "channelId": storeChannel.channel.Id, "topicId": storeTopic.topic.Id },
|
||||
token := c.card.Data.CardProfile.GUID + "." + c.card.Data.CardDetail.Token
|
||||
params := &TestAPIParams{ query: "/channels/{channelID}/topics/{topicID}/tags",
|
||||
path: map[string]string{ "channelID": storeChannel.channel.ID, "topicID": storeTopic.topic.ID },
|
||||
tokenType: APP_TOKENCONTACT, token: token }
|
||||
response := &TestApiResponse{ data: &tags }
|
||||
if err = TestApiRequest(GetChannelTopicTags, params, response); err != nil {
|
||||
response := &TestAPIResponse{ data: &tags }
|
||||
if err = TestAPIRequest(GetChannelTopicTags, params, response); err != nil {
|
||||
return
|
||||
}
|
||||
storeTopic.tags = make(map[string]*Tag)
|
||||
} else {
|
||||
revision := strconv.FormatInt(storeTopic.topic.Revision, 10)
|
||||
token := c.card.Data.CardProfile.Guid + "." + c.card.Data.CardDetail.Token
|
||||
params := &TestApiParams{ query: "/channels/{channelId}/topics/{topicId}/tags?revision=" + revision,
|
||||
path: map[string]string{ "channelId": storeChannel.channel.Id, "topicId": storeTopic.topic.Id },
|
||||
token := c.card.Data.CardProfile.GUID + "." + c.card.Data.CardDetail.Token
|
||||
params := &TestAPIParams{ query: "/channels/{channelID}/topics/{topicID}/tags?revision=" + revision,
|
||||
path: map[string]string{ "channelID": storeChannel.channel.ID, "topicID": storeTopic.topic.ID },
|
||||
tokenType: APP_TOKENCONTACT, token: token }
|
||||
response := &TestApiResponse{ data: &tags }
|
||||
if err = TestApiRequest(GetChannelTopicTags, params, response); err != nil {
|
||||
response := &TestAPIResponse{ data: &tags }
|
||||
if err = TestAPIRequest(GetChannelTopicTags, params, response); err != nil {
|
||||
return
|
||||
}
|
||||
}
|
||||
|
||||
for _, tag := range tags {
|
||||
if tag.Data == nil {
|
||||
delete(storeTopic.tags, tag.Id)
|
||||
delete(storeTopic.tags, tag.ID)
|
||||
} else {
|
||||
storeTopic.tags[tag.Id] = &tag
|
||||
storeTopic.tags[tag.ID] = &tag
|
||||
}
|
||||
}
|
||||
return
|
||||
@ -346,10 +346,10 @@ func (c *TestContactData) UpdateContactChannelTopicTags(storeChannel *TestChanne
|
||||
|
||||
func (c *TestContactData) UpdateContactCardDetail() (err error) {
|
||||
var cardDetail CardDetail
|
||||
params := &TestApiParams{ query: "/contact/cards/{cardId}/detail", tokenType: APP_TOKENAGENT, token: c.token,
|
||||
path: map[string]string{ "cardId": c.card.Id } }
|
||||
response := &TestApiResponse{ data: &cardDetail }
|
||||
if err = TestApiRequest(GetCardDetail, params, response); err != nil {
|
||||
params := &TestAPIParams{ query: "/contact/cards/{cardID}/detail", tokenType: APP_TOKENAGENT, token: c.token,
|
||||
path: map[string]string{ "cardID": c.card.ID } }
|
||||
response := &TestAPIResponse{ data: &cardDetail }
|
||||
if err = TestAPIRequest(GetCardDetail, params, response); err != nil {
|
||||
return
|
||||
}
|
||||
c.card.Data.CardDetail = &cardDetail
|
||||
@ -358,10 +358,10 @@ func (c *TestContactData) UpdateContactCardDetail() (err error) {
|
||||
|
||||
func (c *TestContactData) UpdateContactCardProfile() (err error) {
|
||||
var cardProfile CardProfile
|
||||
params := &TestApiParams{ query: "/contact/cards/{cardId}/profile", tokenType: APP_TOKENAGENT, token: c.token,
|
||||
path: map[string]string{ "cardId": c.card.Id } }
|
||||
response := &TestApiResponse{ data: &cardProfile }
|
||||
if err = TestApiRequest(GetCardProfile, params, response); err != nil {
|
||||
params := &TestAPIParams{ query: "/contact/cards/{cardID}/profile", tokenType: APP_TOKENAGENT, token: c.token,
|
||||
path: map[string]string{ "cardID": c.card.ID } }
|
||||
response := &TestAPIResponse{ data: &cardProfile }
|
||||
if err = TestAPIRequest(GetCardProfile, params, response); err != nil {
|
||||
return
|
||||
}
|
||||
c.card.Data.CardProfile = &cardProfile
|
||||
@ -393,33 +393,33 @@ type TestApp struct {
|
||||
}
|
||||
|
||||
func (a *TestApp) UpdateProfile() (err error) {
|
||||
params := &TestApiParams{ query: "/profile", tokenType: APP_TOKENAGENT, token: a.token }
|
||||
response := &TestApiResponse{ data: &a.profile }
|
||||
err = TestApiRequest(GetProfile, params, response)
|
||||
params := &TestAPIParams{ query: "/profile", tokenType: APP_TOKENAGENT, token: a.token }
|
||||
response := &TestAPIResponse{ data: &a.profile }
|
||||
err = TestAPIRequest(GetProfile, params, response)
|
||||
return
|
||||
}
|
||||
|
||||
func (a *TestApp) UpdateGroups() (err error) {
|
||||
var groups []Group
|
||||
if a.revision.Group == 0 {
|
||||
params := &TestApiParams{ query: "/groups", tokenType: APP_TOKENAGENT, token: a.token }
|
||||
response := &TestApiResponse{ data: &groups }
|
||||
if err = TestApiRequest(GetGroups, params, response); err != nil {
|
||||
params := &TestAPIParams{ query: "/groups", tokenType: APP_TOKENAGENT, token: a.token }
|
||||
response := &TestAPIResponse{ data: &groups }
|
||||
if err = TestAPIRequest(GetGroups, params, response); err != nil {
|
||||
return
|
||||
}
|
||||
} else {
|
||||
revision := strconv.FormatInt(a.revision.Group, 10)
|
||||
params := &TestApiParams{ query: "/groups?revision=" + revision, tokenType: APP_TOKENAGENT, token: a.token }
|
||||
response := &TestApiResponse{ data: &groups }
|
||||
if err = TestApiRequest(GetGroups, params, response); err != nil {
|
||||
params := &TestAPIParams{ query: "/groups?revision=" + revision, tokenType: APP_TOKENAGENT, token: a.token }
|
||||
response := &TestAPIResponse{ data: &groups }
|
||||
if err = TestAPIRequest(GetGroups, params, response); err != nil {
|
||||
return
|
||||
}
|
||||
}
|
||||
for _, group := range groups {
|
||||
if group.Data == nil {
|
||||
delete(a.groups, group.Id)
|
||||
delete(a.groups, group.ID)
|
||||
} else {
|
||||
a.groups[group.Id] = &group
|
||||
a.groups[group.ID] = &group
|
||||
}
|
||||
}
|
||||
return
|
||||
@ -428,24 +428,24 @@ func (a *TestApp) UpdateGroups() (err error) {
|
||||
func (a *TestApp) UpdateArticles() (err error) {
|
||||
var articles []Article
|
||||
if a.revision.Article == 0 {
|
||||
params := &TestApiParams{ query: "/articles", tokenType: APP_TOKENAGENT, token: a.token }
|
||||
response := &TestApiResponse{ data: &articles }
|
||||
if err = TestApiRequest(GetArticles, params, response); err != nil {
|
||||
params := &TestAPIParams{ query: "/articles", tokenType: APP_TOKENAGENT, token: a.token }
|
||||
response := &TestAPIResponse{ data: &articles }
|
||||
if err = TestAPIRequest(GetArticles, params, response); err != nil {
|
||||
return
|
||||
}
|
||||
} else {
|
||||
revision := strconv.FormatInt(a.revision.Article, 10)
|
||||
params := &TestApiParams{ query: "/articles?articleRevision=" + revision, tokenType: APP_TOKENAGENT, token: a.token }
|
||||
response := &TestApiResponse{ data: &articles }
|
||||
if err = TestApiRequest(GetArticles, params, response); err != nil {
|
||||
params := &TestAPIParams{ query: "/articles?articleRevision=" + revision, tokenType: APP_TOKENAGENT, token: a.token }
|
||||
response := &TestAPIResponse{ data: &articles }
|
||||
if err = TestAPIRequest(GetArticles, params, response); err != nil {
|
||||
return
|
||||
}
|
||||
}
|
||||
for _, article := range articles {
|
||||
if article.Data == nil {
|
||||
delete(a.articles, article.Id)
|
||||
delete(a.articles, article.ID)
|
||||
} else {
|
||||
a.articles[article.Id] = &article
|
||||
a.articles[article.ID] = &article
|
||||
}
|
||||
}
|
||||
return
|
||||
@ -454,25 +454,25 @@ func (a *TestApp) UpdateArticles() (err error) {
|
||||
func (a *TestApp) UpdateChannels() (err error) {
|
||||
var channels []Channel
|
||||
if a.revision.Channel == 0 {
|
||||
params := &TestApiParams{ query: "/channels", tokenType: APP_TOKENAGENT, token: a.token }
|
||||
response := &TestApiResponse{ data: &channels }
|
||||
if err = TestApiRequest(GetChannels, params, response); err != nil {
|
||||
params := &TestAPIParams{ query: "/channels", tokenType: APP_TOKENAGENT, token: a.token }
|
||||
response := &TestAPIResponse{ data: &channels }
|
||||
if err = TestAPIRequest(GetChannels, params, response); err != nil {
|
||||
return
|
||||
}
|
||||
} else {
|
||||
revision := strconv.FormatInt(a.revision.Channel, 10)
|
||||
params := &TestApiParams{ query: "/channels?channelRevision=" + revision, tokenType: APP_TOKENAGENT, token: a.token }
|
||||
response := &TestApiResponse{ data: &channels }
|
||||
if err = TestApiRequest(GetChannels, params, response); err != nil {
|
||||
params := &TestAPIParams{ query: "/channels?channelRevision=" + revision, tokenType: APP_TOKENAGENT, token: a.token }
|
||||
response := &TestAPIResponse{ data: &channels }
|
||||
if err = TestAPIRequest(GetChannels, params, response); err != nil {
|
||||
return
|
||||
}
|
||||
}
|
||||
|
||||
for _, channel := range channels {
|
||||
if channel.Data == nil {
|
||||
delete(a.channels, channel.Id)
|
||||
delete(a.channels, channel.ID)
|
||||
} else {
|
||||
storeChannel, set := a.channels[channel.Id]
|
||||
storeChannel, set := a.channels[channel.ID]
|
||||
if set {
|
||||
if channel.Revision != storeChannel.channel.Revision {
|
||||
if err = a.UpdateChannel(storeChannel, &channel); err != nil {
|
||||
@ -481,8 +481,8 @@ func (a *TestApp) UpdateChannels() (err error) {
|
||||
storeChannel.channel.Revision = channel.Revision
|
||||
}
|
||||
} else {
|
||||
storeChannel := &TestChannel{ channel: Channel{ Id: channel.Id, Data: &ChannelData{} } }
|
||||
a.channels[channel.Id] = storeChannel
|
||||
storeChannel := &TestChannel{ channel: Channel{ ID: channel.ID, Data: &ChannelData{} } }
|
||||
a.channels[channel.ID] = storeChannel
|
||||
if err = a.UpdateChannel(storeChannel, &channel); err != nil {
|
||||
return
|
||||
}
|
||||
@ -505,11 +505,11 @@ func (a *TestApp) UpdateChannel(storeChannel *TestChannel, channel *Channel) (er
|
||||
storeChannel.channel.Data.ChannelDetail = channel.Data.ChannelDetail
|
||||
storeChannel.channel.Data.DetailRevision = channel.Data.DetailRevision
|
||||
} else if storeChannel.channel.Data.DetailRevision != channel.Data.DetailRevision {
|
||||
params := &TestApiParams{ query: "/channel/{channelId}", path: map[string]string{ "channelId": channel.Id },
|
||||
params := &TestAPIParams{ query: "/channel/{channelID}", path: map[string]string{ "channelID": channel.ID },
|
||||
tokenType: APP_TOKENAGENT, token: a.token }
|
||||
detail := &ChannelDetail{}
|
||||
response := &TestApiResponse{ data: &detail }
|
||||
if err = TestApiRequest(GetChannelDetail, params, response); err != nil {
|
||||
response := &TestAPIResponse{ data: &detail }
|
||||
if err = TestAPIRequest(GetChannelDetail, params, response); err != nil {
|
||||
return
|
||||
}
|
||||
if channel.Data == nil {
|
||||
@ -526,28 +526,28 @@ func (a *TestApp) UpdateChannel(storeChannel *TestChannel, channel *Channel) (er
|
||||
func (a *TestApp) UpdateChannelTopics(storeChannel *TestChannel) (err error) {
|
||||
var topics []Topic
|
||||
if storeChannel.channel.Revision == 0 {
|
||||
params := &TestApiParams{ query: "/channels/{channelId}/topics",
|
||||
path: map[string]string{ "channelId": storeChannel.channel.Id }, tokenType: APP_TOKENAGENT, token: a.token }
|
||||
response := &TestApiResponse{ data: &topics }
|
||||
if err = TestApiRequest(GetChannelTopics, params, response); err != nil {
|
||||
params := &TestAPIParams{ query: "/channels/{channelID}/topics",
|
||||
path: map[string]string{ "channelID": storeChannel.channel.ID }, tokenType: APP_TOKENAGENT, token: a.token }
|
||||
response := &TestAPIResponse{ data: &topics }
|
||||
if err = TestAPIRequest(GetChannelTopics, params, response); err != nil {
|
||||
return
|
||||
}
|
||||
storeChannel.topics = make(map[string]*TestTopic)
|
||||
} else {
|
||||
revision := strconv.FormatInt(storeChannel.channel.Revision, 10)
|
||||
params := &TestApiParams{ query: "/channels/{channelId}/topics?revision=" + revision,
|
||||
path: map[string]string{ "channelId": storeChannel.channel.Id }, tokenType: APP_TOKENAGENT, token: a.token }
|
||||
response := &TestApiResponse{ data: &topics }
|
||||
if err = TestApiRequest(GetChannelTopics, params, response); err != nil {
|
||||
params := &TestAPIParams{ query: "/channels/{channelID}/topics?revision=" + revision,
|
||||
path: map[string]string{ "channelID": storeChannel.channel.ID }, tokenType: APP_TOKENAGENT, token: a.token }
|
||||
response := &TestAPIResponse{ data: &topics }
|
||||
if err = TestAPIRequest(GetChannelTopics, params, response); err != nil {
|
||||
return
|
||||
}
|
||||
}
|
||||
|
||||
for _, topic := range topics {
|
||||
if topic.Data == nil {
|
||||
delete(storeChannel.topics, topic.Id)
|
||||
delete(storeChannel.topics, topic.ID)
|
||||
} else {
|
||||
storeTopic, set := storeChannel.topics[topic.Id]
|
||||
storeTopic, set := storeChannel.topics[topic.ID]
|
||||
if set {
|
||||
if topic.Revision != storeTopic.topic.Revision {
|
||||
if err = a.UpdateChannelTopic(storeChannel, storeTopic, &topic); err != nil {
|
||||
@ -556,8 +556,8 @@ func (a *TestApp) UpdateChannelTopics(storeChannel *TestChannel) (err error) {
|
||||
storeTopic.topic.Revision = topic.Revision
|
||||
}
|
||||
} else {
|
||||
storeTopic := &TestTopic{ topic: Topic{ Id: topic.Id, Data: &TopicData{} } }
|
||||
storeChannel.topics[topic.Id] = storeTopic
|
||||
storeTopic := &TestTopic{ topic: Topic{ ID: topic.ID, Data: &TopicData{} } }
|
||||
storeChannel.topics[topic.ID] = storeTopic
|
||||
if err = a.UpdateChannelTopic(storeChannel, storeTopic, &topic); err != nil {
|
||||
return
|
||||
}
|
||||
@ -580,12 +580,12 @@ func (a *TestApp) UpdateChannelTopic(storeChannel *TestChannel, storeTopic *Test
|
||||
storeTopic.topic.Data.TopicDetail = topic.Data.TopicDetail
|
||||
storeTopic.topic.Data.DetailRevision = topic.Data.DetailRevision
|
||||
} else if storeTopic.topic.Data.DetailRevision != topic.Data.DetailRevision {
|
||||
params := &TestApiParams{ query: "/channels/{channelId}/topics/{topicId}",
|
||||
path: map[string]string{ "channelId": storeChannel.channel.Id, "topicId": topic.Id },
|
||||
params := &TestAPIParams{ query: "/channels/{channelID}/topics/{topicID}",
|
||||
path: map[string]string{ "channelID": storeChannel.channel.ID, "topicID": topic.ID },
|
||||
tokenType: APP_TOKENAGENT, token: a.token }
|
||||
topic := Topic{}
|
||||
response := &TestApiResponse{ data: &topic }
|
||||
if err = TestApiRequest(GetChannelTopic, params, response); err != nil {
|
||||
response := &TestAPIResponse{ data: &topic }
|
||||
if err = TestAPIRequest(GetChannelTopic, params, response); err != nil {
|
||||
return
|
||||
}
|
||||
if topic.Data == nil {
|
||||
@ -602,30 +602,30 @@ func (a *TestApp) UpdateChannelTopic(storeChannel *TestChannel, storeTopic *Test
|
||||
func (a *TestApp) UpdateChannelTopicTags(storeChannel *TestChannel, storeTopic *TestTopic) (err error) {
|
||||
var tags []Tag
|
||||
if storeTopic.topic.Revision == 0 {
|
||||
params := &TestApiParams{ query: "/channels/{channelId}/topics/{topicId}/tags",
|
||||
path: map[string]string{ "channelId": storeChannel.channel.Id, "topicId": storeTopic.topic.Id },
|
||||
params := &TestAPIParams{ query: "/channels/{channelID}/topics/{topicID}/tags",
|
||||
path: map[string]string{ "channelID": storeChannel.channel.ID, "topicID": storeTopic.topic.ID },
|
||||
tokenType: APP_TOKENAGENT, token: a.token }
|
||||
response := &TestApiResponse{ data: &tags }
|
||||
if err = TestApiRequest(GetChannelTopicTags, params, response); err != nil {
|
||||
response := &TestAPIResponse{ data: &tags }
|
||||
if err = TestAPIRequest(GetChannelTopicTags, params, response); err != nil {
|
||||
return
|
||||
}
|
||||
storeTopic.tags = make(map[string]*Tag)
|
||||
} else {
|
||||
revision := strconv.FormatInt(storeTopic.topic.Revision, 10)
|
||||
params := &TestApiParams{ query: "/channels/{channelId}/topics/{topicId}/tags?revision=" + revision,
|
||||
path: map[string]string{ "channelId": storeChannel.channel.Id, "topicId": storeTopic.topic.Id },
|
||||
params := &TestAPIParams{ query: "/channels/{channelID}/topics/{topicID}/tags?revision=" + revision,
|
||||
path: map[string]string{ "channelID": storeChannel.channel.ID, "topicID": storeTopic.topic.ID },
|
||||
tokenType: APP_TOKENAGENT, token: a.token }
|
||||
response := &TestApiResponse{ data: &tags }
|
||||
if err = TestApiRequest(GetChannelTopicTags, params, response); err != nil {
|
||||
response := &TestAPIResponse{ data: &tags }
|
||||
if err = TestAPIRequest(GetChannelTopicTags, params, response); err != nil {
|
||||
return
|
||||
}
|
||||
}
|
||||
|
||||
for _, tag := range tags {
|
||||
if tag.Data == nil {
|
||||
delete(storeTopic.tags, tag.Id)
|
||||
delete(storeTopic.tags, tag.ID)
|
||||
} else {
|
||||
storeTopic.tags[tag.Id] = &tag
|
||||
storeTopic.tags[tag.ID] = &tag
|
||||
}
|
||||
}
|
||||
return
|
||||
@ -634,20 +634,20 @@ func (a *TestApp) UpdateChannelTopicTags(storeChannel *TestChannel, storeTopic *
|
||||
func (a *TestApp) UpdateCards() (err error) {
|
||||
var cards []Card
|
||||
if a.revision.Card == 0 {
|
||||
params := &TestApiParams{ query: "/cards", tokenType: APP_TOKENAGENT, token: a.token }
|
||||
response := &TestApiResponse{ data: &cards }
|
||||
if err = TestApiRequest(GetCards, params, response); err != nil {
|
||||
params := &TestAPIParams{ query: "/cards", tokenType: APP_TOKENAGENT, token: a.token }
|
||||
response := &TestAPIResponse{ data: &cards }
|
||||
if err = TestAPIRequest(GetCards, params, response); err != nil {
|
||||
return
|
||||
}
|
||||
for _, card := range cards {
|
||||
if card.Data == nil {
|
||||
delete(a.contacts, card.Id)
|
||||
delete(a.contacts, card.ID)
|
||||
} else {
|
||||
// set new card
|
||||
contactData := &TestContactData{ card: card, articles: make(map[string]*Article), channels: make(map[string]*TestChannel),
|
||||
cardDetailRevision: card.Data.DetailRevision, cardProfileRevision: card.Data.ProfileRevision,
|
||||
profileRevision: card.Data.ProfileRevision, token: a.token }
|
||||
a.contacts[card.Id] = contactData
|
||||
a.contacts[card.ID] = contactData
|
||||
if err = contactData.UpdateContact(); err != nil {
|
||||
contactData.offsync = true
|
||||
PrintMsg(err)
|
||||
@ -656,28 +656,28 @@ func (a *TestApp) UpdateCards() (err error) {
|
||||
}
|
||||
} else {
|
||||
revision := strconv.FormatInt(a.revision.Card, 10)
|
||||
params := &TestApiParams{ query: "/cards?revision=" + revision, tokenType: APP_TOKENAGENT, token: a.token }
|
||||
response := &TestApiResponse{ data: &cards }
|
||||
if err = TestApiRequest(GetCards, params, response); err != nil {
|
||||
params := &TestAPIParams{ query: "/cards?revision=" + revision, tokenType: APP_TOKENAGENT, token: a.token }
|
||||
response := &TestAPIResponse{ data: &cards }
|
||||
if err = TestAPIRequest(GetCards, params, response); err != nil {
|
||||
return
|
||||
}
|
||||
for _, card := range cards {
|
||||
if card.Data == nil {
|
||||
delete(a.contacts, card.Id)
|
||||
delete(a.contacts, card.ID)
|
||||
} else {
|
||||
contactData, set := a.contacts[card.Id]
|
||||
contactData, set := a.contacts[card.ID]
|
||||
if !set {
|
||||
// download new card
|
||||
params := &TestApiParams{ query: "/cards/{cardId}", path: map[string]string{ "cardId": card.Id },
|
||||
params := &TestAPIParams{ query: "/cards/{cardID}", path: map[string]string{ "cardID": card.ID },
|
||||
tokenType: APP_TOKENAGENT, token: a.token }
|
||||
response := &TestApiResponse{ data: &card }
|
||||
if err = TestApiRequest(GetCard, params, response); err != nil {
|
||||
response := &TestAPIResponse{ data: &card }
|
||||
if err = TestAPIRequest(GetCard, params, response); err != nil {
|
||||
return
|
||||
}
|
||||
contactData := &TestContactData{ card: card, articles: make(map[string]*Article), channels: make(map[string]*TestChannel),
|
||||
cardDetailRevision: card.Data.DetailRevision, cardProfileRevision: card.Data.ProfileRevision,
|
||||
profileRevision: card.Data.ProfileRevision, token: a.token }
|
||||
a.contacts[card.Id] = contactData
|
||||
a.contacts[card.ID] = contactData
|
||||
if err = contactData.UpdateContact(); err != nil {
|
||||
contactData.offsync = true
|
||||
PrintMsg(err)
|
||||
@ -825,7 +825,7 @@ func (a *TestApp) WaitFor(check func(*TestApp) bool) error {
|
||||
|
||||
/*** endpoint test function ***/
|
||||
|
||||
type TestApiParams struct {
|
||||
type TestAPIParams struct {
|
||||
restType string
|
||||
path map[string]string
|
||||
query string
|
||||
@ -836,13 +836,13 @@ type TestApiParams struct {
|
||||
credentials string
|
||||
}
|
||||
|
||||
type TestApiResponse struct {
|
||||
type TestAPIResponse struct {
|
||||
code int
|
||||
data interface{}
|
||||
header map[string][]string
|
||||
}
|
||||
|
||||
func TestApiRequest(endpoint func(http.ResponseWriter, *http.Request), params *TestApiParams, resp *TestApiResponse) (err error) {
|
||||
func TestAPIRequest(endpoint func(http.ResponseWriter, *http.Request), params *TestAPIParams, resp *TestAPIResponse) (err error) {
|
||||
|
||||
var r *http.Request
|
||||
var w *httptest.ResponseRecorder
|
||||
|
@ -20,14 +20,14 @@ const test_ReadDeadline = 2
|
||||
const test_RevisionWait = 100
|
||||
|
||||
type TestCard struct {
|
||||
Guid string
|
||||
GUID string
|
||||
Token string
|
||||
CardId string
|
||||
GroupId string
|
||||
CardID string
|
||||
GroupID string
|
||||
}
|
||||
|
||||
type TestContact struct {
|
||||
Guid string
|
||||
GUID string
|
||||
Token string
|
||||
Revisions chan *Revision
|
||||
A TestCard
|
||||
@ -55,7 +55,7 @@ func GetTestRevision(status chan *Revision) (rev *Revision) {
|
||||
}
|
||||
}
|
||||
|
||||
func ApiTestData(
|
||||
func APITestData(
|
||||
endpoint func(http.ResponseWriter, *http.Request),
|
||||
requestType string,
|
||||
name string,
|
||||
@ -112,7 +112,7 @@ func ApiTestData(
|
||||
return
|
||||
}
|
||||
|
||||
func ApiTestMsg(
|
||||
func APITestMsg(
|
||||
endpoint func(http.ResponseWriter, *http.Request),
|
||||
requestType string,
|
||||
name string,
|
||||
@ -173,7 +173,7 @@ func ApiTestMsg(
|
||||
return
|
||||
}
|
||||
|
||||
func ApiTestUpload(
|
||||
func APITestUpload(
|
||||
endpoint func(http.ResponseWriter, *http.Request),
|
||||
requestType string,
|
||||
name string,
|
||||
@ -260,110 +260,110 @@ func AddTestGroup(prefix string) (*TestGroup, error) {
|
||||
|
||||
// allocate contacts
|
||||
g := &TestGroup{}
|
||||
if g.A.Guid, g.A.Token, err = AddTestAccount(prefix+"A"); err != nil {
|
||||
if g.A.GUID, g.A.Token, err = AddTestAccount(prefix+"A"); err != nil {
|
||||
return g, err
|
||||
}
|
||||
if g.B.Guid, g.B.Token, err = AddTestAccount(prefix+"B"); err != nil {
|
||||
if g.B.GUID, g.B.Token, err = AddTestAccount(prefix+"B"); err != nil {
|
||||
return g, err
|
||||
}
|
||||
if g.C.Guid, g.C.Token, err = AddTestAccount(prefix+"C"); err != nil {
|
||||
if g.C.GUID, g.C.Token, err = AddTestAccount(prefix+"C"); err != nil {
|
||||
return g, err
|
||||
}
|
||||
if g.D.Guid, g.D.Token, err = AddTestAccount(prefix+"D"); err != nil {
|
||||
if g.D.GUID, g.D.Token, err = AddTestAccount(prefix+"D"); err != nil {
|
||||
return g, err
|
||||
}
|
||||
|
||||
// setup A
|
||||
if g.A.B.CardId, err = AddTestCard(g.A.Token, g.B.Token); err != nil {
|
||||
if g.A.B.CardID, err = AddTestCard(g.A.Token, g.B.Token); err != nil {
|
||||
return g, err
|
||||
}
|
||||
if err = OpenTestCard(g.A.Token, g.A.B.CardId); err != nil {
|
||||
if err = OpenTestCard(g.A.Token, g.A.B.CardID); err != nil {
|
||||
return g, err
|
||||
}
|
||||
if g.A.B.GroupId, err = GroupTestCard(g.A.Token, g.A.B.CardId); err != nil {
|
||||
if g.A.B.GroupID, err = GroupTestCard(g.A.Token, g.A.B.CardID); err != nil {
|
||||
return g, err
|
||||
}
|
||||
if g.A.C.CardId, err = AddTestCard(g.A.Token, g.C.Token); err != nil {
|
||||
if g.A.C.CardID, err = AddTestCard(g.A.Token, g.C.Token); err != nil {
|
||||
return g, err
|
||||
}
|
||||
if err = OpenTestCard(g.A.Token, g.A.C.CardId); err != nil {
|
||||
if err = OpenTestCard(g.A.Token, g.A.C.CardID); err != nil {
|
||||
return g, err
|
||||
}
|
||||
if g.A.C.GroupId, err = GroupTestCard(g.A.Token, g.A.C.CardId); err != nil {
|
||||
if g.A.C.GroupID, err = GroupTestCard(g.A.Token, g.A.C.CardID); err != nil {
|
||||
return g, err
|
||||
}
|
||||
if g.A.D.CardId, err = AddTestCard(g.A.Token, g.D.Token); err != nil {
|
||||
if g.A.D.CardID, err = AddTestCard(g.A.Token, g.D.Token); err != nil {
|
||||
return g, err
|
||||
}
|
||||
if err = OpenTestCard(g.A.Token, g.A.D.CardId); err != nil {
|
||||
if err = OpenTestCard(g.A.Token, g.A.D.CardID); err != nil {
|
||||
return g, err
|
||||
}
|
||||
|
||||
// setup B
|
||||
if g.B.A.CardId, err = AddTestCard(g.B.Token, g.A.Token); err != nil {
|
||||
if g.B.A.CardID, err = AddTestCard(g.B.Token, g.A.Token); err != nil {
|
||||
return g, err
|
||||
}
|
||||
if err = OpenTestCard(g.B.Token, g.B.A.CardId); err != nil {
|
||||
if err = OpenTestCard(g.B.Token, g.B.A.CardID); err != nil {
|
||||
return g, err
|
||||
}
|
||||
if g.B.A.GroupId, err = GroupTestCard(g.B.Token, g.B.A.CardId); err != nil {
|
||||
if g.B.A.GroupID, err = GroupTestCard(g.B.Token, g.B.A.CardID); err != nil {
|
||||
return g, err
|
||||
}
|
||||
if g.B.C.CardId, err = AddTestCard(g.B.Token, g.C.Token); err != nil {
|
||||
if g.B.C.CardID, err = AddTestCard(g.B.Token, g.C.Token); err != nil {
|
||||
return g, err
|
||||
}
|
||||
if g.B.C.GroupId, err = GroupTestCard(g.B.Token, g.B.C.CardId); err != nil {
|
||||
if g.B.C.GroupID, err = GroupTestCard(g.B.Token, g.B.C.CardID); err != nil {
|
||||
return g, err
|
||||
}
|
||||
|
||||
// setup C
|
||||
if g.C.D.CardId, err = AddTestCard(g.C.Token, g.D.Token); err != nil {
|
||||
if g.C.D.CardID, err = AddTestCard(g.C.Token, g.D.Token); err != nil {
|
||||
return g, err
|
||||
}
|
||||
if err = OpenTestCard(g.C.Token, g.C.D.CardId); err != nil {
|
||||
if err = OpenTestCard(g.C.Token, g.C.D.CardID); err != nil {
|
||||
return g, err
|
||||
}
|
||||
if g.C.D.GroupId, err = GroupTestCard(g.C.Token, g.C.D.CardId); err != nil {
|
||||
if g.C.D.GroupID, err = GroupTestCard(g.C.Token, g.C.D.CardID); err != nil {
|
||||
return g, err
|
||||
}
|
||||
if g.C.A.CardId, err = AddTestCard(g.C.Token, g.A.Token); err != nil {
|
||||
if g.C.A.CardID, err = AddTestCard(g.C.Token, g.A.Token); err != nil {
|
||||
return g, err
|
||||
}
|
||||
if err = OpenTestCard(g.C.Token, g.C.A.CardId); err != nil {
|
||||
if err = OpenTestCard(g.C.Token, g.C.A.CardID); err != nil {
|
||||
return g, err
|
||||
}
|
||||
if g.C.A.GroupId, err = GroupTestCard(g.C.Token, g.C.A.CardId); err != nil {
|
||||
if g.C.A.GroupID, err = GroupTestCard(g.C.Token, g.C.A.CardID); err != nil {
|
||||
return g, err
|
||||
}
|
||||
|
||||
// setup D
|
||||
if g.D.C.CardId, err = AddTestCard(g.D.Token, g.C.Token); err != nil {
|
||||
if g.D.C.CardID, err = AddTestCard(g.D.Token, g.C.Token); err != nil {
|
||||
return g, err
|
||||
}
|
||||
if err = OpenTestCard(g.D.Token, g.D.C.CardId); err != nil {
|
||||
if err = OpenTestCard(g.D.Token, g.D.C.CardID); err != nil {
|
||||
return g, err
|
||||
}
|
||||
if g.D.C.GroupId, err = GroupTestCard(g.D.Token, g.D.C.CardId); err != nil {
|
||||
if g.D.C.GroupID, err = GroupTestCard(g.D.Token, g.D.C.CardID); err != nil {
|
||||
return g, err
|
||||
}
|
||||
if g.D.A.CardId, err = GetCardId(g.D.Token, g.A.Guid); err != nil {
|
||||
if g.D.A.CardID, err = GetCardID(g.D.Token, g.A.GUID); err != nil {
|
||||
return g, err
|
||||
}
|
||||
|
||||
// get contact tokens
|
||||
if g.A.B.Token, err = GetCardToken(g.A.Token, g.A.B.CardId); err != nil {
|
||||
if g.A.B.Token, err = GetCardToken(g.A.Token, g.A.B.CardID); err != nil {
|
||||
return g, err
|
||||
}
|
||||
if g.B.A.Token, err = GetCardToken(g.B.Token, g.B.A.CardId); err != nil {
|
||||
if g.B.A.Token, err = GetCardToken(g.B.Token, g.B.A.CardID); err != nil {
|
||||
return g, err
|
||||
}
|
||||
if g.C.A.Token, err = GetCardToken(g.C.Token, g.C.A.CardId); err != nil {
|
||||
if g.C.A.Token, err = GetCardToken(g.C.Token, g.C.A.CardID); err != nil {
|
||||
return g, err
|
||||
}
|
||||
if g.C.D.Token, err = GetCardToken(g.C.Token, g.C.D.CardId); err != nil {
|
||||
if g.C.D.Token, err = GetCardToken(g.C.Token, g.C.D.CardID); err != nil {
|
||||
return g, err
|
||||
}
|
||||
if g.D.C.Token, err = GetCardToken(g.D.Token, g.D.C.CardId); err != nil {
|
||||
if g.D.C.Token, err = GetCardToken(g.D.Token, g.D.C.CardID); err != nil {
|
||||
return g, err
|
||||
}
|
||||
|
||||
@ -428,15 +428,15 @@ func MonitorStatus(ws *websocket.Conn, contact *TestContact) {
|
||||
}
|
||||
}
|
||||
|
||||
func GetCardToken(account string, cardId string) (token string, err error) {
|
||||
func GetCardToken(account string, cardID string) (token string, err error) {
|
||||
var r *http.Request
|
||||
var w *httptest.ResponseRecorder
|
||||
var cardDetail CardDetail
|
||||
var cardProfile CardProfile
|
||||
vars := make(map[string]string)
|
||||
vars["cardId"] = cardId
|
||||
vars["cardID"] = cardID
|
||||
|
||||
if r, w, err = NewRequest("GET", "/contact/cards/{cardId}/detail?agent=" + account, nil); err != nil {
|
||||
if r, w, err = NewRequest("GET", "/contact/cards/{cardID}/detail?agent=" + account, nil); err != nil {
|
||||
return
|
||||
}
|
||||
r = mux.SetURLVars(r, vars)
|
||||
@ -449,7 +449,7 @@ func GetCardToken(account string, cardId string) (token string, err error) {
|
||||
return
|
||||
}
|
||||
|
||||
if r, w, err = NewRequest("GET", "/contact/cards/{cardId}/profile?agent=" + account, nil); err != nil {
|
||||
if r, w, err = NewRequest("GET", "/contact/cards/{cardID}/profile?agent=" + account, nil); err != nil {
|
||||
return
|
||||
}
|
||||
r = mux.SetURLVars(r, vars)
|
||||
@ -458,11 +458,11 @@ func GetCardToken(account string, cardId string) (token string, err error) {
|
||||
return
|
||||
}
|
||||
|
||||
token = cardProfile.Guid + "." + cardDetail.Token
|
||||
token = cardProfile.GUID + "." + cardDetail.Token
|
||||
return
|
||||
}
|
||||
|
||||
func GetCardId(account string, guid string) (cardId string, err error) {
|
||||
func GetCardID(account string, guid string) (cardID string, err error) {
|
||||
var r *http.Request
|
||||
var w *httptest.ResponseRecorder
|
||||
var cards []Card
|
||||
@ -476,8 +476,8 @@ func GetCardId(account string, guid string) (cardId string, err error) {
|
||||
}
|
||||
|
||||
for _, card := range cards {
|
||||
if card.Data.CardProfile.Guid == guid {
|
||||
cardId = card.Id
|
||||
if card.Data.CardProfile.GUID == guid {
|
||||
cardID = card.ID
|
||||
return
|
||||
}
|
||||
}
|
||||
@ -485,7 +485,7 @@ func GetCardId(account string, guid string) (cardId string, err error) {
|
||||
return
|
||||
}
|
||||
|
||||
func GroupTestCard(account string, cardId string) (groupId string, err error) {
|
||||
func GroupTestCard(account string, cardID string) (groupID string, err error) {
|
||||
var r *http.Request
|
||||
var w *httptest.ResponseRecorder
|
||||
var subject *Subject
|
||||
@ -505,14 +505,14 @@ func GroupTestCard(account string, cardId string) (groupId string, err error) {
|
||||
if err = ReadResponse(w, &group); err != nil {
|
||||
return
|
||||
}
|
||||
groupId = group.Id
|
||||
groupID = group.ID
|
||||
|
||||
// set contact group
|
||||
if r, w, err = NewRequest("PUT", "/contact/cards/{cardId}/groups/{groupId}", nil); err != nil {
|
||||
if r, w, err = NewRequest("PUT", "/contact/cards/{cardID}/groups/{groupID}", nil); err != nil {
|
||||
return
|
||||
}
|
||||
vars["groupId"] = group.Id
|
||||
vars["cardId"] = cardId
|
||||
vars["groupID"] = group.ID
|
||||
vars["cardID"] = cardID
|
||||
r = mux.SetURLVars(r, vars)
|
||||
SetBearerAuth(r, account)
|
||||
SetCardGroup(w, r)
|
||||
@ -522,16 +522,16 @@ func GroupTestCard(account string, cardId string) (groupId string, err error) {
|
||||
return
|
||||
}
|
||||
|
||||
func OpenTestCard(account string, cardId string) (err error) {
|
||||
func OpenTestCard(account string, cardID string) (err error) {
|
||||
var r *http.Request
|
||||
var w *httptest.ResponseRecorder
|
||||
var msg DataMessage
|
||||
var card Card
|
||||
var vars = map[string]string{ "cardId": cardId }
|
||||
var vars = map[string]string{ "cardID": cardID }
|
||||
var contactStatus ContactStatus
|
||||
|
||||
// set to connecting state
|
||||
if r, w, err = NewRequest("PUT", "/contact/cards/{cardId}/status?agent=" + account, APP_CARDCONNECTING); err != nil {
|
||||
if r, w, err = NewRequest("PUT", "/contact/cards/{cardID}/status?agent=" + account, APP_CARDCONNECTING); err != nil {
|
||||
return
|
||||
}
|
||||
r = mux.SetURLVars(r, vars)
|
||||
@ -541,7 +541,7 @@ func OpenTestCard(account string, cardId string) (err error) {
|
||||
}
|
||||
|
||||
// get open message
|
||||
if r, w, err = NewRequest("GET", "/contact/cards/{cardId}/openMessage?agent=" + account, nil); err != nil {
|
||||
if r, w, err = NewRequest("GET", "/contact/cards/{cardID}/openMessage?agent=" + account, nil); err != nil {
|
||||
return
|
||||
}
|
||||
r = mux.SetURLVars(r, vars)
|
||||
@ -565,7 +565,7 @@ func OpenTestCard(account string, cardId string) (err error) {
|
||||
article := "articleRevision=" + strconv.FormatInt(contactStatus.ArticleRevision, 10)
|
||||
channel := "channelRevision=" + strconv.FormatInt(contactStatus.ChannelRevision, 10)
|
||||
profile := "profileRevision=" + strconv.FormatInt(contactStatus.ProfileRevision, 10)
|
||||
if r, w, err = NewRequest("PUT", "/contact/cards/{cardId}/status?agent=" + account + "&token=" + contactStatus.Token + "&" + view + "&" + article + "&" + channel + "&" + profile, APP_CARDCONNECTED); err != nil {
|
||||
if r, w, err = NewRequest("PUT", "/contact/cards/{cardID}/status?agent=" + account + "&token=" + contactStatus.Token + "&" + view + "&" + article + "&" + channel + "&" + profile, APP_CARDCONNECTED); err != nil {
|
||||
return
|
||||
}
|
||||
r = mux.SetURLVars(r, vars)
|
||||
@ -577,7 +577,7 @@ func OpenTestCard(account string, cardId string) (err error) {
|
||||
return
|
||||
}
|
||||
|
||||
func AddTestCard(account string, contact string) (cardId string, err error) {
|
||||
func AddTestCard(account string, contact string) (cardID string, err error) {
|
||||
var r *http.Request
|
||||
var w *httptest.ResponseRecorder
|
||||
var msg DataMessage
|
||||
@ -600,7 +600,7 @@ func AddTestCard(account string, contact string) (cardId string, err error) {
|
||||
if err = ReadResponse(w, &card); err != nil {
|
||||
return
|
||||
}
|
||||
cardId = card.Id
|
||||
cardID = card.ID
|
||||
return
|
||||
}
|
||||
|
||||
@ -638,7 +638,7 @@ func AddTestAccount(username string) (guid string, token string, err error) {
|
||||
if err = ReadResponse(w, &profile); err != nil {
|
||||
return
|
||||
}
|
||||
guid = profile.Guid
|
||||
guid = profile.GUID
|
||||
|
||||
// acquire new token for attaching app
|
||||
if r, w, err = NewRequest("POST", "/account/apps", &app); err != nil {
|
||||
|
@ -98,8 +98,8 @@ func transcodeAsset(asset *store.Asset) {
|
||||
ErrMsg(err)
|
||||
}
|
||||
} else {
|
||||
input := data + "/" + asset.Account.Guid + "/" + asset.TransformId
|
||||
output := data + "/" + asset.Account.Guid + "/" + asset.AssetId
|
||||
input := data + "/" + asset.Account.GUID + "/" + asset.TransformID
|
||||
output := data + "/" + asset.Account.GUID + "/" + asset.AssetID
|
||||
cmd := exec.Command(script + "/transform_" + asset.Transform + ".sh", input, output, asset.TransformParams)
|
||||
var stdout bytes.Buffer
|
||||
cmd.Stdout = &stdout
|
||||
@ -174,11 +174,11 @@ func UpdateAsset(asset *store.Asset, status string, crc uint32, size int64) (err
|
||||
// determine affected contact list
|
||||
cards := make(map[string]store.Card)
|
||||
for _, card := range topic.Channel.Cards {
|
||||
cards[card.Guid] = card
|
||||
cards[card.GUID] = card
|
||||
}
|
||||
for _, group := range topic.Channel.Groups {
|
||||
for _, card := range group.Cards {
|
||||
cards[card.Guid] = card
|
||||
cards[card.GUID] = card
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -9,8 +9,8 @@ import (
|
||||
)
|
||||
|
||||
func TestAccountConfig(t *testing.T) {
|
||||
var params *TestApiParams
|
||||
var response *TestApiResponse
|
||||
var params *TestAPIParams
|
||||
var response *TestAPIResponse
|
||||
var channel *Channel
|
||||
var topic *Topic
|
||||
var assets *[]Asset
|
||||
@ -31,55 +31,55 @@ func TestAccountConfig(t *testing.T) {
|
||||
|
||||
// get reset token
|
||||
var token string
|
||||
params = &TestApiParams{ query: "/account/auth", authorization: "accountconfigA:pass" }
|
||||
response = &TestApiResponse{ data: &token }
|
||||
assert.NoError(t, TestApiRequest(AddAccountAuthentication, params, response))
|
||||
params = &TestAPIParams{ query: "/account/auth", authorization: "accountconfigA:pass" }
|
||||
response = &TestAPIResponse{ data: &token }
|
||||
assert.NoError(t, TestAPIRequest(AddAccountAuthentication, params, response))
|
||||
|
||||
// set reset token
|
||||
params = &TestApiParams{ query: "/account/auth", tokenType: APP_TOKENRESET, token: token, credentials: "newguy:ssap" }
|
||||
assert.NoError(t, TestApiRequest(SetAccountAuthentication, params, nil))
|
||||
params = &TestAPIParams{ query: "/account/auth", tokenType: APP_TOKENRESET, token: token, credentials: "newguy:ssap" }
|
||||
assert.NoError(t, TestAPIRequest(SetAccountAuthentication, params, nil))
|
||||
|
||||
// fail getting reset token
|
||||
params = &TestApiParams{ query: "/account/auth", authorization: "accountconfigA:pass" }
|
||||
response = &TestApiResponse{ data: &token }
|
||||
assert.Error(t, TestApiRequest(AddAccountAuthentication, params, response))
|
||||
params = &TestAPIParams{ query: "/account/auth", authorization: "accountconfigA:pass" }
|
||||
response = &TestAPIResponse{ data: &token }
|
||||
assert.Error(t, TestAPIRequest(AddAccountAuthentication, params, response))
|
||||
|
||||
// create new channel
|
||||
channel = &Channel{}
|
||||
subject = &Subject{ Data: "channeldata", DataType: "channeldatatype" }
|
||||
params = &TestApiParams{ query: "/content/channels", tokenType: APP_TOKENAGENT, token: set.A.Token, body: subject }
|
||||
response = &TestApiResponse{ data: channel }
|
||||
assert.NoError(t, TestApiRequest(AddChannel, params, response))
|
||||
params = &TestAPIParams{ query: "/content/channels", tokenType: APP_TOKENAGENT, token: set.A.Token, body: subject }
|
||||
response = &TestAPIResponse{ data: channel }
|
||||
assert.NoError(t, TestAPIRequest(AddChannel, params, response))
|
||||
|
||||
// create new topic
|
||||
topic = &Topic{}
|
||||
subject = &Subject{ DataType: "topicdatatype", Data: "topicdata" }
|
||||
params = &TestApiParams{ query: "/content/channels/{channelId}/topics", tokenType: APP_TOKENAGENT, token: set.A.Token,
|
||||
path: map[string]string{ "channelId": channel.Id }, body: subject }
|
||||
response = &TestApiResponse{ data: topic }
|
||||
assert.NoError(t, TestApiRequest(AddChannelTopic, params, response))
|
||||
params = &TestAPIParams{ query: "/content/channels/{channelID}/topics", tokenType: APP_TOKENAGENT, token: set.A.Token,
|
||||
path: map[string]string{ "channelID": channel.ID }, body: subject }
|
||||
response = &TestAPIResponse{ data: topic }
|
||||
assert.NoError(t, TestAPIRequest(AddChannelTopic, params, response))
|
||||
|
||||
// add asset to topic
|
||||
assets = &[]Asset{}
|
||||
pathParams = &map[string]string{ "channelId": channel.Id, "topicId": topic.Id }
|
||||
pathParams = &map[string]string{ "channelID": channel.ID, "topicID": topic.ID }
|
||||
transforms, err := json.Marshal([]string{ "copy;photo", "copy;photo", })
|
||||
assert.NoError(t, err)
|
||||
assert.NoError(t, ApiTestUpload(AddChannelTopicAsset, "POST",
|
||||
"/content/channels/{channelId}/topics/{topicId}/assets?transforms=" + url.QueryEscape(string(transforms)),
|
||||
assert.NoError(t, APITestUpload(AddChannelTopicAsset, "POST",
|
||||
"/content/channels/{channelID}/topics/{topicID}/assets?transforms=" + url.QueryEscape(string(transforms)),
|
||||
pathParams, img, APP_TOKENAGENT, set.A.Token, assets, nil))
|
||||
|
||||
// update topic
|
||||
status := APP_TOPICCONFIRMED
|
||||
params = &TestApiParams{ query: "/content/channels/{channelId}/topics/{topicId}", tokenType: APP_TOKENAGENT, token: set.A.Token,
|
||||
path: map[string]string{ "channelId": channel.Id, "topicId": topic.Id }, body: &status }
|
||||
assert.NoError(t, TestApiRequest(SetChannelTopicConfirmed, params, nil))
|
||||
params = &TestAPIParams{ query: "/content/channels/{channelID}/topics/{topicID}", tokenType: APP_TOKENAGENT, token: set.A.Token,
|
||||
path: map[string]string{ "channelID": channel.ID, "topicID": topic.ID }, body: &status }
|
||||
assert.NoError(t, TestAPIRequest(SetChannelTopicConfirmed, params, nil))
|
||||
|
||||
// wait for assets
|
||||
assert.NoError(t, app.WaitFor(func(testApp *TestApp)bool {
|
||||
for _, testChannel := range testApp.channels {
|
||||
if testChannel.channel.Id == channel.Id {
|
||||
if testChannel.channel.ID == channel.ID {
|
||||
for _, testTopic := range testChannel.topics {
|
||||
if testTopic.topic.Id == topic.Id {
|
||||
if testTopic.topic.ID == topic.ID {
|
||||
detail := testTopic.topic.Data.TopicDetail
|
||||
if detail.Status == APP_TOPICCONFIRMED && detail.Transform == APP_TRANSFORMCOMPLETE {
|
||||
return true
|
||||
@ -94,35 +94,35 @@ func TestAccountConfig(t *testing.T) {
|
||||
|
||||
// set to searchable
|
||||
searchable := true
|
||||
params = &TestApiParams{ query: "/account/searchable", tokenType: APP_TOKENAGENT, token: set.A.Token, body: &searchable }
|
||||
assert.NoError(t, TestApiRequest(SetAccountSearchable, params, nil))
|
||||
params = &TestAPIParams{ query: "/account/searchable", tokenType: APP_TOKENAGENT, token: set.A.Token, body: &searchable }
|
||||
assert.NoError(t, TestAPIRequest(SetAccountSearchable, params, nil))
|
||||
|
||||
// get account status
|
||||
accountStatus := &AccountStatus{}
|
||||
params = &TestApiParams{ query: "/account/status", tokenType: APP_TOKENAGENT, token: set.A.Token }
|
||||
response = &TestApiResponse{ data: accountStatus }
|
||||
assert.NoError(t, TestApiRequest(GetAccountStatus, params, response))
|
||||
params = &TestAPIParams{ query: "/account/status", tokenType: APP_TOKENAGENT, token: set.A.Token }
|
||||
response = &TestAPIResponse{ data: accountStatus }
|
||||
assert.NoError(t, TestAPIRequest(GetAccountStatus, params, response))
|
||||
assert.True(t, accountStatus.Searchable)
|
||||
|
||||
// add asset to topic
|
||||
assets = &[]Asset{}
|
||||
pathParams = &map[string]string{ "channelId": channel.Id, "topicId": topic.Id }
|
||||
assert.Error(t, ApiTestUpload(AddChannelTopicAsset, "POST",
|
||||
"/content/channels/{channelId}/topics/{topicId}/assets?transforms=" + url.QueryEscape(string(transforms)),
|
||||
pathParams = &map[string]string{ "channelID": channel.ID, "topicID": topic.ID }
|
||||
assert.Error(t, APITestUpload(AddChannelTopicAsset, "POST",
|
||||
"/content/channels/{channelID}/topics/{topicID}/assets?transforms=" + url.QueryEscape(string(transforms)),
|
||||
pathParams, img, APP_TOKENAGENT, set.A.Token, assets, nil))
|
||||
|
||||
// get list of accounts
|
||||
profiles := []CardProfile{}
|
||||
params = &TestApiParams{ query: "/account/listing" }
|
||||
response = &TestApiResponse{ data: &profiles }
|
||||
assert.NoError(t, TestApiRequest(GetAccountListing, params, response))
|
||||
params = &TestAPIParams{ query: "/account/listing" }
|
||||
response = &TestAPIResponse{ data: &profiles }
|
||||
assert.NoError(t, TestAPIRequest(GetAccountListing, params, response))
|
||||
assert.Equal(t, 1, len(profiles))
|
||||
assert.Equal(t, set.A.Guid, profiles[0].Guid);
|
||||
assert.Equal(t, set.A.GUID, profiles[0].GUID);
|
||||
|
||||
PrintMsg(set.A.Guid)
|
||||
PrintMsg(set.A.GUID)
|
||||
|
||||
// delete account
|
||||
params = &TestApiParams{ query: "/account/profile", authorization: "newguy:ssap" }
|
||||
assert.NoError(t, TestApiRequest(RemoveAccount, params, nil))
|
||||
params = &TestAPIParams{ query: "/account/profile", authorization: "newguy:ssap" }
|
||||
assert.NoError(t, TestAPIRequest(RemoveAccount, params, nil))
|
||||
|
||||
}
|
||||
|
@ -34,33 +34,33 @@ func TestAttributeShare(t *testing.T) {
|
||||
|
||||
// get latest
|
||||
card = &Card{}
|
||||
param["cardId"] = set.B.A.CardId
|
||||
param["cardID"] = set.B.A.CardID
|
||||
bRev = GetTestRevision(set.B.Revisions)
|
||||
assert.NoError(t, ApiTestMsg(GetCard, "GET", "/contact/cards/{cardId}",
|
||||
assert.NoError(t, APITestMsg(GetCard, "GET", "/contact/cards/{cardID}",
|
||||
¶m, nil, APP_TOKENAGENT, set.B.Token, card, nil))
|
||||
bViewRevision = card.Data.NotifiedView
|
||||
bArticleRevision = card.Data.NotifiedArticle
|
||||
card = &Card{}
|
||||
param["cardId"] = set.C.A.CardId
|
||||
param["cardID"] = set.C.A.CardID
|
||||
cRev = GetTestRevision(set.C.Revisions)
|
||||
assert.NoError(t, ApiTestMsg(GetCard, "GET", "/contact/cards/{cardId}",
|
||||
assert.NoError(t, APITestMsg(GetCard, "GET", "/contact/cards/{cardID}",
|
||||
¶m, nil, APP_TOKENAGENT, set.C.Token, card, nil))
|
||||
bViewRevision = card.Data.NotifiedView
|
||||
bArticleRevision = card.Data.NotifiedArticle
|
||||
|
||||
// add a new attribute
|
||||
articles = &[]Article{}
|
||||
assert.NoError(t, ApiTestMsg(GetArticles, "GET", "/attribute/articles",
|
||||
assert.NoError(t, APITestMsg(GetArticles, "GET", "/attribute/articles",
|
||||
nil, nil, APP_TOKENAGENT, set.A.Token, articles, nil))
|
||||
assert.Equal(t, 0, len(*articles))
|
||||
article = &Article{}
|
||||
subject = &Subject{ Data: "subjectdata", DataType: "subjectdatatype" }
|
||||
assert.NoError(t, ApiTestMsg(AddArticle, "POST", "/attributes/articles",
|
||||
assert.NoError(t, APITestMsg(AddArticle, "POST", "/attributes/articles",
|
||||
nil, subject, APP_TOKENAGENT, set.A.Token, article, nil))
|
||||
assert.Equal(t, "subjectdata", article.Data.Data)
|
||||
assert.Equal(t, "subjectdatatype", article.Data.DataType)
|
||||
articles = &[]Article{}
|
||||
assert.NoError(t, ApiTestMsg(GetArticles, "GET", "/attribute/articles",
|
||||
assert.NoError(t, APITestMsg(GetArticles, "GET", "/attribute/articles",
|
||||
nil, nil, APP_TOKENAGENT, set.A.Token, articles, nil))
|
||||
assert.Equal(t, 1, len(*articles))
|
||||
|
||||
@ -69,10 +69,10 @@ func TestAttributeShare(t *testing.T) {
|
||||
assert.Nil(t, GetTestRevision(set.C.Revisions))
|
||||
|
||||
// share article with B
|
||||
param["articleId"] = article.Id
|
||||
param["groupId"] = set.A.B.GroupId
|
||||
param["articleID"] = article.ID
|
||||
param["groupID"] = set.A.B.GroupID
|
||||
article = &Article{}
|
||||
assert.NoError(t, ApiTestMsg(SetArticleGroup, "PUT", "/attribute/articles/{articleId}/groups/{groupId}",
|
||||
assert.NoError(t, APITestMsg(SetArticleGroup, "PUT", "/attribute/articles/{articleID}/groups/{groupID}",
|
||||
¶m, nil, APP_TOKENAGENT, set.A.Token, article, nil))
|
||||
|
||||
// validate B & C view
|
||||
@ -81,7 +81,7 @@ func TestAttributeShare(t *testing.T) {
|
||||
assert.NotEqual(t, bRev.Card, rev.Card)
|
||||
assert.Nil(t, GetTestRevision(set.C.Revisions))
|
||||
revision = strconv.FormatInt(bRev.Card, 10)
|
||||
assert.NoError(t, ApiTestMsg(GetCards, "GET", "/contact/cards?revision=" + revision,
|
||||
assert.NoError(t, APITestMsg(GetCards, "GET", "/contact/cards?revision=" + revision,
|
||||
nil, nil, APP_TOKENAGENT, set.B.Token, cards, nil))
|
||||
assert.Equal(t, 1, len(*cards))
|
||||
assert.NotEqual(t, bArticleRevision, (*cards)[0].Data.NotifiedArticle)
|
||||
@ -89,12 +89,12 @@ func TestAttributeShare(t *testing.T) {
|
||||
bRev = rev
|
||||
bArticleRevision = (*cards)[0].Data.NotifiedArticle
|
||||
articles = &[]Article{}
|
||||
assert.NoError(t, ApiTestMsg(GetArticles, "GET", "/attribute/articles",
|
||||
assert.NoError(t, APITestMsg(GetArticles, "GET", "/attribute/articles",
|
||||
nil, nil, APP_TOKENCONTACT, set.B.A.Token, articles, nil))
|
||||
assert.Equal(t, 1, len(*articles))
|
||||
assert.NotNil(t, (*articles)[0].Data)
|
||||
articles = &[]Article{}
|
||||
assert.NoError(t, ApiTestMsg(GetArticles, "GET", "/attribute/articles",
|
||||
assert.NoError(t, APITestMsg(GetArticles, "GET", "/attribute/articles",
|
||||
nil, nil, APP_TOKENCONTACT, set.C.A.Token, articles, nil))
|
||||
assert.Equal(t, 0, len(*articles))
|
||||
|
||||
@ -102,9 +102,9 @@ func TestAttributeShare(t *testing.T) {
|
||||
image := "iVBORw0KGgoAAAANSUhEUgAAAaQAAAGkCAIAAADxLsZiAAAFzElEQVR4nOzWUY3jMBhG0e0qSEqoaIqiaEIoGAxh3gZAldid3nMI+JOiXP3bGOMfwLf7v3oAwAxiBySIHZAgdkCC2AEJYgckiB2QIHZAgtgBCWIHJIgdkCB2QILYAQliBySIHZAgdkCC2AEJYgckiB2QIHZAgtgBCWIHJIgdkCB2QILYAQliBySIHZAgdkCC2AEJYgckiB2QIHZAgtgBCWIHJGzTXnrtx7S3pnk+7qsnnMk3+ny+0dtcdkCC2AEJYgckiB2QIHZAgtgBCWIHJIgdkCB2QILYAQliBySIHZAgdkCC2AEJYgckiB2QIHZAgtgBCWIHJIgdkCB2QILYAQliBySIHZAgdkCC2AEJYgckiB2QIHZAgtgBCWIHJIgdkCB2QILYAQliBySIHZAgdkCC2AEJYgckiB2QIHZAgtgBCWIHJIgdkCB2QILYAQliBySIHZAgdkCC2AEJYgckiB2QIHZAgtgBCWIHJIgdkCB2QILYAQliBySIHZAgdkCC2AEJYgckiB2QIHZAgtgBCWIHJIgdkCB2QILYAQnbtJeej/u0t+Bb+Y/e5rIDEsQOSBA7IEHsgASxAxLEDkgQOyBB7IAEsQMSxA5IEDsgQeyABLEDEsQOSBA7IEHsgASxAxLEDkgQOyBB7IAEsQMSxA5IEDsgQeyABLEDEsQOSBA7IEHsgASxAxLEDkgQOyBB7IAEsQMSxA5IEDsgQeyABLEDEsQOSBA7IEHsgASxAxLEDkgQOyBB7IAEsQMSxA5IEDsgQeyABLEDEsQOSBA7IEHsgASxAxLEDkgQOyBB7IAEsQMSxA5IEDsgQeyABLEDEsQOSBA7IEHsgASxAxLEDkgQOyBB7IAEsQMSbmOM1RsALueyAxLEDkgQOyBB7IAEsQMSxA5IEDsgQeyABLEDEsQOSBA7IEHsgASxAxLEDkgQOyBB7IAEsQMSxA5IEDsgQeyABLEDEsQOSBA7IEHsgASxAxLEDkgQOyBB7IAEsQMSxA5IEDsgQeyABLEDEsQOSBA7IEHsgASxAxLEDkgQOyBB7IAEsQMSxA5IEDsgQeyABLEDEsQOSBA7IEHsgASxAxLEDkgQOyBB7IAEsQMSxA5IEDsgQeyABLEDEsQOSBA7IEHsgASxAxLEDkgQOyBB7IAEsQMSxA5IEDsgQeyAhG31gD/stR+rJ5zv+bivnnAm34hfLjsgQeyABLEDEsQOSBA7IEHsgASxAxLEDkgQOyBB7IAEsQMSxA5IEDsgQeyABLEDEsQOSBA7IEHsgASxAxLEDkgQOyBB7IAEsQMSxA5IEDsgQeyABLEDEsQOSBA7IEHsgASxAxLEDkgQOyBB7IAEsQMSxA5IEDsgQeyABLEDEsQOSBA7IEHsgASxAxLEDkgQOyBB7IAEsQMSxA5IEDsgQeyABLEDEsQOSBA7IEHsgASxAxLEDkgQOyBB7IAEsQMSxA5IEDsgQeyABLEDEsQOSBA7IEHsgASxAxLEDkgQOyBhWz2Az/Laj9UT4BIuOyBB7IAEsQMSxA5IEDsgQeyABLEDEsQOSBA7IEHsgASxAxLEDkgQOyBB7IAEsQMSxA5IEDsgQeyABLEDEsQOSBA7IEHsgASxAxLEDkgQOyBB7IAEsQMSxA5IEDsgQeyABLEDEsQOSBA7IEHsgASxAxLEDkgQOyBB7IAEsQMSxA5IEDsgQeyABLEDEsQOSBA7IEHsgASxAxLEDkgQOyBB7IAEsQMSxA5IEDsgQeyABLEDEsQOSBA7IEHsgASxAxLEDkgQOyBB7IAEsQMSxA5IEDsgQeyABLEDEsQOSBA7IEHsgITbGGP1BoDLueyABLEDEsQOSBA7IEHsgASxAxLEDkgQOyBB7IAEsQMSxA5IEDsgQeyABLEDEsQOSBA7IEHsgASxAxLEDkgQOyBB7IAEsQMSxA5IEDsgQeyABLEDEsQOSBA7IEHsgASxAxLEDkgQOyBB7ICEnwAAAP//DQ4epwV6rzkAAAAASUVORK5CYII="
|
||||
data := "{ \"nested\" : { \"image\" : \"" + image + "\" } }"
|
||||
subject = &Subject{ Data: data, DataType: "nestedimage" }
|
||||
param["articleId"] = article.Id
|
||||
param["articleID"] = article.ID
|
||||
article = &Article{}
|
||||
assert.NoError(t, ApiTestMsg(SetArticleSubject, "PUT", "/attribute/articles/{articleId}/subject",
|
||||
assert.NoError(t, APITestMsg(SetArticleSubject, "PUT", "/attribute/articles/{articleID}/subject",
|
||||
¶m, subject, APP_TOKENAGENT, set.A.Token, article, nil))
|
||||
|
||||
// validate B & C view
|
||||
@ -113,7 +113,7 @@ func TestAttributeShare(t *testing.T) {
|
||||
assert.NotEqual(t, bRev.Card, rev.Card)
|
||||
assert.Nil(t, GetTestRevision(set.C.Revisions))
|
||||
revision = strconv.FormatInt(bRev.Card, 10)
|
||||
assert.NoError(t, ApiTestMsg(GetCards, "GET", "/contact/cards?revision=" + revision,
|
||||
assert.NoError(t, APITestMsg(GetCards, "GET", "/contact/cards?revision=" + revision,
|
||||
nil, nil, APP_TOKENAGENT, set.B.Token, cards, nil))
|
||||
assert.Equal(t, 1, len(*cards))
|
||||
assert.NotEqual(t, bArticleRevision, (*cards)[0].Data.NotifiedArticle)
|
||||
@ -122,7 +122,7 @@ func TestAttributeShare(t *testing.T) {
|
||||
rView = strconv.FormatInt(bViewRevision, 10)
|
||||
rArticle = strconv.FormatInt(bArticleRevision, 10)
|
||||
articles = &[]Article{}
|
||||
assert.NoError(t, ApiTestMsg(GetArticles, "GET", "/attribute/articles?viewRevision=" + rView + "&articleRevision=" + rArticle,
|
||||
assert.NoError(t, APITestMsg(GetArticles, "GET", "/attribute/articles?viewRevision=" + rView + "&articleRevision=" + rArticle,
|
||||
nil, nil, APP_TOKENCONTACT, set.B.A.Token, articles, nil))
|
||||
assert.Equal(t, 1, len(*articles))
|
||||
assert.Equal(t, "nestedimage", (*articles)[0].Data.DataType)
|
||||
@ -130,16 +130,16 @@ func TestAttributeShare(t *testing.T) {
|
||||
bViewRevision = (*cards)[0].Data.NotifiedView
|
||||
|
||||
// share article with C
|
||||
param["articleId"] = article.Id
|
||||
param["groupId"] = set.A.C.GroupId
|
||||
param["articleID"] = article.ID
|
||||
param["groupID"] = set.A.C.GroupID
|
||||
article = &Article{}
|
||||
assert.NoError(t, ApiTestMsg(SetArticleGroup, "PUT", "/attribute/articles/{articleId}/groups/{groupId}",
|
||||
assert.NoError(t, APITestMsg(SetArticleGroup, "PUT", "/attribute/articles/{articleID}/groups/{groupID}",
|
||||
¶m, nil, APP_TOKENAGENT, set.A.Token, article, nil))
|
||||
|
||||
// A retrieve image
|
||||
param["articleId"] = article.Id
|
||||
param["articleID"] = article.ID
|
||||
param["field"] = "nested.image"
|
||||
aData, aType, aErr := ApiTestData(GetArticleSubjectField, "GET", "/attributes/articles/{articleId}/subject/{field}",
|
||||
aData, aType, aErr := APITestData(GetArticleSubjectField, "GET", "/attributes/articles/{articleID}/subject/{field}",
|
||||
¶m, nil, APP_TOKENAGENT, set.A.Token, 0, 0)
|
||||
assert.NoError(t, aErr)
|
||||
assert.Equal(t, "image/png", aType["Content-Type"][0])
|
||||
@ -147,9 +147,9 @@ func TestAttributeShare(t *testing.T) {
|
||||
assert.Zero(t, bytes.Compare(img, aData))
|
||||
|
||||
// C retrieve image
|
||||
param["articleId"] = article.Id
|
||||
param["articleID"] = article.ID
|
||||
param["field"] = "nested.image"
|
||||
cData, cType, cErr := ApiTestData(GetArticleSubjectField, "GET", "/attributes/articles/{articleId}/subject/{field}",
|
||||
cData, cType, cErr := APITestData(GetArticleSubjectField, "GET", "/attributes/articles/{articleID}/subject/{field}",
|
||||
¶m, nil, APP_TOKENCONTACT, set.C.A.Token, 0, 0)
|
||||
assert.NoError(t, cErr)
|
||||
assert.Equal(t, "image/png", cType["Content-Type"][0])
|
||||
@ -162,12 +162,12 @@ func TestAttributeShare(t *testing.T) {
|
||||
assert.NotEqual(t, cRev.Card, rev.Card)
|
||||
assert.Nil(t, GetTestRevision(set.B.Revisions))
|
||||
revision = strconv.FormatInt(cRev.Card, 10)
|
||||
assert.NoError(t, ApiTestMsg(GetCards, "GET", "/contact/cards?revision=" + revision,
|
||||
assert.NoError(t, APITestMsg(GetCards, "GET", "/contact/cards?revision=" + revision,
|
||||
nil, nil, APP_TOKENAGENT, set.C.Token, cards, nil))
|
||||
assert.Equal(t, 1, len(*cards))
|
||||
cRev = rev
|
||||
articles = &[]Article{}
|
||||
assert.NoError(t, ApiTestMsg(GetArticles, "GET", "/attribute/articles",
|
||||
assert.NoError(t, APITestMsg(GetArticles, "GET", "/attribute/articles",
|
||||
nil, nil, APP_TOKENCONTACT, set.C.A.Token, articles, &hdr))
|
||||
assert.Equal(t, 1, len(*articles))
|
||||
assert.Equal(t, "nestedimage", (*articles)[0].Data.DataType)
|
||||
@ -175,10 +175,10 @@ func TestAttributeShare(t *testing.T) {
|
||||
cViewRevision, _ = strconv.ParseInt(hdr["View-Revision"][0], 10, 64)
|
||||
|
||||
// unshare article with B
|
||||
param["articleId"] = article.Id
|
||||
param["groupId"] = set.A.B.GroupId
|
||||
param["articleID"] = article.ID
|
||||
param["groupID"] = set.A.B.GroupID
|
||||
article = &Article{}
|
||||
assert.NoError(t, ApiTestMsg(ClearArticleGroup, "DELETE", "/attribute/articles/{articleId}/groups/{groupId}",
|
||||
assert.NoError(t, APITestMsg(ClearArticleGroup, "DELETE", "/attribute/articles/{articleID}/groups/{groupID}",
|
||||
¶m, nil, APP_TOKENAGENT, set.A.Token, article, nil))
|
||||
|
||||
// validate B & C view
|
||||
@ -187,7 +187,7 @@ func TestAttributeShare(t *testing.T) {
|
||||
assert.NotEqual(t, bRev.Card, rev.Card)
|
||||
assert.Nil(t, GetTestRevision(set.C.Revisions))
|
||||
revision = strconv.FormatInt(bRev.Card, 10)
|
||||
assert.NoError(t, ApiTestMsg(GetCards, "GET", "/contact/cards?revision=" + revision,
|
||||
assert.NoError(t, APITestMsg(GetCards, "GET", "/contact/cards?revision=" + revision,
|
||||
nil, nil, APP_TOKENAGENT, set.B.Token, cards, nil))
|
||||
assert.Equal(t, 1, len(*cards))
|
||||
assert.NotEqual(t, bArticleRevision, (*cards)[0].Data.NotifiedArticle)
|
||||
@ -196,20 +196,20 @@ func TestAttributeShare(t *testing.T) {
|
||||
rView = strconv.FormatInt(bViewRevision, 10)
|
||||
rArticle = strconv.FormatInt(bArticleRevision, 10)
|
||||
articles = &[]Article{}
|
||||
assert.NoError(t, ApiTestMsg(GetArticles, "GET", "/attribute/articles?viewRevision=" + rView + "&articleRevision=" + rArticle,
|
||||
assert.NoError(t, APITestMsg(GetArticles, "GET", "/attribute/articles?viewRevision=" + rView + "&articleRevision=" + rArticle,
|
||||
nil, nil, APP_TOKENCONTACT, set.B.A.Token, articles, nil))
|
||||
assert.Equal(t, 1, len(*articles))
|
||||
assert.Nil(t, (*articles)[0].Data)
|
||||
card = &Card{}
|
||||
param["cardId"] = set.C.A.CardId
|
||||
param["cardID"] = set.C.A.CardID
|
||||
GetTestRevision(set.B.Revisions)
|
||||
|
||||
// delete article
|
||||
param["articleId"] = article.Id
|
||||
assert.NoError(t, ApiTestMsg(RemoveArticle, "DELETE", "/attribute/articles/{articleId}",
|
||||
param["articleID"] = article.ID
|
||||
assert.NoError(t, APITestMsg(RemoveArticle, "DELETE", "/attribute/articles/{articleID}",
|
||||
¶m, nil, APP_TOKENAGENT, set.A.Token, nil, nil))
|
||||
articles = &[]Article{}
|
||||
assert.NoError(t, ApiTestMsg(GetArticles, "GET", "/attribute/articles",
|
||||
assert.NoError(t, APITestMsg(GetArticles, "GET", "/attribute/articles",
|
||||
nil, nil, APP_TOKENAGENT, set.A.Token, articles, nil))
|
||||
assert.Equal(t, 0, len(*articles))
|
||||
|
||||
@ -219,13 +219,13 @@ func TestAttributeShare(t *testing.T) {
|
||||
assert.NotEqual(t, cRev.Card, rev.Card)
|
||||
assert.Nil(t, GetTestRevision(set.B.Revisions))
|
||||
revision = strconv.FormatInt(cRev.Card, 10)
|
||||
assert.NoError(t, ApiTestMsg(GetCards, "GET", "/contact/cards?revision=" + revision,
|
||||
assert.NoError(t, APITestMsg(GetCards, "GET", "/contact/cards?revision=" + revision,
|
||||
nil, nil, APP_TOKENAGENT, set.C.Token, cards, nil))
|
||||
assert.Equal(t, 1, len(*cards))
|
||||
rView = strconv.FormatInt(cViewRevision, 10)
|
||||
rArticle = strconv.FormatInt(cArticleRevision, 10)
|
||||
articles = &[]Article{}
|
||||
assert.NoError(t, ApiTestMsg(GetArticles, "GET", "/attribute/articles?viewRevision=" + rView + "&articleRevision=" + rArticle,
|
||||
assert.NoError(t, APITestMsg(GetArticles, "GET", "/attribute/articles?viewRevision=" + rView + "&articleRevision=" + rArticle,
|
||||
nil, nil, APP_TOKENCONTACT, set.C.A.Token, articles, nil))
|
||||
assert.Equal(t, 1, len(*articles))
|
||||
assert.Nil(t, (*articles)[0].Data)
|
||||
@ -234,38 +234,38 @@ func TestAttributeShare(t *testing.T) {
|
||||
rView = strconv.FormatInt(cViewRevision - 1, 10)
|
||||
rArticle = strconv.FormatInt(cArticleRevision - 1, 10)
|
||||
articles = &[]Article{}
|
||||
assert.Error(t, ApiTestMsg(GetArticles, "GET", "/attribute/articles?viewRevision=" + rView + "&articleRevision=" + rArticle,
|
||||
assert.Error(t, APITestMsg(GetArticles, "GET", "/attribute/articles?viewRevision=" + rView + "&articleRevision=" + rArticle,
|
||||
nil, nil, APP_TOKENCONTACT, set.C.A.Token, articles, &hdr))
|
||||
|
||||
// reset B's view
|
||||
articles = &[]Article{}
|
||||
assert.NoError(t, ApiTestMsg(GetArticles, "GET", "/attribute/articles",
|
||||
assert.NoError(t, APITestMsg(GetArticles, "GET", "/attribute/articles",
|
||||
nil, nil, APP_TOKENCONTACT, set.B.A.Token, articles, &hdr))
|
||||
bArticleRevision, _ = strconv.ParseInt(hdr["Article-Revision"][0], 10, 64)
|
||||
bViewRevision, _ = strconv.ParseInt(hdr["View-Revision"][0], 10, 64)
|
||||
|
||||
// add a new attribute
|
||||
articles = &[]Article{}
|
||||
assert.NoError(t, ApiTestMsg(GetArticles, "GET", "/attribute/articles",
|
||||
assert.NoError(t, APITestMsg(GetArticles, "GET", "/attribute/articles",
|
||||
nil, nil, APP_TOKENAGENT, set.A.Token, articles, nil))
|
||||
assert.Equal(t, 0, len(*articles))
|
||||
article = &Article{}
|
||||
subject = &Subject{ Data: "subjectdata", DataType: "subjectdatatype" }
|
||||
assert.NoError(t, ApiTestMsg(AddArticle, "POST", "/attributes/articles",
|
||||
assert.NoError(t, APITestMsg(AddArticle, "POST", "/attributes/articles",
|
||||
nil, subject, APP_TOKENAGENT, set.A.Token, article, nil))
|
||||
assert.Equal(t, "subjectdata", article.Data.Data)
|
||||
assert.Equal(t, "subjectdatatype", article.Data.DataType)
|
||||
articles = &[]Article{}
|
||||
|
||||
// share article with B
|
||||
param["articleId"] = article.Id
|
||||
param["groupId"] = set.A.B.GroupId
|
||||
param["articleID"] = article.ID
|
||||
param["groupID"] = set.A.B.GroupID
|
||||
article = &Article{}
|
||||
assert.NoError(t, ApiTestMsg(SetArticleGroup, "PUT", "/attribute/articles/{articleId}/groups/{groupId}",
|
||||
assert.NoError(t, APITestMsg(SetArticleGroup, "PUT", "/attribute/articles/{articleID}/groups/{groupID}",
|
||||
¶m, nil, APP_TOKENAGENT, set.A.Token, article, nil))
|
||||
rView = strconv.FormatInt(bViewRevision, 10)
|
||||
rArticle = strconv.FormatInt(bArticleRevision, 10)
|
||||
assert.NoError(t, ApiTestMsg(GetArticles, "GET", "/attribute/articles?viewRevision=" + rView + "&articleRevision=" + rArticle,
|
||||
assert.NoError(t, APITestMsg(GetArticles, "GET", "/attribute/articles?viewRevision=" + rView + "&articleRevision=" + rArticle,
|
||||
nil, nil, APP_TOKENCONTACT, set.B.A.Token, articles, &hdr))
|
||||
assert.Equal(t, 1, len(*articles))
|
||||
assert.NotNil(t, (*articles)[0].Data)
|
||||
@ -273,12 +273,12 @@ func TestAttributeShare(t *testing.T) {
|
||||
bViewRevision, _ = strconv.ParseInt(hdr["View-Revision"][0], 10, 64)
|
||||
|
||||
// delete B's group
|
||||
assert.NoError(t, ApiTestMsg(RemoveGroup, "DELETE", "/alias/groups/{groupId}",
|
||||
assert.NoError(t, APITestMsg(RemoveGroup, "DELETE", "/alias/groups/{groupID}",
|
||||
¶m, nil, APP_TOKENAGENT, set.A.Token, nil, nil))
|
||||
assert.Error(t, ApiTestMsg(GetArticles, "GET", "/attribute/articles?viewRevision=" + rView + "&articleRevision=" + rArticle,
|
||||
assert.Error(t, APITestMsg(GetArticles, "GET", "/attribute/articles?viewRevision=" + rView + "&articleRevision=" + rArticle,
|
||||
nil, nil, APP_TOKENCONTACT, set.B.A.Token, articles, &hdr))
|
||||
articles = &[]Article{}
|
||||
assert.NoError(t, ApiTestMsg(GetArticles, "GET", "/attribute/articles",
|
||||
assert.NoError(t, APITestMsg(GetArticles, "GET", "/attribute/articles",
|
||||
nil, nil, APP_TOKENCONTACT, set.B.A.Token, articles, &hdr))
|
||||
view, _ := strconv.ParseInt(hdr["View-Revision"][0], 10, 64)
|
||||
assert.NotEqual(t, bViewRevision, view)
|
||||
|
@ -33,59 +33,59 @@ func TestChannelShare(t *testing.T) {
|
||||
// add new channel
|
||||
channel = &Channel{}
|
||||
subject = &Subject{ Data: "channeldata", DataType: "channeldatatype" }
|
||||
assert.NoError(t, ApiTestMsg(AddChannel, "POST", "/content/channels",
|
||||
assert.NoError(t, APITestMsg(AddChannel, "POST", "/content/channels",
|
||||
nil, subject, APP_TOKENAGENT, set.A.Token, channel, nil))
|
||||
|
||||
// retrieve channels
|
||||
channels = &[]Channel{}
|
||||
assert.NoError(t, ApiTestMsg(GetChannels, "GET", "/content/channels",
|
||||
assert.NoError(t, APITestMsg(GetChannels, "GET", "/content/channels",
|
||||
nil, nil, APP_TOKENAGENT, set.A.Token, channels, &aRevision))
|
||||
assert.Equal(t, 1, len(*channels))
|
||||
assert.NotNil(t, (*channels)[0].Data)
|
||||
detailRevision = (*channels)[0].Data.DetailRevision
|
||||
channels = &[]Channel{}
|
||||
assert.NoError(t, ApiTestMsg(GetChannels, "GET", "/content/channels",
|
||||
assert.NoError(t, APITestMsg(GetChannels, "GET", "/content/channels",
|
||||
nil, nil, APP_TOKENCONTACT, set.B.A.Token, channels, &bChannelRevision))
|
||||
assert.Equal(t, 0, len(*channels))
|
||||
channels = &[]Channel{}
|
||||
assert.NoError(t, ApiTestMsg(GetChannels, "GET", "/content/channels",
|
||||
assert.NoError(t, APITestMsg(GetChannels, "GET", "/content/channels",
|
||||
nil, nil, APP_TOKENCONTACT, set.C.A.Token, channels, &cChannelRevision))
|
||||
assert.Equal(t, 0, len(*channels))
|
||||
|
||||
// assign channel to B
|
||||
params["channelId"] = channel.Id
|
||||
params["cardId"] = set.A.B.CardId
|
||||
assert.NoError(t, ApiTestMsg(SetChannelCard, "PUT", "/content/channels/{channelId}/cards/{cardId}",
|
||||
params["channelID"] = channel.ID
|
||||
params["cardID"] = set.A.B.CardID
|
||||
assert.NoError(t, APITestMsg(SetChannelCard, "PUT", "/content/channels/{channelID}/cards/{cardID}",
|
||||
¶ms, nil, APP_TOKENAGENT, set.A.Token, nil, nil))
|
||||
|
||||
// check shared channel
|
||||
channels = &[]Channel{}
|
||||
revision = "?channelRevision=" + aRevision["Channel-Revision"][0]
|
||||
assert.NoError(t, ApiTestMsg(GetChannels, "GET", "/content/channels" + revision,
|
||||
assert.NoError(t, APITestMsg(GetChannels, "GET", "/content/channels" + revision,
|
||||
nil, nil, APP_TOKENAGENT, set.A.Token, channels, &aRevision))
|
||||
assert.Equal(t, 1, len(*channels))
|
||||
assert.NotNil(t, (*channels)[0].Data)
|
||||
assert.NotEqual(t, detailRevision, (*channels)[0].Data.DetailRevision)
|
||||
channels = &[]Channel{}
|
||||
revision = "?channelRevision=" + bChannelRevision["Channel-Revision"][0] + "&viewRevision=" + bChannelRevision["View-Revision"][0]
|
||||
assert.NoError(t, ApiTestMsg(GetChannels, "GET", "/content/channels" + revision,
|
||||
assert.NoError(t, APITestMsg(GetChannels, "GET", "/content/channels" + revision,
|
||||
nil, nil, APP_TOKENCONTACT, set.B.A.Token, channels, &bChannelRevision))
|
||||
assert.Equal(t, 1, len(*channels))
|
||||
assert.NotNil(t, (*channels)[0].Data)
|
||||
channels = &[]Channel{}
|
||||
revision = "?channelRevision=" + cChannelRevision["Channel-Revision"][0] + "&viewRevision=" + cChannelRevision["View-Revision"][0]
|
||||
assert.NoError(t, ApiTestMsg(GetChannels, "GET", "/content/channels" + revision,
|
||||
assert.NoError(t, APITestMsg(GetChannels, "GET", "/content/channels" + revision,
|
||||
nil, nil, APP_TOKENCONTACT, set.C.A.Token, channels, &cChannelRevision))
|
||||
assert.Equal(t, 1, len(*channels))
|
||||
assert.Nil(t, (*channels)[0].Data)
|
||||
|
||||
// get discovered channel
|
||||
detail = &ChannelDetail{}
|
||||
assert.NoError(t, ApiTestMsg(GetChannelDetail, "GET", "/content/channels/{channelId}/detail",
|
||||
assert.NoError(t, APITestMsg(GetChannelDetail, "GET", "/content/channels/{channelID}/detail",
|
||||
¶ms, nil, APP_TOKENCONTACT, set.B.A.Token, detail, nil))
|
||||
assert.Equal(t, "channeldatatype", detail.DataType)
|
||||
assert.Equal(t, 1, len(detail.Members))
|
||||
assert.Equal(t, set.B.Guid, detail.Members[0])
|
||||
assert.Equal(t, set.B.GUID, detail.Members[0])
|
||||
assert.Nil(t, detail.Contacts)
|
||||
|
||||
// get revision
|
||||
@ -93,22 +93,22 @@ func TestChannelShare(t *testing.T) {
|
||||
bRev = GetTestRevision(set.B.Revisions)
|
||||
cRev = GetTestRevision(set.C.Revisions)
|
||||
cards = &[]Card{}
|
||||
assert.NoError(t, ApiTestMsg(GetCards, "GET", "/contact/cards",
|
||||
assert.NoError(t, APITestMsg(GetCards, "GET", "/contact/cards",
|
||||
nil, nil, APP_TOKENAGENT, set.B.Token, cards, &bCardRevision))
|
||||
channels = &[]Channel{}
|
||||
assert.NoError(t, ApiTestMsg(GetChannels, "GET", "/content/channels",
|
||||
assert.NoError(t, APITestMsg(GetChannels, "GET", "/content/channels",
|
||||
nil, nil, APP_TOKENCONTACT, set.B.A.Token, channels, &bChannelRevision))
|
||||
cards = &[]Card{}
|
||||
assert.NoError(t, ApiTestMsg(GetCards, "GET", "/contact/cards",
|
||||
assert.NoError(t, APITestMsg(GetCards, "GET", "/contact/cards",
|
||||
nil, nil, APP_TOKENAGENT, set.C.Token, cards, &cCardRevision))
|
||||
channels = &[]Channel{}
|
||||
assert.NoError(t, ApiTestMsg(GetChannels, "GET", "/content/channels",
|
||||
assert.NoError(t, APITestMsg(GetChannels, "GET", "/content/channels",
|
||||
nil, nil, APP_TOKENCONTACT, set.C.A.Token, channels, &cChannelRevision))
|
||||
|
||||
// assign channel to C
|
||||
params["channelId"] = channel.Id
|
||||
params["cardId"] = set.A.C.CardId
|
||||
assert.NoError(t, ApiTestMsg(SetChannelCard, "PUT", "/content/channels/{channelId}/cards/{cardId}",
|
||||
params["channelID"] = channel.ID
|
||||
params["cardID"] = set.A.C.CardID
|
||||
assert.NoError(t, APITestMsg(SetChannelCard, "PUT", "/content/channels/{channelID}/cards/{cardID}",
|
||||
¶ms, nil, APP_TOKENAGENT, set.A.Token, nil, nil))
|
||||
|
||||
// check revision change
|
||||
@ -118,7 +118,7 @@ func TestChannelShare(t *testing.T) {
|
||||
rev = GetTestRevision(set.B.Revisions)
|
||||
assert.NotEqual(t, rev.Card, bRev.Card)
|
||||
cards = &[]Card{}
|
||||
assert.NoError(t, ApiTestMsg(GetCards, "GET", "/contact/cards?revision=" + bCardRevision["Card-Revision"][0],
|
||||
assert.NoError(t, APITestMsg(GetCards, "GET", "/contact/cards?revision=" + bCardRevision["Card-Revision"][0],
|
||||
nil, nil, APP_TOKENAGENT, set.B.Token, cards, &bCardRevision))
|
||||
assert.Equal(t, 1, len(*cards))
|
||||
r, _ = strconv.ParseInt(bChannelRevision["Channel-Revision"][0], 10, 64)
|
||||
@ -130,7 +130,7 @@ func TestChannelShare(t *testing.T) {
|
||||
rev = GetTestRevision(set.C.Revisions)
|
||||
assert.NotEqual(t, rev.Card, cRev.Card)
|
||||
cards = &[]Card{}
|
||||
assert.NoError(t, ApiTestMsg(GetCards, "GET", "/contact/cards?revision=" + cCardRevision["Card-Revision"][0],
|
||||
assert.NoError(t, APITestMsg(GetCards, "GET", "/contact/cards?revision=" + cCardRevision["Card-Revision"][0],
|
||||
nil, nil, APP_TOKENAGENT, set.C.Token, cards, &cCardRevision))
|
||||
assert.Equal(t, 1, len(*cards))
|
||||
r, _ = strconv.ParseInt(cChannelRevision["Channel-Revision"][0], 10, 64)
|
||||
@ -141,18 +141,18 @@ func TestChannelShare(t *testing.T) {
|
||||
|
||||
channels = &[]Channel{}
|
||||
revision = "?channelRevision=" + bChannelRevision["Channel-Revision"][0] + "&viewRevision=" + bChannelRevision["View-Revision"][0]
|
||||
assert.NoError(t, ApiTestMsg(GetChannels, "GET", "/content/channels" + revision,
|
||||
assert.NoError(t, APITestMsg(GetChannels, "GET", "/content/channels" + revision,
|
||||
nil, nil, APP_TOKENCONTACT, set.B.A.Token, channels, &bChannelRevision))
|
||||
assert.Equal(t, 1, len(*channels))
|
||||
channels = &[]Channel{}
|
||||
revision = "?channelRevision=" + cChannelRevision["Channel-Revision"][0] + "&viewRevision=" + cChannelRevision["View-Revision"][0]
|
||||
assert.NoError(t, ApiTestMsg(GetChannels, "GET", "/content/channels" + revision,
|
||||
assert.NoError(t, APITestMsg(GetChannels, "GET", "/content/channels" + revision,
|
||||
nil, nil, APP_TOKENCONTACT, set.C.A.Token, channels, &cChannelRevision))
|
||||
assert.Equal(t, 1, len(*channels))
|
||||
|
||||
// get discovered channel
|
||||
detail = &ChannelDetail{}
|
||||
assert.NoError(t, ApiTestMsg(GetChannelDetail, "GET", "/content/channels/{channelId}/detail",
|
||||
assert.NoError(t, APITestMsg(GetChannelDetail, "GET", "/content/channels/{channelID}/detail",
|
||||
¶ms, nil, APP_TOKENCONTACT, set.C.A.Token, detail, nil))
|
||||
assert.Equal(t, "channeldatatype", detail.DataType)
|
||||
assert.Equal(t, 2, len(detail.Members))
|
||||
@ -163,16 +163,16 @@ func TestChannelShare(t *testing.T) {
|
||||
GetTestRevision(set.C.Revisions)
|
||||
|
||||
// remove channel from C
|
||||
params["channelId"] = channel.Id
|
||||
params["cardId"] = set.A.C.CardId
|
||||
assert.NoError(t, ApiTestMsg(ClearChannelCard, "DELETE", "/content/channels/{channelId}/cards/{cardId}",
|
||||
params["channelID"] = channel.ID
|
||||
params["cardID"] = set.A.C.CardID
|
||||
assert.NoError(t, APITestMsg(ClearChannelCard, "DELETE", "/content/channels/{channelID}/cards/{cardID}",
|
||||
¶ms, nil, APP_TOKENAGENT, set.A.Token, nil, nil))
|
||||
|
||||
// check channel view from C
|
||||
assert.NotNil(t, GetTestRevision(set.B.Revisions))
|
||||
assert.NotNil(t, GetTestRevision(set.C.Revisions))
|
||||
revision = "?channelRevision=" + cChannelRevision["Channel-Revision"][0] + "&viewRevision=" + cChannelRevision["View-Revision"][0]
|
||||
assert.NoError(t, ApiTestMsg(GetChannels, "GET", "/content/channels" + revision,
|
||||
assert.NoError(t, APITestMsg(GetChannels, "GET", "/content/channels" + revision,
|
||||
nil, nil, APP_TOKENCONTACT, set.C.A.Token, channels, &cChannelRevision))
|
||||
assert.Equal(t, 1, len(*channels))
|
||||
assert.Nil(t, (*channels)[0].Data)
|
||||
@ -182,7 +182,7 @@ func TestChannelShare(t *testing.T) {
|
||||
data := "{ \"nested\" : { \"image\" : \"" + image + "\" } }"
|
||||
subject = &Subject{ Data: data, DataType: "nestedimage" }
|
||||
channel = &Channel{}
|
||||
assert.NoError(t, ApiTestMsg(SetChannelSubject, "PUT", "/content/channels/{channelId}/subject",
|
||||
assert.NoError(t, APITestMsg(SetChannelSubject, "PUT", "/content/channels/{channelID}/subject",
|
||||
¶ms, subject, APP_TOKENAGENT, set.A.Token, channel, nil))
|
||||
|
||||
// check notifications
|
||||
@ -190,9 +190,9 @@ func TestChannelShare(t *testing.T) {
|
||||
assert.Nil(t, GetTestRevision(set.C.Revisions))
|
||||
|
||||
// add C group to channel
|
||||
params["groupId"] = set.A.C.GroupId
|
||||
params["groupID"] = set.A.C.GroupID
|
||||
channel = &Channel{}
|
||||
assert.NoError(t, ApiTestMsg(SetChannelGroup, "PUT", "/content/channels/{channelId}/groups/{groupId}",
|
||||
assert.NoError(t, APITestMsg(SetChannelGroup, "PUT", "/content/channels/{channelID}/groups/{groupID}",
|
||||
¶ms, nil, APP_TOKENAGENT, set.A.Token, channel, nil))
|
||||
assert.Equal(t, 1, len(channel.Data.ChannelDetail.Contacts.Cards))
|
||||
assert.Equal(t, 1, len(channel.Data.ChannelDetail.Contacts.Groups))
|
||||
@ -202,9 +202,9 @@ func TestChannelShare(t *testing.T) {
|
||||
GetTestRevision(set.C.Revisions)
|
||||
|
||||
// remove channel from B
|
||||
params["channelId"] = channel.Id
|
||||
params["cardId"] = set.A.B.CardId
|
||||
assert.NoError(t, ApiTestMsg(ClearChannelCard, "DELETE", "/content/channels/{channelId}/cards/{cardId}",
|
||||
params["channelID"] = channel.ID
|
||||
params["cardID"] = set.A.B.CardID
|
||||
assert.NoError(t, APITestMsg(ClearChannelCard, "DELETE", "/content/channels/{channelID}/cards/{cardID}",
|
||||
¶ms, nil, APP_TOKENAGENT, set.A.Token, channel, nil))
|
||||
|
||||
// check notifications
|
||||
@ -212,9 +212,9 @@ func TestChannelShare(t *testing.T) {
|
||||
assert.NotNil(t, GetTestRevision(set.C.Revisions))
|
||||
|
||||
// remove C group from channel
|
||||
params["groupId"] = set.A.C.GroupId
|
||||
params["groupID"] = set.A.C.GroupID
|
||||
channel = &Channel{}
|
||||
assert.NoError(t, ApiTestMsg(ClearChannelGroup, "DELETE", "/content/channels/{channelId}/groups/{groupId}",
|
||||
assert.NoError(t, APITestMsg(ClearChannelGroup, "DELETE", "/content/channels/{channelID}/groups/{groupID}",
|
||||
¶ms, nil, APP_TOKENAGENT, set.A.Token, channel, nil))
|
||||
assert.Equal(t, 0, len(channel.Data.ChannelDetail.Contacts.Cards))
|
||||
assert.Equal(t, 0, len(channel.Data.ChannelDetail.Contacts.Groups))
|
||||
|
@ -6,8 +6,8 @@ import (
|
||||
)
|
||||
|
||||
func TestContactApp(t *testing.T) {
|
||||
var params *TestApiParams
|
||||
var response *TestApiResponse
|
||||
var params *TestAPIParams
|
||||
var response *TestAPIResponse
|
||||
|
||||
// allocate test accounts
|
||||
set, err := AddTestGroup("contactapp")
|
||||
@ -30,7 +30,7 @@ func TestContactApp(t *testing.T) {
|
||||
Name: "Roland",
|
||||
Location: "San Diago",
|
||||
};
|
||||
assert.NoError(t, ApiTestMsg(SetProfile, "PUT", "/profile/data", nil, profileData,
|
||||
assert.NoError(t, APITestMsg(SetProfile, "PUT", "/profile/data", nil, profileData,
|
||||
APP_TOKENAGENT, set.A.Token, nil, nil))
|
||||
|
||||
// wait for test
|
||||
@ -44,13 +44,13 @@ func TestContactApp(t *testing.T) {
|
||||
// add a new article
|
||||
article := &Article{}
|
||||
subject := &Subject{ Data: "subjectdata", DataType: "subjectdatatype" }
|
||||
params = &TestApiParams{ restType: "POST", query: "/articles", tokenType: APP_TOKENAGENT, token: set.A.Token, body: subject }
|
||||
response = &TestApiResponse{ data: article }
|
||||
assert.NoError(t, TestApiRequest(AddArticle, params, response))
|
||||
params = &TestAPIParams{ restType: "POST", query: "/articles", tokenType: APP_TOKENAGENT, token: set.A.Token, body: subject }
|
||||
response = &TestAPIResponse{ data: article }
|
||||
assert.NoError(t, TestAPIRequest(AddArticle, params, response))
|
||||
|
||||
// wait for a
|
||||
assert.NoError(t, app.WaitFor(func(testApp *TestApp)bool {
|
||||
a, set := testApp.articles[article.Id]
|
||||
a, set := testApp.articles[article.ID]
|
||||
if set && a.Data.Data == "subjectdata" {
|
||||
return true
|
||||
}
|
||||
@ -58,14 +58,14 @@ func TestContactApp(t *testing.T) {
|
||||
}))
|
||||
|
||||
// remove a new article
|
||||
params = &TestApiParams{ restType: "DELETE", query: "/articles/{articleId}", path: map[string]string{ "articleId": article.Id },
|
||||
params = &TestAPIParams{ restType: "DELETE", query: "/articles/{articleID}", path: map[string]string{ "articleID": article.ID },
|
||||
tokenType: APP_TOKENAGENT, token: set.A.Token, body: subject }
|
||||
response = &TestApiResponse{}
|
||||
assert.NoError(t, TestApiRequest(RemoveArticle, params, response))
|
||||
response = &TestAPIResponse{}
|
||||
assert.NoError(t, TestAPIRequest(RemoveArticle, params, response))
|
||||
|
||||
// wait for a to be removed
|
||||
assert.NoError(t, app.WaitFor(func(testApp *TestApp)bool {
|
||||
if _, set := testApp.articles[article.Id]; !set {
|
||||
if _, set := testApp.articles[article.ID]; !set {
|
||||
return true
|
||||
}
|
||||
return false
|
||||
@ -74,23 +74,23 @@ func TestContactApp(t *testing.T) {
|
||||
// add a new article in contact
|
||||
article = &Article{}
|
||||
subject = &Subject{ Data: "subjectdataB", DataType: "subjectdatatypeB" }
|
||||
params = &TestApiParams{ restType: "POST", query: "/articles", tokenType: APP_TOKENAGENT, token: set.B.Token, body: subject }
|
||||
response = &TestApiResponse{ data: article }
|
||||
assert.NoError(t, TestApiRequest(AddArticle, params, response))
|
||||
articleId := article.Id
|
||||
params = &TestAPIParams{ restType: "POST", query: "/articles", tokenType: APP_TOKENAGENT, token: set.B.Token, body: subject }
|
||||
response = &TestAPIResponse{ data: article }
|
||||
assert.NoError(t, TestAPIRequest(AddArticle, params, response))
|
||||
articleID := article.ID
|
||||
|
||||
// share article
|
||||
article = &Article{}
|
||||
params = &TestApiParams{ restType: "POST", query: "/articles/{articleId}/groups/{groupId}", tokenType: APP_TOKENAGENT, token: set.B.Token,
|
||||
path: map[string]string{ "articleId": articleId, "groupId": set.B.A.GroupId }}
|
||||
response = &TestApiResponse{ data: article }
|
||||
assert.NoError(t, TestApiRequest(SetArticleGroup, params, response))
|
||||
params = &TestAPIParams{ restType: "POST", query: "/articles/{articleID}/groups/{groupID}", tokenType: APP_TOKENAGENT, token: set.B.Token,
|
||||
path: map[string]string{ "articleID": articleID, "groupID": set.B.A.GroupID }}
|
||||
response = &TestAPIResponse{ data: article }
|
||||
assert.NoError(t, TestAPIRequest(SetArticleGroup, params, response))
|
||||
|
||||
// wait for
|
||||
assert.NoError(t, app.WaitFor(func(testApp *TestApp)bool {
|
||||
contact, contactSet := testApp.contacts[set.A.B.CardId]
|
||||
contact, contactSet := testApp.contacts[set.A.B.CardID]
|
||||
if contactSet {
|
||||
_, articleSet := contact.articles[articleId]
|
||||
_, articleSet := contact.articles[articleID]
|
||||
if articleSet {
|
||||
return true
|
||||
}
|
||||
@ -100,16 +100,16 @@ func TestContactApp(t *testing.T) {
|
||||
|
||||
// remove new article in contact
|
||||
article = &Article{}
|
||||
params = &TestApiParams{ restType: "DELETE", query: "/articles/{articleId}", tokenType: APP_TOKENAGENT, token: set.B.Token,
|
||||
path: map[string]string{ "articleId": articleId }}
|
||||
response = &TestApiResponse{ }
|
||||
assert.NoError(t, TestApiRequest(RemoveArticle, params, response))
|
||||
params = &TestAPIParams{ restType: "DELETE", query: "/articles/{articleID}", tokenType: APP_TOKENAGENT, token: set.B.Token,
|
||||
path: map[string]string{ "articleID": articleID }}
|
||||
response = &TestAPIResponse{ }
|
||||
assert.NoError(t, TestAPIRequest(RemoveArticle, params, response))
|
||||
|
||||
// wait for
|
||||
assert.NoError(t, app.WaitFor(func(testApp *TestApp)bool {
|
||||
contact, contactSet := testApp.contacts[set.A.B.CardId]
|
||||
contact, contactSet := testApp.contacts[set.A.B.CardID]
|
||||
if contactSet {
|
||||
_, articleSet := contact.articles[articleId]
|
||||
_, articleSet := contact.articles[articleID]
|
||||
if !articleSet {
|
||||
return true
|
||||
}
|
||||
@ -120,23 +120,23 @@ func TestContactApp(t *testing.T) {
|
||||
// add a new article in contact
|
||||
article = &Article{}
|
||||
subject = &Subject{ Data: "subjectdataB", DataType: "subjectdatatypeB" }
|
||||
params = &TestApiParams{ restType: "POST", query: "/articles", tokenType: APP_TOKENAGENT, token: set.B.Token, body: subject }
|
||||
response = &TestApiResponse{ data: article }
|
||||
assert.NoError(t, TestApiRequest(AddArticle, params, response))
|
||||
articleId = article.Id
|
||||
params = &TestAPIParams{ restType: "POST", query: "/articles", tokenType: APP_TOKENAGENT, token: set.B.Token, body: subject }
|
||||
response = &TestAPIResponse{ data: article }
|
||||
assert.NoError(t, TestAPIRequest(AddArticle, params, response))
|
||||
articleID = article.ID
|
||||
|
||||
// share article
|
||||
article = &Article{}
|
||||
params = &TestApiParams{ restType: "POST", query: "/articles/{articleId}/groups/{groupId}", tokenType: APP_TOKENAGENT, token: set.B.Token,
|
||||
path: map[string]string{ "articleId": articleId, "groupId": set.B.A.GroupId }}
|
||||
response = &TestApiResponse{ data: article }
|
||||
assert.NoError(t, TestApiRequest(SetArticleGroup, params, response))
|
||||
params = &TestAPIParams{ restType: "POST", query: "/articles/{articleID}/groups/{groupID}", tokenType: APP_TOKENAGENT, token: set.B.Token,
|
||||
path: map[string]string{ "articleID": articleID, "groupID": set.B.A.GroupID }}
|
||||
response = &TestAPIResponse{ data: article }
|
||||
assert.NoError(t, TestAPIRequest(SetArticleGroup, params, response))
|
||||
|
||||
// wait for
|
||||
assert.NoError(t, app.WaitFor(func(testApp *TestApp)bool {
|
||||
contact, contactSet := testApp.contacts[set.A.B.CardId]
|
||||
contact, contactSet := testApp.contacts[set.A.B.CardID]
|
||||
if contactSet {
|
||||
_, articleSet := contact.articles[articleId]
|
||||
_, articleSet := contact.articles[articleID]
|
||||
if articleSet {
|
||||
return true
|
||||
}
|
||||
@ -146,16 +146,16 @@ func TestContactApp(t *testing.T) {
|
||||
|
||||
// remove group in contact
|
||||
article = &Article{}
|
||||
params = &TestApiParams{ restType: "DELETE", query: "/groups/{groupId}", tokenType: APP_TOKENAGENT, token: set.B.Token,
|
||||
path: map[string]string{ "groupId": set.B.A.GroupId }}
|
||||
response = &TestApiResponse{ }
|
||||
assert.NoError(t, TestApiRequest(RemoveGroup, params, response))
|
||||
params = &TestAPIParams{ restType: "DELETE", query: "/groups/{groupID}", tokenType: APP_TOKENAGENT, token: set.B.Token,
|
||||
path: map[string]string{ "groupID": set.B.A.GroupID }}
|
||||
response = &TestAPIResponse{ }
|
||||
assert.NoError(t, TestAPIRequest(RemoveGroup, params, response))
|
||||
|
||||
// wait for
|
||||
assert.NoError(t, app.WaitFor(func(testApp *TestApp)bool {
|
||||
contact, contactSet := testApp.contacts[set.A.B.CardId]
|
||||
contact, contactSet := testApp.contacts[set.A.B.CardID]
|
||||
if contactSet {
|
||||
_, articleSet := contact.articles[articleId]
|
||||
_, articleSet := contact.articles[articleID]
|
||||
if !articleSet {
|
||||
return true
|
||||
}
|
||||
@ -165,9 +165,9 @@ func TestContactApp(t *testing.T) {
|
||||
|
||||
// update Bs profile
|
||||
profileData = &ProfileData{ Name: "contactappname" }
|
||||
params = &TestApiParams{ restType: "PUT", query: "/profile/data", tokenType: APP_TOKENAGENT, token: set.B.Token, body: profileData }
|
||||
response = &TestApiResponse{}
|
||||
assert.NoError(t, TestApiRequest(SetProfile, params, response))
|
||||
params = &TestAPIParams{ restType: "PUT", query: "/profile/data", tokenType: APP_TOKENAGENT, token: set.B.Token, body: profileData }
|
||||
response = &TestAPIResponse{}
|
||||
assert.NoError(t, TestAPIRequest(SetProfile, params, response))
|
||||
|
||||
// wait for
|
||||
assert.NoError(t, app.WaitFor(func(testApp *TestApp)bool {
|
||||
@ -181,22 +181,22 @@ func TestContactApp(t *testing.T) {
|
||||
|
||||
// disconnect from B
|
||||
card := &Card{}
|
||||
params = &TestApiParams{ restType: "PUT", query: "/contact/cards/{cardId}/status", tokenType: APP_TOKENAGENT, token: set.B.Token,
|
||||
path: map[string]string{ "cardId": set.B.A.CardId }, body: APP_CARDCONFIRMED }
|
||||
response = &TestApiResponse{ data: card }
|
||||
assert.NoError(t, TestApiRequest(SetCardStatus, params, response))
|
||||
params = &TestAPIParams{ restType: "PUT", query: "/contact/cards/{cardID}/status", tokenType: APP_TOKENAGENT, token: set.B.Token,
|
||||
path: map[string]string{ "cardID": set.B.A.CardID }, body: APP_CARDCONFIRMED }
|
||||
response = &TestAPIResponse{ data: card }
|
||||
assert.NoError(t, TestAPIRequest(SetCardStatus, params, response))
|
||||
msg := &DataMessage{}
|
||||
params = &TestApiParams { query: "/contact/cards/{cardId}/closeMessage", tokenType: APP_TOKENAGENT, token: set.B.Token,
|
||||
path: map[string]string{ "cardId": set.B.A.CardId } }
|
||||
response = &TestApiResponse{ data: msg }
|
||||
assert.NoError(t, TestApiRequest(GetCloseMessage, params, response))
|
||||
params = &TestApiParams { restType: "PUT", query: "/contact/closeMessage", body: msg }
|
||||
response = &TestApiResponse{}
|
||||
assert.NoError(t, TestApiRequest(SetCloseMessage, params, response))
|
||||
params = &TestAPIParams { query: "/contact/cards/{cardID}/closeMessage", tokenType: APP_TOKENAGENT, token: set.B.Token,
|
||||
path: map[string]string{ "cardID": set.B.A.CardID } }
|
||||
response = &TestAPIResponse{ data: msg }
|
||||
assert.NoError(t, TestAPIRequest(GetCloseMessage, params, response))
|
||||
params = &TestAPIParams { restType: "PUT", query: "/contact/closeMessage", body: msg }
|
||||
response = &TestAPIResponse{}
|
||||
assert.NoError(t, TestAPIRequest(SetCloseMessage, params, response))
|
||||
|
||||
// wait for
|
||||
assert.NoError(t, app.WaitFor(func(testApp *TestApp)bool {
|
||||
contact, contactSet := testApp.contacts[set.A.B.CardId]
|
||||
contact, contactSet := testApp.contacts[set.A.B.CardID]
|
||||
if contactSet && contact.card.Data.CardDetail.Status == APP_CARDCONFIRMED {
|
||||
return true
|
||||
}
|
||||
|
@ -30,17 +30,17 @@ func TestContactSync(t *testing.T) {
|
||||
|
||||
// set profile image
|
||||
image := "iVBORw0KGgoAAAANSUhEUgAAAaQAAAGkCAIAAADxLsZiAAAFzElEQVR4nOzWUY3jMBhG0e0qSEqoaIqiaEIoGAxh3gZAldid3nMI+JOiXP3bGOMfwLf7v3oAwAxiBySIHZAgdkCC2AEJYgckiB2QIHZAgtgBCWIHJIgdkCB2QILYAQliBySIHZAgdkCC2AEJYgckiB2QIHZAgtgBCWIHJIgdkCB2QILYAQliBySIHZAgdkCC2AEJYgckiB2QIHZAgtgBCWIHJGzTXnrtx7S3pnk+7qsnnMk3+ny+0dtcdkCC2AEJYgckiB2QIHZAgtgBCWIHJIgdkCB2QILYAQliBySIHZAgdkCC2AEJYgckiB2QIHZAgtgBCWIHJIgdkCB2QILYAQliBySIHZAgdkCC2AEJYgckiB2QIHZAgtgBCWIHJIgdkCB2QILYAQliBySIHZAgdkCC2AEJYgckiB2QIHZAgtgBCWIHJIgdkCB2QILYAQliBySIHZAgdkCC2AEJYgckiB2QIHZAgtgBCWIHJIgdkCB2QILYAQliBySIHZAgdkCC2AEJYgckiB2QIHZAgtgBCWIHJIgdkCB2QILYAQnbtJeej/u0t+Bb+Y/e5rIDEsQOSBA7IEHsgASxAxLEDkgQOyBB7IAEsQMSxA5IEDsgQeyABLEDEsQOSBA7IEHsgASxAxLEDkgQOyBB7IAEsQMSxA5IEDsgQeyABLEDEsQOSBA7IEHsgASxAxLEDkgQOyBB7IAEsQMSxA5IEDsgQeyABLEDEsQOSBA7IEHsgASxAxLEDkgQOyBB7IAEsQMSxA5IEDsgQeyABLEDEsQOSBA7IEHsgASxAxLEDkgQOyBB7IAEsQMSxA5IEDsgQeyABLEDEsQOSBA7IEHsgASxAxLEDkgQOyBB7IAEsQMSbmOM1RsALueyAxLEDkgQOyBB7IAEsQMSxA5IEDsgQeyABLEDEsQOSBA7IEHsgASxAxLEDkgQOyBB7IAEsQMSxA5IEDsgQeyABLEDEsQOSBA7IEHsgASxAxLEDkgQOyBB7IAEsQMSxA5IEDsgQeyABLEDEsQOSBA7IEHsgASxAxLEDkgQOyBB7IAEsQMSxA5IEDsgQeyABLEDEsQOSBA7IEHsgASxAxLEDkgQOyBB7IAEsQMSxA5IEDsgQeyABLEDEsQOSBA7IEHsgASxAxLEDkgQOyBB7IAEsQMSxA5IEDsgQeyAhG31gD/stR+rJ5zv+bivnnAm34hfLjsgQeyABLEDEsQOSBA7IEHsgASxAxLEDkgQOyBB7IAEsQMSxA5IEDsgQeyABLEDEsQOSBA7IEHsgASxAxLEDkgQOyBB7IAEsQMSxA5IEDsgQeyABLEDEsQOSBA7IEHsgASxAxLEDkgQOyBB7IAEsQMSxA5IEDsgQeyABLEDEsQOSBA7IEHsgASxAxLEDkgQOyBB7IAEsQMSxA5IEDsgQeyABLEDEsQOSBA7IEHsgASxAxLEDkgQOyBB7IAEsQMSxA5IEDsgQeyABLEDEsQOSBA7IEHsgASxAxLEDkgQOyBhWz2Az/Laj9UT4BIuOyBB7IAEsQMSxA5IEDsgQeyABLEDEsQOSBA7IEHsgASxAxLEDkgQOyBB7IAEsQMSxA5IEDsgQeyABLEDEsQOSBA7IEHsgASxAxLEDkgQOyBB7IAEsQMSxA5IEDsgQeyABLEDEsQOSBA7IEHsgASxAxLEDkgQOyBB7IAEsQMSxA5IEDsgQeyABLEDEsQOSBA7IEHsgASxAxLEDkgQOyBB7IAEsQMSxA5IEDsgQeyABLEDEsQOSBA7IEHsgASxAxLEDkgQOyBB7IAEsQMSxA5IEDsgQeyABLEDEsQOSBA7IEHsgITbGGP1BoDLueyABLEDEsQOSBA7IEHsgASxAxLEDkgQOyBB7IAEsQMSxA5IEDsgQeyABLEDEsQOSBA7IEHsgASxAxLEDkgQOyBB7IAEsQMSxA5IEDsgQeyABLEDEsQOSBA7IEHsgASxAxLEDkgQOyBB7ICEnwAAAP//DQ4epwV6rzkAAAAASUVORK5CYII="
|
||||
assert.NoError(t, ApiTestMsg(SetProfileImage, "PUT", "/profile/image",
|
||||
assert.NoError(t, APITestMsg(SetProfileImage, "PUT", "/profile/image",
|
||||
nil, image, APP_TOKENAGENT, set.A.Token, &profile, nil))
|
||||
|
||||
// sync profile
|
||||
assert.NoError(t, ApiTestMsg(GetProfileMessage, "GET", "/profile/message",
|
||||
assert.NoError(t, APITestMsg(GetProfileMessage, "GET", "/profile/message",
|
||||
nil, nil, APP_TOKENCONTACT, set.B.A.Token, &msg, nil))
|
||||
param["cardId"] = set.B.A.CardId
|
||||
assert.NoError(t, ApiTestMsg(SetCardProfile, "PUT", "/contact/cards/{cardId}/profile",
|
||||
param["cardID"] = set.B.A.CardID
|
||||
assert.NoError(t, APITestMsg(SetCardProfile, "PUT", "/contact/cards/{cardID}/profile",
|
||||
¶m, &msg, APP_TOKENAGENT, set.B.Token, &card, nil))
|
||||
assert.True(t, card.Data.CardProfile.ImageSet)
|
||||
data, hdr, res = ApiTestData(GetCardProfileImage, "GET", "/contact/cards/{cardId}/profile/image",
|
||||
data, hdr, res = APITestData(GetCardProfileImage, "GET", "/contact/cards/{cardID}/profile/image",
|
||||
¶m, &data, APP_TOKENAGENT, set.B.Token, 0, 0)
|
||||
assert.NoError(t, res)
|
||||
|
||||
@ -52,122 +52,122 @@ func TestContactSync(t *testing.T) {
|
||||
|
||||
// get full card list
|
||||
cards = &[]Card{}
|
||||
assert.NoError(t, ApiTestMsg(GetCards, "GET", "/contact/cards",
|
||||
assert.NoError(t, APITestMsg(GetCards, "GET", "/contact/cards",
|
||||
nil, nil, APP_TOKENAGENT, set.B.Token, cards, &hdr))
|
||||
cardRevision = hdr["Card-Revision"][0]
|
||||
cards = &[]Card{}
|
||||
assert.NoError(t, ApiTestMsg(GetCards, "GET", "/contact/cards?revision=" + cardRevision,
|
||||
assert.NoError(t, APITestMsg(GetCards, "GET", "/contact/cards?revision=" + cardRevision,
|
||||
nil, nil, APP_TOKENAGENT, set.B.Token, cards, &hdr))
|
||||
cardRevision = hdr["Card-Revision"][0]
|
||||
assert.Equal(t, 0, len(*cards)) // ?? actual 1
|
||||
|
||||
// set card notes
|
||||
GetTestRevision(set.B.Revisions)
|
||||
assert.NoError(t, ApiTestMsg(SetCardNotes, "PUT", "/conact/cards/{cardId}/notes",
|
||||
assert.NoError(t, APITestMsg(SetCardNotes, "PUT", "/conact/cards/{cardID}/notes",
|
||||
¶m, "CardA notes", APP_TOKENAGENT, set.B.Token, &detail, nil))
|
||||
rev = GetTestRevision(set.B.Revisions)
|
||||
cards = &[]Card{}
|
||||
assert.NoError(t, ApiTestMsg(GetCards, "GET", "/contact/cards?revision=" + cardRevision,
|
||||
assert.NoError(t, APITestMsg(GetCards, "GET", "/contact/cards?revision=" + cardRevision,
|
||||
nil, nil, APP_TOKENAGENT, set.B.Token, cards, &hdr))
|
||||
assert.Equal(t, 1, len(*cards))
|
||||
detailRevision = (*cards)[0].Data.DetailRevision
|
||||
|
||||
// clear card notes
|
||||
GetTestRevision(set.B.Revisions)
|
||||
assert.NoError(t, ApiTestMsg(ClearCardNotes, "DELETE", "/contact/cards/{cardId}/notes",
|
||||
assert.NoError(t, APITestMsg(ClearCardNotes, "DELETE", "/contact/cards/{cardID}/notes",
|
||||
¶m, nil, APP_TOKENAGENT, set.B.Token, &detail, nil))
|
||||
assert.NotEqual(t, rev.Card, GetTestRevision(set.B.Revisions).Card)
|
||||
cards = &[]Card{}
|
||||
assert.NoError(t, ApiTestMsg(GetCards, "GET", "/contact/cards?revision=" + cardRevision,
|
||||
assert.NoError(t, APITestMsg(GetCards, "GET", "/contact/cards?revision=" + cardRevision,
|
||||
nil, nil, APP_TOKENAGENT, set.B.Token, cards, &hdr))
|
||||
assert.Equal(t, 1, len(*cards))
|
||||
assert.NotEqual(t, detailRevision, (*cards)[0].Data.DetailRevision)
|
||||
|
||||
// remove card from group
|
||||
card = &Card{}
|
||||
param["cardId"] = set.B.A.CardId
|
||||
assert.NoError(t, ApiTestMsg(GetCard, "GET", "/contact/cards/{cardId}",
|
||||
param["cardID"] = set.B.A.CardID
|
||||
assert.NoError(t, APITestMsg(GetCard, "GET", "/contact/cards/{cardID}",
|
||||
¶m, nil, APP_TOKENAGENT, set.B.Token, card, nil))
|
||||
assert.Equal(t, "connected", card.Data.CardDetail.Status)
|
||||
viewRevision = card.Data.NotifiedView
|
||||
card = &Card{}
|
||||
param["cardId"] = set.A.B.CardId
|
||||
param["groupId"] = set.A.B.GroupId
|
||||
assert.NoError(t, ApiTestMsg(ClearCardGroup, "DELETE", "/contact/cards/{cardId}/groups/{groupId}",
|
||||
param["cardID"] = set.A.B.CardID
|
||||
param["groupID"] = set.A.B.GroupID
|
||||
assert.NoError(t, APITestMsg(ClearCardGroup, "DELETE", "/contact/cards/{cardID}/groups/{groupID}",
|
||||
¶m, nil, APP_TOKENAGENT, set.A.Token, card, nil))
|
||||
assert.Equal(t, 0, len(card.Data.CardDetail.Groups))
|
||||
assert.NotEqual(t, rev.Card, GetTestRevision(set.B.Revisions).Card)
|
||||
card = &Card{}
|
||||
param["cardId"] = set.B.A.CardId
|
||||
assert.NoError(t, ApiTestMsg(GetCard, "GET", "/contact/cards/{cardId}",
|
||||
param["cardID"] = set.B.A.CardID
|
||||
assert.NoError(t, APITestMsg(GetCard, "GET", "/contact/cards/{cardID}",
|
||||
¶m, nil, APP_TOKENAGENT, set.B.Token, card, nil))
|
||||
assert.NotEqual(t, viewRevision, card.Data.NotifiedView)
|
||||
|
||||
// disconnect card
|
||||
card = &Card{}
|
||||
param["cardId"] = set.A.B.CardId
|
||||
assert.NoError(t, ApiTestMsg(SetCardStatus, "PUT", "/contact/cards/{cardId}/status",
|
||||
param["cardID"] = set.A.B.CardID
|
||||
assert.NoError(t, APITestMsg(SetCardStatus, "PUT", "/contact/cards/{cardID}/status",
|
||||
¶m, APP_CARDCONFIRMED, APP_TOKENAGENT, set.A.Token, card, nil))
|
||||
assert.NoError(t, ApiTestMsg(GetCloseMessage, "GET", "/contact/cards/{cardId}/closeMessage",
|
||||
assert.NoError(t, APITestMsg(GetCloseMessage, "GET", "/contact/cards/{cardID}/closeMessage",
|
||||
¶m, nil, APP_TOKENAGENT, set.A.Token, &msg, nil))
|
||||
assert.NoError(t, ApiTestMsg(SetCloseMessage, "GET", "/contact/closeMessage",
|
||||
assert.NoError(t, APITestMsg(SetCloseMessage, "GET", "/contact/closeMessage",
|
||||
nil, &msg, "", "", nil, nil))
|
||||
assert.NotNil(t, GetTestRevision(set.B.Revisions))
|
||||
card = &Card{}
|
||||
param["cardId"] = set.B.A.CardId
|
||||
assert.NoError(t, ApiTestMsg(GetCard, "GET", "/contact/cards/{cardId}",
|
||||
param["cardID"] = set.B.A.CardID
|
||||
assert.NoError(t, APITestMsg(GetCard, "GET", "/contact/cards/{cardID}",
|
||||
¶m, nil, APP_TOKENAGENT, set.B.Token, card, nil))
|
||||
assert.Equal(t, "confirmed", card.Data.CardDetail.Status)
|
||||
|
||||
// cancel request
|
||||
card = &Card{}
|
||||
param["cardId"] = set.D.A.CardId
|
||||
assert.NoError(t, ApiTestMsg(GetCard, "GET", "/contact/cards/{cardId}",
|
||||
param["cardID"] = set.D.A.CardID
|
||||
assert.NoError(t, APITestMsg(GetCard, "GET", "/contact/cards/{cardID}",
|
||||
¶m, nil, APP_TOKENAGENT, set.D.Token, card, nil))
|
||||
param["cardId"] = set.A.D.CardId
|
||||
assert.NoError(t, ApiTestMsg(SetCardStatus, "PUT", "/contact/cards/{cardId}/status",
|
||||
param["cardID"] = set.A.D.CardID
|
||||
assert.NoError(t, APITestMsg(SetCardStatus, "PUT", "/contact/cards/{cardID}/status",
|
||||
¶m, APP_CARDCONFIRMED, APP_TOKENAGENT, set.A.Token, card, nil))
|
||||
assert.NoError(t, ApiTestMsg(GetCloseMessage, "GET", "/contact/cards/{cardId}/closeMessage",
|
||||
assert.NoError(t, APITestMsg(GetCloseMessage, "GET", "/contact/cards/{cardID}/closeMessage",
|
||||
¶m, nil, APP_TOKENAGENT, set.A.Token, &msg, nil))
|
||||
assert.NoError(t, ApiTestMsg(SetCloseMessage, "GET", "/contact/closeMessage",
|
||||
assert.NoError(t, APITestMsg(SetCloseMessage, "GET", "/contact/closeMessage",
|
||||
nil, &msg, "", "", nil, nil))
|
||||
|
||||
// delete card
|
||||
param["cardId"] = set.A.C.CardId
|
||||
assert.NoError(t, ApiTestMsg(RemoveCard, "DELETE", "/contact/cards/{cardId}",
|
||||
param["cardID"] = set.A.C.CardID
|
||||
assert.NoError(t, APITestMsg(RemoveCard, "DELETE", "/contact/cards/{cardID}",
|
||||
¶m, nil, APP_TOKENAGENT, set.A.Token, nil, nil))
|
||||
card = &Card{}
|
||||
assert.NoError(t, ApiTestMsg(GetCard, "GET", "/contact/cards/{cardId}",
|
||||
assert.NoError(t, APITestMsg(GetCard, "GET", "/contact/cards/{cardID}",
|
||||
¶m, nil, APP_TOKENAGENT, set.A.Token, card, nil))
|
||||
assert.Nil(t, card.Data)
|
||||
|
||||
// update and delete group
|
||||
param["groupId"] = set.D.C.GroupId
|
||||
param["groupID"] = set.D.C.GroupID
|
||||
subject := &Subject{ DataType: "contactsynctype", Data: "contactsyncdata" }
|
||||
assert.NoError(t, ApiTestMsg(SetGroupSubject, "PUT", "/alias/groups/{groupId}",
|
||||
assert.NoError(t, APITestMsg(SetGroupSubject, "PUT", "/alias/groups/{groupID}",
|
||||
¶m, subject, APP_TOKENAGENT, set.D.Token, nil, nil))
|
||||
groups = &[]Group{}
|
||||
assert.NoError(t, ApiTestMsg(GetGroups, "GET", "/alias/groups",
|
||||
assert.NoError(t, APITestMsg(GetGroups, "GET", "/alias/groups",
|
||||
nil, nil, APP_TOKENAGENT, set.D.Token, groups, nil))
|
||||
assert.Equal(t, 1, len(*groups))
|
||||
assert.Equal(t, "contactsynctype", (*groups)[0].Data.DataType)
|
||||
assert.Equal(t, "contactsyncdata", (*groups)[0].Data.Data)
|
||||
rev = GetTestRevision(set.C.Revisions)
|
||||
card = &Card{}
|
||||
param["cardId"] = set.C.D.CardId
|
||||
assert.NoError(t, ApiTestMsg(GetCard, "GET", "/contact/cards/{cardId}",
|
||||
param["cardID"] = set.C.D.CardID
|
||||
assert.NoError(t, APITestMsg(GetCard, "GET", "/contact/cards/{cardID}",
|
||||
¶m, nil, APP_TOKENAGENT, set.C.Token, card, nil))
|
||||
viewRevision = card.Data.NotifiedView
|
||||
param["groupId"] = set.D.C.GroupId
|
||||
assert.NoError(t, ApiTestMsg(RemoveGroup, "GET", "/alias/groups/{groupId}",
|
||||
param["groupID"] = set.D.C.GroupID
|
||||
assert.NoError(t, APITestMsg(RemoveGroup, "GET", "/alias/groups/{groupID}",
|
||||
¶m, nil, APP_TOKENAGENT, set.D.Token, nil, nil))
|
||||
groups = &[]Group{}
|
||||
assert.NoError(t, ApiTestMsg(GetGroups, "GET", "/alias/groups",
|
||||
assert.NoError(t, APITestMsg(GetGroups, "GET", "/alias/groups",
|
||||
nil, nil, APP_TOKENAGENT, set.D.Token, groups, nil))
|
||||
assert.Equal(t, 0, len(*groups))
|
||||
assert.NotEqual(t, rev.Card, GetTestRevision(set.C.Revisions).Card)
|
||||
card = &Card{}
|
||||
assert.NoError(t, ApiTestMsg(GetCard, "GET", "/contact/cards/{cardId}",
|
||||
assert.NoError(t, APITestMsg(GetCard, "GET", "/contact/cards/{cardID}",
|
||||
¶m, nil, APP_TOKENAGENT, set.C.Token, card, nil))
|
||||
assert.NotEqual(t, viewRevision, card.Data.NotifiedView)
|
||||
}
|
||||
|
@ -6,8 +6,8 @@ import (
|
||||
)
|
||||
|
||||
func TestMessangerApp(t *testing.T) {
|
||||
var params *TestApiParams
|
||||
var response *TestApiResponse
|
||||
var params *TestAPIParams
|
||||
var response *TestAPIResponse
|
||||
var channel *Channel
|
||||
var topic *Topic
|
||||
var tag *Tag
|
||||
@ -29,7 +29,7 @@ func TestMessangerApp(t *testing.T) {
|
||||
}))
|
||||
|
||||
// set profile
|
||||
params = &TestApiParams{
|
||||
params = &TestAPIParams{
|
||||
restType: "PUT",
|
||||
query: "/profile/data",
|
||||
body: &ProfileData{
|
||||
@ -39,8 +39,8 @@ func TestMessangerApp(t *testing.T) {
|
||||
tokenType: APP_TOKENAGENT,
|
||||
token: set.A.Token,
|
||||
}
|
||||
response = &TestApiResponse{}
|
||||
assert.NoError(t, TestApiRequest(SetProfile, params, response))
|
||||
response = &TestAPIResponse{}
|
||||
assert.NoError(t, TestAPIRequest(SetProfile, params, response))
|
||||
|
||||
// wait for test
|
||||
assert.NoError(t, app.WaitFor(func(testApp *TestApp)bool{
|
||||
@ -51,7 +51,7 @@ func TestMessangerApp(t *testing.T) {
|
||||
}))
|
||||
|
||||
// add a channel
|
||||
params = &TestApiParams{
|
||||
params = &TestAPIParams{
|
||||
restType: "POST",
|
||||
query: "/content/channels",
|
||||
body: &Subject{
|
||||
@ -62,13 +62,13 @@ func TestMessangerApp(t *testing.T) {
|
||||
token: set.A.Token,
|
||||
}
|
||||
channel = &Channel{}
|
||||
response = &TestApiResponse{ data: channel }
|
||||
assert.NoError(t, TestApiRequest(AddChannel, params, response))
|
||||
response = &TestAPIResponse{ data: channel }
|
||||
assert.NoError(t, TestAPIRequest(AddChannel, params, response))
|
||||
|
||||
// wait for test
|
||||
assert.NoError(t, app.WaitFor(func(testApp *TestApp)bool{
|
||||
for _, c := range testApp.channels {
|
||||
if c.channel.Id == channel.Id {
|
||||
if c.channel.ID == channel.ID {
|
||||
return true
|
||||
}
|
||||
}
|
||||
@ -76,10 +76,10 @@ func TestMessangerApp(t *testing.T) {
|
||||
}))
|
||||
|
||||
// add a topic to channel
|
||||
params = &TestApiParams{
|
||||
params = &TestAPIParams{
|
||||
restType: "POST",
|
||||
query: "/content/channels/{channelId}/topics",
|
||||
path: map[string]string{ "channelId": channel.Id },
|
||||
query: "/content/channels/{channelID}/topics",
|
||||
path: map[string]string{ "channelID": channel.ID },
|
||||
body: &Subject{
|
||||
Data: "channeltopicdataA",
|
||||
DataType: "channeltopicdatatypeA",
|
||||
@ -88,15 +88,15 @@ func TestMessangerApp(t *testing.T) {
|
||||
token: set.A.Token,
|
||||
}
|
||||
topic = &Topic{}
|
||||
response = &TestApiResponse{ data: topic }
|
||||
assert.NoError(t, TestApiRequest(AddChannelTopic, params, response))
|
||||
response = &TestAPIResponse{ data: topic }
|
||||
assert.NoError(t, TestAPIRequest(AddChannelTopic, params, response))
|
||||
|
||||
// wait for test
|
||||
assert.NoError(t, app.WaitFor(func(testApp *TestApp)bool{
|
||||
for _, c := range testApp.channels {
|
||||
if c.channel.Id == channel.Id {
|
||||
if c.channel.ID == channel.ID {
|
||||
for _, t := range c.topics {
|
||||
if t.topic.Id == topic.Id {
|
||||
if t.topic.ID == topic.ID {
|
||||
return true
|
||||
}
|
||||
}
|
||||
@ -106,10 +106,10 @@ func TestMessangerApp(t *testing.T) {
|
||||
}))
|
||||
|
||||
// add a tag to channel topic
|
||||
params = &TestApiParams{
|
||||
params = &TestAPIParams{
|
||||
restType: "POST",
|
||||
query: "/content/channels/{channelId}/topics/{topicId}/tags",
|
||||
path: map[string]string{ "channelId": channel.Id, "topicId": topic.Id },
|
||||
query: "/content/channels/{channelID}/topics/{topicID}/tags",
|
||||
path: map[string]string{ "channelID": channel.ID, "topicID": topic.ID },
|
||||
body: &Subject{
|
||||
Data: "channeltopictagdataA",
|
||||
DataType: "channeltopictagdatatypeA",
|
||||
@ -118,17 +118,17 @@ func TestMessangerApp(t *testing.T) {
|
||||
token: set.A.Token,
|
||||
}
|
||||
tag = &Tag{}
|
||||
response = &TestApiResponse{ data: tag }
|
||||
assert.NoError(t, TestApiRequest(AddChannelTopicTag, params, response))
|
||||
response = &TestAPIResponse{ data: tag }
|
||||
assert.NoError(t, TestAPIRequest(AddChannelTopicTag, params, response))
|
||||
|
||||
// wait for test
|
||||
assert.NoError(t, app.WaitFor(func(testApp *TestApp)bool{
|
||||
for _, testChannel := range testApp.channels {
|
||||
if testChannel.channel.Id == channel.Id {
|
||||
if testChannel.channel.ID == channel.ID {
|
||||
for _, testTopic := range testChannel.topics {
|
||||
if testTopic.topic.Id == topic.Id {
|
||||
if testTopic.topic.ID == topic.ID {
|
||||
for _, testTag := range testTopic.tags {
|
||||
if testTag.Id == tag.Id {
|
||||
if testTag.ID == tag.ID {
|
||||
return true
|
||||
}
|
||||
}
|
||||
@ -141,7 +141,7 @@ func TestMessangerApp(t *testing.T) {
|
||||
|
||||
|
||||
// add a channel
|
||||
params = &TestApiParams{
|
||||
params = &TestAPIParams{
|
||||
restType: "POST",
|
||||
query: "/content/channels",
|
||||
body: &Subject{
|
||||
@ -152,26 +152,26 @@ func TestMessangerApp(t *testing.T) {
|
||||
token: set.B.Token,
|
||||
}
|
||||
channel = &Channel{}
|
||||
response = &TestApiResponse{ data: channel }
|
||||
assert.NoError(t, TestApiRequest(AddChannel, params, response))
|
||||
response = &TestAPIResponse{ data: channel }
|
||||
assert.NoError(t, TestAPIRequest(AddChannel, params, response))
|
||||
|
||||
// share channel with A
|
||||
params = &TestApiParams{
|
||||
params = &TestAPIParams{
|
||||
restType: "PUT",
|
||||
query: "/content/channels/{channelId}/cards/{cardId}",
|
||||
path: map[string]string{ "cardId": set.B.A.CardId, "channelId": channel.Id },
|
||||
query: "/content/channels/{channelID}/cards/{cardID}",
|
||||
path: map[string]string{ "cardID": set.B.A.CardID, "channelID": channel.ID },
|
||||
tokenType: APP_TOKENAGENT,
|
||||
token: set.B.Token,
|
||||
}
|
||||
response = &TestApiResponse{}
|
||||
assert.NoError(t, TestApiRequest(SetChannelCard, params, response))
|
||||
response = &TestAPIResponse{}
|
||||
assert.NoError(t, TestAPIRequest(SetChannelCard, params, response))
|
||||
|
||||
// wait for test
|
||||
assert.NoError(t, app.WaitFor(func(testApp *TestApp)bool{
|
||||
for _, testContact := range testApp.contacts {
|
||||
if testContact.card.Id == set.A.B.CardId {
|
||||
if testContact.card.ID == set.A.B.CardID {
|
||||
for _, testChannel := range testContact.channels {
|
||||
if testChannel.channel.Id == channel.Id {
|
||||
if testChannel.channel.ID == channel.ID {
|
||||
return true
|
||||
}
|
||||
}
|
||||
@ -181,10 +181,10 @@ func TestMessangerApp(t *testing.T) {
|
||||
}))
|
||||
|
||||
// add a topic to channel
|
||||
params = &TestApiParams{
|
||||
params = &TestAPIParams{
|
||||
restType: "POST",
|
||||
query: "/content/channels/{channelId}/topics",
|
||||
path: map[string]string{ "channelId": channel.Id },
|
||||
query: "/content/channels/{channelID}/topics",
|
||||
path: map[string]string{ "channelID": channel.ID },
|
||||
body: &Subject{
|
||||
Data: "channeltopicdataB",
|
||||
DataType: "channeltopicdatatypeB",
|
||||
@ -193,17 +193,17 @@ func TestMessangerApp(t *testing.T) {
|
||||
token: set.A.B.Token,
|
||||
}
|
||||
topic = &Topic{}
|
||||
response = &TestApiResponse{ data: topic }
|
||||
assert.NoError(t, TestApiRequest(AddChannelTopic, params, response))
|
||||
response = &TestAPIResponse{ data: topic }
|
||||
assert.NoError(t, TestAPIRequest(AddChannelTopic, params, response))
|
||||
|
||||
// wait for test
|
||||
assert.NoError(t, app.WaitFor(func(testApp *TestApp)bool{
|
||||
for _, testContact := range testApp.contacts {
|
||||
if testContact.card.Id == set.A.B.CardId {
|
||||
if testContact.card.ID == set.A.B.CardID {
|
||||
for _, testChannel := range testContact.channels {
|
||||
if testChannel.channel.Id == channel.Id {
|
||||
if testChannel.channel.ID == channel.ID {
|
||||
for _, t := range testChannel.topics {
|
||||
if t.topic.Id == topic.Id {
|
||||
if t.topic.ID == topic.ID {
|
||||
return true
|
||||
}
|
||||
}
|
||||
@ -215,10 +215,10 @@ func TestMessangerApp(t *testing.T) {
|
||||
}))
|
||||
|
||||
// add a tag to channel topic
|
||||
params = &TestApiParams{
|
||||
params = &TestAPIParams{
|
||||
restType: "POST",
|
||||
query: "/content/channels/{channelId}/topics/{topicId}/tags",
|
||||
path: map[string]string{ "channelId": channel.Id, "topicId": topic.Id },
|
||||
query: "/content/channels/{channelID}/topics/{topicID}/tags",
|
||||
path: map[string]string{ "channelID": channel.ID, "topicID": topic.ID },
|
||||
body: &Subject{
|
||||
Data: "channeltopictagdataB",
|
||||
DataType: "channeltopictagdatatypeB",
|
||||
@ -227,19 +227,19 @@ func TestMessangerApp(t *testing.T) {
|
||||
token: set.B.Token,
|
||||
}
|
||||
tag = &Tag{}
|
||||
response = &TestApiResponse{ data: tag }
|
||||
assert.NoError(t, TestApiRequest(AddChannelTopicTag, params, response))
|
||||
response = &TestAPIResponse{ data: tag }
|
||||
assert.NoError(t, TestAPIRequest(AddChannelTopicTag, params, response))
|
||||
|
||||
// wait for test
|
||||
assert.NoError(t, app.WaitFor(func(testApp *TestApp)bool{
|
||||
for _, testContact := range testApp.contacts {
|
||||
if testContact.card.Id == set.A.B.CardId {
|
||||
if testContact.card.ID == set.A.B.CardID {
|
||||
for _, testChannel := range testContact.channels {
|
||||
if testChannel.channel.Id == channel.Id {
|
||||
if testChannel.channel.ID == channel.ID {
|
||||
for _, testTopic := range testChannel.topics {
|
||||
if testTopic.topic.Id == topic.Id {
|
||||
if testTopic.topic.ID == topic.ID {
|
||||
for _, testTag := range testTopic.tags {
|
||||
if testTag.Id == tag.Id {
|
||||
if testTag.ID == tag.ID {
|
||||
return true
|
||||
}
|
||||
}
|
||||
@ -253,21 +253,21 @@ func TestMessangerApp(t *testing.T) {
|
||||
}))
|
||||
|
||||
// unshare channel with A
|
||||
params = &TestApiParams{
|
||||
params = &TestAPIParams{
|
||||
restType: "DELETE",
|
||||
query: "/content/channels/{channelId}/cards/{cardId}",
|
||||
path: map[string]string{ "cardId": set.B.A.CardId, "channelId": channel.Id },
|
||||
query: "/content/channels/{channelID}/cards/{cardID}",
|
||||
path: map[string]string{ "cardID": set.B.A.CardID, "channelID": channel.ID },
|
||||
tokenType: APP_TOKENAGENT,
|
||||
token: set.B.Token,
|
||||
}
|
||||
response = &TestApiResponse{}
|
||||
assert.NoError(t, TestApiRequest(ClearChannelCard, params, response))
|
||||
response = &TestAPIResponse{}
|
||||
assert.NoError(t, TestAPIRequest(ClearChannelCard, params, response))
|
||||
|
||||
// wait for test
|
||||
assert.NoError(t, app.WaitFor(func(testApp *TestApp)bool {
|
||||
contact, contactSet := testApp.contacts[set.A.B.CardId]
|
||||
contact, contactSet := testApp.contacts[set.A.B.CardID]
|
||||
if contactSet {
|
||||
_, channelSet := contact.channels[channel.Id]
|
||||
_, channelSet := contact.channels[channel.ID]
|
||||
if !channelSet {
|
||||
return true
|
||||
}
|
||||
|
@ -31,13 +31,13 @@ func TestProfileUpdate(t *testing.T) {
|
||||
// reset revision
|
||||
bCardRev = GetTestRevision(set.B.Revisions).Card
|
||||
cCardRev = GetTestRevision(set.C.Revisions).Card
|
||||
param["cardId"] = set.B.A.CardId
|
||||
assert.NoError(t, ApiTestMsg(GetCard, "GET", "/contact/cards/{cardId}",
|
||||
param["cardID"] = set.B.A.CardID
|
||||
assert.NoError(t, APITestMsg(GetCard, "GET", "/contact/cards/{cardID}",
|
||||
¶m, nil,
|
||||
APP_TOKENAGENT, set.B.Token, &card, nil))
|
||||
bProfileRev = card.Data.NotifiedProfile
|
||||
param["cardId"] = set.C.A.CardId
|
||||
assert.NoError(t, ApiTestMsg(GetCard, "GET", "/contact/cards/{cardId}",
|
||||
param["cardID"] = set.C.A.CardID
|
||||
assert.NoError(t, APITestMsg(GetCard, "GET", "/contact/cards/{cardID}",
|
||||
¶m, nil,
|
||||
APP_TOKENAGENT, set.C.Token, &card, nil))
|
||||
cProfileRev = card.Data.NotifiedProfile
|
||||
@ -48,7 +48,7 @@ func TestProfileUpdate(t *testing.T) {
|
||||
Location: "San Diago",
|
||||
Description: "databaggerr",
|
||||
};
|
||||
assert.NoError(t, ApiTestMsg(SetProfile, "PUT", "/profile/data",
|
||||
assert.NoError(t, APITestMsg(SetProfile, "PUT", "/profile/data",
|
||||
nil, profileData,
|
||||
APP_TOKENAGENT, set.A.Token, &profile, nil))
|
||||
assert.Equal(t, "databaggerr", profile.Description)
|
||||
@ -58,51 +58,51 @@ func TestProfileUpdate(t *testing.T) {
|
||||
assert.NotEqual(t, cCardRev, GetTestRevision(set.C.Revisions).Card)
|
||||
|
||||
// check B notified
|
||||
param["cardId"] = set.B.A.CardId
|
||||
assert.NoError(t, ApiTestMsg(GetCard, "GET", "/contact/cards/{cardId}",
|
||||
param["cardID"] = set.B.A.CardID
|
||||
assert.NoError(t, APITestMsg(GetCard, "GET", "/contact/cards/{cardID}",
|
||||
¶m, nil,
|
||||
APP_TOKENAGENT, set.B.Token, &card, nil))
|
||||
assert.NotEqual(t, bProfileRev, card.Data.NotifiedProfile)
|
||||
assert.NotEqual(t, card.Data.ProfileRevision, card.Data.NotifiedProfile)
|
||||
|
||||
// check C notified
|
||||
param["cardId"] = set.C.A.CardId
|
||||
assert.NoError(t, ApiTestMsg(GetCard, "GET", "/contact/cards/{cardId}",
|
||||
param["cardID"] = set.C.A.CardID
|
||||
assert.NoError(t, APITestMsg(GetCard, "GET", "/contact/cards/{cardID}",
|
||||
¶m, nil,
|
||||
APP_TOKENAGENT, set.C.Token, &card, nil))
|
||||
assert.NotEqual(t, cProfileRev, card.Data.NotifiedProfile)
|
||||
assert.NotEqual(t, card.Data.ProfileRevision, card.Data.NotifiedProfile)
|
||||
|
||||
// sync profile
|
||||
assert.NoError(t, ApiTestMsg(GetProfileMessage, "GET", "/profile/message",
|
||||
assert.NoError(t, APITestMsg(GetProfileMessage, "GET", "/profile/message",
|
||||
nil, nil,
|
||||
APP_TOKENCONTACT, set.B.A.Token, &msg, nil))
|
||||
assert.NoError(t, ApiTestMsg(AddCard, "POST", "/contact/cards",
|
||||
assert.NoError(t, APITestMsg(AddCard, "POST", "/contact/cards",
|
||||
nil, &msg,
|
||||
APP_TOKENAGENT, set.B.Token, &card, nil))
|
||||
assert.Equal(t, card.Id, set.B.A.CardId)
|
||||
assert.Equal(t, card.ID, set.B.A.CardID)
|
||||
assert.Equal(t, card.Data.ProfileRevision, card.Data.NotifiedProfile)
|
||||
assert.Equal(t, card.Data.CardProfile.Name, "Namer")
|
||||
|
||||
// sync profile
|
||||
assert.NoError(t, ApiTestMsg(GetProfileMessage, "GET", "/profile/message",
|
||||
assert.NoError(t, APITestMsg(GetProfileMessage, "GET", "/profile/message",
|
||||
nil, nil,
|
||||
APP_TOKENCONTACT, set.C.A.Token, &msg, nil))
|
||||
assert.NoError(t, ApiTestMsg(AddCard, "POST", "/contact/cards",
|
||||
assert.NoError(t, APITestMsg(AddCard, "POST", "/contact/cards",
|
||||
nil, &msg,
|
||||
APP_TOKENAGENT, set.C.Token, &card, nil))
|
||||
assert.Equal(t, card.Id, set.C.A.CardId)
|
||||
assert.Equal(t, card.ID, set.C.A.CardID)
|
||||
assert.Equal(t, card.Data.ProfileRevision, card.Data.NotifiedProfile)
|
||||
assert.Equal(t, card.Data.CardProfile.Name, "Namer")
|
||||
|
||||
// set profile image
|
||||
image := "iVBORw0KGgoAAAANSUhEUgAAAaQAAAGkCAIAAADxLsZiAAAFzElEQVR4nOzWUY3jMBhG0e0qSEqoaIqiaEIoGAxh3gZAldid3nMI+JOiXP3bGOMfwLf7v3oAwAxiBySIHZAgdkCC2AEJYgckiB2QIHZAgtgBCWIHJIgdkCB2QILYAQliBySIHZAgdkCC2AEJYgckiB2QIHZAgtgBCWIHJIgdkCB2QILYAQliBySIHZAgdkCC2AEJYgckiB2QIHZAgtgBCWIHJGzTXnrtx7S3pnk+7qsnnMk3+ny+0dtcdkCC2AEJYgckiB2QIHZAgtgBCWIHJIgdkCB2QILYAQliBySIHZAgdkCC2AEJYgckiB2QIHZAgtgBCWIHJIgdkCB2QILYAQliBySIHZAgdkCC2AEJYgckiB2QIHZAgtgBCWIHJIgdkCB2QILYAQliBySIHZAgdkCC2AEJYgckiB2QIHZAgtgBCWIHJIgdkCB2QILYAQliBySIHZAgdkCC2AEJYgckiB2QIHZAgtgBCWIHJIgdkCB2QILYAQliBySIHZAgdkCC2AEJYgckiB2QIHZAgtgBCWIHJIgdkCB2QILYAQnbtJeej/u0t+Bb+Y/e5rIDEsQOSBA7IEHsgASxAxLEDkgQOyBB7IAEsQMSxA5IEDsgQeyABLEDEsQOSBA7IEHsgASxAxLEDkgQOyBB7IAEsQMSxA5IEDsgQeyABLEDEsQOSBA7IEHsgASxAxLEDkgQOyBB7IAEsQMSxA5IEDsgQeyABLEDEsQOSBA7IEHsgASxAxLEDkgQOyBB7IAEsQMSxA5IEDsgQeyABLEDEsQOSBA7IEHsgASxAxLEDkgQOyBB7IAEsQMSxA5IEDsgQeyABLEDEsQOSBA7IEHsgASxAxLEDkgQOyBB7IAEsQMSbmOM1RsALueyAxLEDkgQOyBB7IAEsQMSxA5IEDsgQeyABLEDEsQOSBA7IEHsgASxAxLEDkgQOyBB7IAEsQMSxA5IEDsgQeyABLEDEsQOSBA7IEHsgASxAxLEDkgQOyBB7IAEsQMSxA5IEDsgQeyABLEDEsQOSBA7IEHsgASxAxLEDkgQOyBB7IAEsQMSxA5IEDsgQeyABLEDEsQOSBA7IEHsgASxAxLEDkgQOyBB7IAEsQMSxA5IEDsgQeyABLEDEsQOSBA7IEHsgASxAxLEDkgQOyBB7IAEsQMSxA5IEDsgQeyAhG31gD/stR+rJ5zv+bivnnAm34hfLjsgQeyABLEDEsQOSBA7IEHsgASxAxLEDkgQOyBB7IAEsQMSxA5IEDsgQeyABLEDEsQOSBA7IEHsgASxAxLEDkgQOyBB7IAEsQMSxA5IEDsgQeyABLEDEsQOSBA7IEHsgASxAxLEDkgQOyBB7IAEsQMSxA5IEDsgQeyABLEDEsQOSBA7IEHsgASxAxLEDkgQOyBB7IAEsQMSxA5IEDsgQeyABLEDEsQOSBA7IEHsgASxAxLEDkgQOyBB7IAEsQMSxA5IEDsgQeyABLEDEsQOSBA7IEHsgASxAxLEDkgQOyBhWz2Az/Laj9UT4BIuOyBB7IAEsQMSxA5IEDsgQeyABLEDEsQOSBA7IEHsgASxAxLEDkgQOyBB7IAEsQMSxA5IEDsgQeyABLEDEsQOSBA7IEHsgASxAxLEDkgQOyBB7IAEsQMSxA5IEDsgQeyABLEDEsQOSBA7IEHsgASxAxLEDkgQOyBB7IAEsQMSxA5IEDsgQeyABLEDEsQOSBA7IEHsgASxAxLEDkgQOyBB7IAEsQMSxA5IEDsgQeyABLEDEsQOSBA7IEHsgASxAxLEDkgQOyBB7IAEsQMSxA5IEDsgQeyABLEDEsQOSBA7IEHsgITbGGP1BoDLueyABLEDEsQOSBA7IEHsgASxAxLEDkgQOyBB7IAEsQMSxA5IEDsgQeyABLEDEsQOSBA7IEHsgASxAxLEDkgQOyBB7IAEsQMSxA5IEDsgQeyABLEDEsQOSBA7IEHsgASxAxLEDkgQOyBB7ICEnwAAAP//DQ4epwV6rzkAAAAASUVORK5CYII="
|
||||
assert.NoError(t, ApiTestMsg(SetProfileImage, "PUT", "/profile/image",
|
||||
assert.NoError(t, APITestMsg(SetProfileImage, "PUT", "/profile/image",
|
||||
nil, image,
|
||||
APP_TOKENAGENT, set.A.Token, &profile, nil))
|
||||
|
||||
// retrieve profile image
|
||||
data, hdr, err = ApiTestData(GetProfileImage, "GET", "/profile/image?agent=" + set.A.Token, nil, nil,
|
||||
data, hdr, err = APITestData(GetProfileImage, "GET", "/profile/image?agent=" + set.A.Token, nil, nil,
|
||||
APP_TOKENAGENT, set.A.Token, 0, 0)
|
||||
assert.NoError(t, err)
|
||||
|
||||
|
@ -7,8 +7,8 @@ import (
|
||||
)
|
||||
|
||||
func TestStaggardLoad(t *testing.T) {
|
||||
var params *TestApiParams
|
||||
var response *TestApiResponse
|
||||
var params *TestAPIParams
|
||||
var response *TestAPIResponse
|
||||
var channel *Channel
|
||||
var topic *Topic
|
||||
var topics *[]Topic
|
||||
@ -30,7 +30,7 @@ func TestStaggardLoad(t *testing.T) {
|
||||
}))
|
||||
|
||||
// add a channel
|
||||
params = &TestApiParams{
|
||||
params = &TestAPIParams{
|
||||
restType: "POST",
|
||||
query: "/content/channels",
|
||||
body: &Subject{
|
||||
@ -41,13 +41,13 @@ func TestStaggardLoad(t *testing.T) {
|
||||
token: set.A.Token,
|
||||
}
|
||||
channel = &Channel{}
|
||||
response = &TestApiResponse{ data: channel }
|
||||
assert.NoError(t, TestApiRequest(AddChannel, params, response))
|
||||
response = &TestAPIResponse{ data: channel }
|
||||
assert.NoError(t, TestAPIRequest(AddChannel, params, response))
|
||||
|
||||
// wait for test
|
||||
assert.NoError(t, app.WaitFor(func(testApp *TestApp)bool{
|
||||
for _, c := range testApp.channels {
|
||||
if c.channel.Id == channel.Id {
|
||||
if c.channel.ID == channel.ID {
|
||||
return true
|
||||
}
|
||||
}
|
||||
@ -57,10 +57,10 @@ func TestStaggardLoad(t *testing.T) {
|
||||
// add a topic to channel
|
||||
ids := []string{}
|
||||
for i := 0; i < 128; i++ {
|
||||
params = &TestApiParams{
|
||||
params = &TestAPIParams{
|
||||
restType: "POST",
|
||||
query: "/content/channels/{channelId}/topics",
|
||||
path: map[string]string{ "channelId": channel.Id },
|
||||
query: "/content/channels/{channelID}/topics",
|
||||
path: map[string]string{ "channelID": channel.ID },
|
||||
body: &Subject{
|
||||
Data: strconv.Itoa(i),
|
||||
DataType: "channeltopicdatatypeA",
|
||||
@ -69,15 +69,15 @@ func TestStaggardLoad(t *testing.T) {
|
||||
token: set.A.Token,
|
||||
}
|
||||
topic = &Topic{}
|
||||
response = &TestApiResponse{ data: topic }
|
||||
assert.NoError(t, TestApiRequest(AddChannelTopic, params, response))
|
||||
ids = append(ids, topic.Id);
|
||||
response = &TestAPIResponse{ data: topic }
|
||||
assert.NoError(t, TestAPIRequest(AddChannelTopic, params, response))
|
||||
ids = append(ids, topic.ID);
|
||||
}
|
||||
|
||||
// wait for test
|
||||
assert.NoError(t, app.WaitFor(func(testApp *TestApp)bool{
|
||||
for _, c := range testApp.channels {
|
||||
if c.channel.Id == channel.Id {
|
||||
if c.channel.ID == channel.ID {
|
||||
if len(c.topics) == 128 {
|
||||
return true
|
||||
}
|
||||
@ -86,90 +86,90 @@ func TestStaggardLoad(t *testing.T) {
|
||||
return false
|
||||
}))
|
||||
|
||||
params = &TestApiParams {
|
||||
params = &TestAPIParams {
|
||||
restType: "GET",
|
||||
query: "/content/channels/{channelId}/topics",
|
||||
path: map[string]string{ "channelId": channel.Id, "topicId": topic.Id },
|
||||
query: "/content/channels/{channelID}/topics",
|
||||
path: map[string]string{ "channelID": channel.ID, "topicID": topic.ID },
|
||||
tokenType: APP_TOKENAGENT,
|
||||
token: set.A.Token,
|
||||
}
|
||||
topics = &[]Topic{}
|
||||
response = &TestApiResponse{ data: topics }
|
||||
assert.NoError(t, TestApiRequest(GetChannelTopics, params, response));
|
||||
response = &TestAPIResponse{ data: topics }
|
||||
assert.NoError(t, TestAPIRequest(GetChannelTopics, params, response));
|
||||
assert.Equal(t, len(*topics), 128);
|
||||
|
||||
params = &TestApiParams {
|
||||
params = &TestAPIParams {
|
||||
restType: "GET",
|
||||
query: "/content/channels/{channelId}/topics?count=13",
|
||||
path: map[string]string{ "channelId": channel.Id, "topicId": topic.Id },
|
||||
query: "/content/channels/{channelID}/topics?count=13",
|
||||
path: map[string]string{ "channelID": channel.ID, "topicID": topic.ID },
|
||||
tokenType: APP_TOKENAGENT,
|
||||
token: set.A.Token,
|
||||
}
|
||||
topics = &[]Topic{}
|
||||
response = &TestApiResponse{ data: topics }
|
||||
assert.NoError(t, TestApiRequest(GetChannelTopics, params, response));
|
||||
response = &TestAPIResponse{ data: topics }
|
||||
assert.NoError(t, TestAPIRequest(GetChannelTopics, params, response));
|
||||
assert.Equal(t, len(*topics), 13);
|
||||
|
||||
//marker, _ := strconv.Atoi(response.header["Topic-Marker"][0])
|
||||
//revision, _ := strconv.Atoi(response.header["Topic-Revision"][0])
|
||||
|
||||
params = &TestApiParams {
|
||||
params = &TestAPIParams {
|
||||
restType: "GET",
|
||||
query: "/content/channels/{channelId}/topics?count=13&end=" + response.header["Topic-Marker"][0],
|
||||
path: map[string]string{ "channelId": channel.Id, "topicId": topic.Id },
|
||||
query: "/content/channels/{channelID}/topics?count=13&end=" + response.header["Topic-Marker"][0],
|
||||
path: map[string]string{ "channelID": channel.ID, "topicID": topic.ID },
|
||||
tokenType: APP_TOKENAGENT,
|
||||
token: set.A.Token,
|
||||
}
|
||||
topics = &[]Topic{}
|
||||
response = &TestApiResponse{ data: topics }
|
||||
assert.NoError(t, TestApiRequest(GetChannelTopics, params, response));
|
||||
response = &TestAPIResponse{ data: topics }
|
||||
assert.NoError(t, TestAPIRequest(GetChannelTopics, params, response));
|
||||
assert.Equal(t, len(*topics), 13);
|
||||
|
||||
marker := response.header["Topic-Marker"][0]
|
||||
revision := response.header["Topic-Revision"][0]
|
||||
|
||||
params = &TestApiParams {
|
||||
params = &TestAPIParams {
|
||||
restType: "DELETE",
|
||||
query: "/content/channels/{channelId}/topics/{topicId}",
|
||||
path: map[string]string{ "channelId": channel.Id, "topicId": ids[13] },
|
||||
query: "/content/channels/{channelID}/topics/{topicID}",
|
||||
path: map[string]string{ "channelID": channel.ID, "topicID": ids[13] },
|
||||
tokenType: APP_TOKENAGENT,
|
||||
token: set.A.Token,
|
||||
}
|
||||
response = &TestApiResponse{ }
|
||||
assert.NoError(t, TestApiRequest(RemoveChannelTopic, params, response));
|
||||
response = &TestAPIResponse{ }
|
||||
assert.NoError(t, TestAPIRequest(RemoveChannelTopic, params, response));
|
||||
|
||||
params = &TestApiParams {
|
||||
params = &TestAPIParams {
|
||||
restType: "GET",
|
||||
query: "/content/channels/{channelId}/topics?begin=" + marker + "&revision=" + revision,
|
||||
path: map[string]string{ "channelId": channel.Id, "topicId": topic.Id },
|
||||
query: "/content/channels/{channelID}/topics?begin=" + marker + "&revision=" + revision,
|
||||
path: map[string]string{ "channelID": channel.ID, "topicID": topic.ID },
|
||||
tokenType: APP_TOKENAGENT,
|
||||
token: set.A.Token,
|
||||
}
|
||||
topics = &[]Topic{}
|
||||
response = &TestApiResponse{ data: topics }
|
||||
assert.NoError(t, TestApiRequest(GetChannelTopics, params, response));
|
||||
response = &TestAPIResponse{ data: topics }
|
||||
assert.NoError(t, TestAPIRequest(GetChannelTopics, params, response));
|
||||
assert.Equal(t, 0, len(*topics));
|
||||
|
||||
params = &TestApiParams {
|
||||
params = &TestAPIParams {
|
||||
restType: "DELETE",
|
||||
query: "/content/channels/{channelId}/topics/{topicId}",
|
||||
path: map[string]string{ "channelId": channel.Id, "topicId": ids[108] },
|
||||
query: "/content/channels/{channelID}/topics/{topicID}",
|
||||
path: map[string]string{ "channelID": channel.ID, "topicID": ids[108] },
|
||||
tokenType: APP_TOKENAGENT,
|
||||
token: set.A.Token,
|
||||
}
|
||||
response = &TestApiResponse{ }
|
||||
assert.NoError(t, TestApiRequest(RemoveChannelTopic, params, response));
|
||||
response = &TestAPIResponse{ }
|
||||
assert.NoError(t, TestAPIRequest(RemoveChannelTopic, params, response));
|
||||
|
||||
params = &TestApiParams {
|
||||
params = &TestAPIParams {
|
||||
restType: "GET",
|
||||
query: "/content/channels/{channelId}/topics?begin=" + marker + "&revision=" + revision,
|
||||
path: map[string]string{ "channelId": channel.Id, "topicId": topic.Id },
|
||||
query: "/content/channels/{channelID}/topics?begin=" + marker + "&revision=" + revision,
|
||||
path: map[string]string{ "channelID": channel.ID, "topicID": topic.ID },
|
||||
tokenType: APP_TOKENAGENT,
|
||||
token: set.A.Token,
|
||||
}
|
||||
topics = &[]Topic{}
|
||||
response = &TestApiResponse{ data: topics }
|
||||
assert.NoError(t, TestApiRequest(GetChannelTopics, params, response));
|
||||
response = &TestAPIResponse{ data: topics }
|
||||
assert.NoError(t, TestAPIRequest(GetChannelTopics, params, response));
|
||||
assert.Equal(t, 1, len(*topics));
|
||||
}
|
||||
|
||||
|
@ -28,46 +28,46 @@ func TestTopicShare(t *testing.T) {
|
||||
// add new channel
|
||||
channel = &Channel{}
|
||||
subject = &Subject{ Data: "channeldata", DataType: "channeldatatype" }
|
||||
assert.NoError(t, ApiTestMsg(AddChannel, "POST", "/content/channels",
|
||||
assert.NoError(t, APITestMsg(AddChannel, "POST", "/content/channels",
|
||||
nil, subject, APP_TOKENAGENT, set.A.Token, channel, nil))
|
||||
image := "iVBORw0KGgoAAAANSUhEUgAAAaQAAAGkCAIAAADxLsZiAAAFzElEQVR4nOzWUY3jMBhG0e0qSEqoaIqiaEIoGAxh3gZAldid3nMI+JOiXP3bGOMfwLf7v3oAwAxiBySIHZAgdkCC2AEJYgckiB2QIHZAgtgBCWIHJIgdkCB2QILYAQliBySIHZAgdkCC2AEJYgckiB2QIHZAgtgBCWIHJIgdkCB2QILYAQliBySIHZAgdkCC2AEJYgckiB2QIHZAgtgBCWIHJGzTXnrtx7S3pnk+7qsnnMk3+ny+0dtcdkCC2AEJYgckiB2QIHZAgtgBCWIHJIgdkCB2QILYAQliBySIHZAgdkCC2AEJYgckiB2QIHZAgtgBCWIHJIgdkCB2QILYAQliBySIHZAgdkCC2AEJYgckiB2QIHZAgtgBCWIHJIgdkCB2QILYAQliBySIHZAgdkCC2AEJYgckiB2QIHZAgtgBCWIHJIgdkCB2QILYAQliBySIHZAgdkCC2AEJYgckiB2QIHZAgtgBCWIHJIgdkCB2QILYAQliBySIHZAgdkCC2AEJYgckiB2QIHZAgtgBCWIHJIgdkCB2QILYAQnbtJeej/u0t+Bb+Y/e5rIDEsQOSBA7IEHsgASxAxLEDkgQOyBB7IAEsQMSxA5IEDsgQeyABLEDEsQOSBA7IEHsgASxAxLEDkgQOyBB7IAEsQMSxA5IEDsgQeyABLEDEsQOSBA7IEHsgASxAxLEDkgQOyBB7IAEsQMSxA5IEDsgQeyABLEDEsQOSBA7IEHsgASxAxLEDkgQOyBB7IAEsQMSxA5IEDsgQeyABLEDEsQOSBA7IEHsgASxAxLEDkgQOyBB7IAEsQMSxA5IEDsgQeyABLEDEsQOSBA7IEHsgASxAxLEDkgQOyBB7IAEsQMSbmOM1RsALueyAxLEDkgQOyBB7IAEsQMSxA5IEDsgQeyABLEDEsQOSBA7IEHsgASxAxLEDkgQOyBB7IAEsQMSxA5IEDsgQeyABLEDEsQOSBA7IEHsgASxAxLEDkgQOyBB7IAEsQMSxA5IEDsgQeyABLEDEsQOSBA7IEHsgASxAxLEDkgQOyBB7IAEsQMSxA5IEDsgQeyABLEDEsQOSBA7IEHsgASxAxLEDkgQOyBB7IAEsQMSxA5IEDsgQeyABLEDEsQOSBA7IEHsgASxAxLEDkgQOyBB7IAEsQMSxA5IEDsgQeyAhG31gD/stR+rJ5zv+bivnnAm34hfLjsgQeyABLEDEsQOSBA7IEHsgASxAxLEDkgQOyBB7IAEsQMSxA5IEDsgQeyABLEDEsQOSBA7IEHsgASxAxLEDkgQOyBB7IAEsQMSxA5IEDsgQeyABLEDEsQOSBA7IEHsgASxAxLEDkgQOyBB7IAEsQMSxA5IEDsgQeyABLEDEsQOSBA7IEHsgASxAxLEDkgQOyBB7IAEsQMSxA5IEDsgQeyABLEDEsQOSBA7IEHsgASxAxLEDkgQOyBB7IAEsQMSxA5IEDsgQeyABLEDEsQOSBA7IEHsgASxAxLEDkgQOyBhWz2Az/Laj9UT4BIuOyBB7IAEsQMSxA5IEDsgQeyABLEDEsQOSBA7IEHsgASxAxLEDkgQOyBB7IAEsQMSxA5IEDsgQeyABLEDEsQOSBA7IEHsgASxAxLEDkgQOyBB7IAEsQMSxA5IEDsgQeyABLEDEsQOSBA7IEHsgASxAxLEDkgQOyBB7IAEsQMSxA5IEDsgQeyABLEDEsQOSBA7IEHsgASxAxLEDkgQOyBB7IAEsQMSxA5IEDsgQeyABLEDEsQOSBA7IEHsgASxAxLEDkgQOyBB7IAEsQMSxA5IEDsgQeyABLEDEsQOSBA7IEHsgITbGGP1BoDLueyABLEDEsQOSBA7IEHsgASxAxLEDkgQOyBB7IAEsQMSxA5IEDsgQeyABLEDEsQOSBA7IEHsgASxAxLEDkgQOyBB7IAEsQMSxA5IEDsgQeyABLEDEsQOSBA7IEHsgASxAxLEDkgQOyBB7ICEnwAAAP//DQ4epwV6rzkAAAAASUVORK5CYII="
|
||||
img, _ := base64.StdEncoding.DecodeString(image)
|
||||
subject = &Subject{ Data: "{ \"nested\" : { \"image\" : \"" + image + "\" } }", DataType: "nestedimage" }
|
||||
params["channelId"] = channel.Id
|
||||
assert.NoError(t, ApiTestMsg(SetChannelSubject, "PUT", "/content/channels/{channelId}/subject",
|
||||
params["channelID"] = channel.ID
|
||||
assert.NoError(t, APITestMsg(SetChannelSubject, "PUT", "/content/channels/{channelID}/subject",
|
||||
¶ms, subject, APP_TOKENAGENT, set.A.Token, channel, nil))
|
||||
params["cardId"] = set.A.B.CardId
|
||||
assert.NoError(t, ApiTestMsg(SetChannelCard, "PUT", "/content/channels/{channelId}/cards/{cardId}",
|
||||
params["cardID"] = set.A.B.CardID
|
||||
assert.NoError(t, APITestMsg(SetChannelCard, "PUT", "/content/channels/{channelID}/cards/{cardID}",
|
||||
¶ms, nil, APP_TOKENAGENT, set.A.Token, nil, nil))
|
||||
params["cardId"] = set.A.C.CardId
|
||||
assert.NoError(t, ApiTestMsg(SetChannelCard, "PUT", "/content/channels/{channelId}/cards/{cardId}",
|
||||
params["cardID"] = set.A.C.CardID
|
||||
assert.NoError(t, APITestMsg(SetChannelCard, "PUT", "/content/channels/{channelID}/cards/{cardID}",
|
||||
¶ms, nil, APP_TOKENAGENT, set.A.Token, nil, nil))
|
||||
|
||||
// view channel
|
||||
detail = &ChannelDetail{}
|
||||
assert.NoError(t, ApiTestMsg(GetChannelDetail, "GET", "/content/channels/{channelId}/detail",
|
||||
assert.NoError(t, APITestMsg(GetChannelDetail, "GET", "/content/channels/{channelID}/detail",
|
||||
¶ms, nil, APP_TOKENAGENT, set.A.Token, detail, nil))
|
||||
assert.NotNil(t, detail);
|
||||
detail = &ChannelDetail{}
|
||||
assert.NoError(t, ApiTestMsg(GetChannelDetail, "GET", "/content/channels/{channelId}/detail",
|
||||
assert.NoError(t, APITestMsg(GetChannelDetail, "GET", "/content/channels/{channelID}/detail",
|
||||
¶ms, nil, APP_TOKENCONTACT, set.B.A.Token, detail, nil))
|
||||
assert.NotNil(t, channel.Data.ChannelDetail);
|
||||
detail = &ChannelDetail{}
|
||||
assert.NoError(t, ApiTestMsg(GetChannelDetail, "GET", "/content/channels/{channelId}/detail",
|
||||
assert.NoError(t, APITestMsg(GetChannelDetail, "GET", "/content/channels/{channelID}/detail",
|
||||
¶ms, nil, APP_TOKENCONTACT, set.B.A.Token, detail, nil))
|
||||
assert.NotNil(t, channel.Data.ChannelDetail);
|
||||
params["field"] = "nested.image"
|
||||
data, header, err = ApiTestData(GetChannelSubjectField, "GET", "/content/channels/{channelId}/subject/{field}",
|
||||
data, header, err = APITestData(GetChannelSubjectField, "GET", "/content/channels/{channelID}/subject/{field}",
|
||||
¶ms, nil, APP_TOKENAGENT, set.A.Token, 0, 0)
|
||||
assert.NoError(t, err)
|
||||
assert.Equal(t, "image/png", header["Content-Type"][0])
|
||||
assert.Zero(t, bytes.Compare(img, data))
|
||||
data, header, err = ApiTestData(GetChannelSubjectField, "GET", "/content/channels/{channelId}/subject/{field}",
|
||||
data, header, err = APITestData(GetChannelSubjectField, "GET", "/content/channels/{channelID}/subject/{field}",
|
||||
¶ms, nil, APP_TOKENCONTACT, set.B.A.Token, 0, 0)
|
||||
assert.NoError(t, err)
|
||||
assert.Equal(t, "image/png", header["Content-Type"][0])
|
||||
assert.Zero(t, bytes.Compare(img, data))
|
||||
data, header, err = ApiTestData(GetChannelSubjectField, "GET", "/content/channels/{channelId}/subject/{field}",
|
||||
data, header, err = APITestData(GetChannelSubjectField, "GET", "/content/channels/{channelID}/subject/{field}",
|
||||
¶ms, nil, APP_TOKENCONTACT, set.C.A.Token, 0, 0)
|
||||
assert.NoError(t, err)
|
||||
assert.Equal(t, "image/png", header["Content-Type"][0])
|
||||
@ -77,31 +77,31 @@ func TestTopicShare(t *testing.T) {
|
||||
// add a topc
|
||||
topic = &Topic{}
|
||||
subject = &Subject{ DataType: "topicdatatype", Data: "subjectfromA" }
|
||||
assert.NoError(t, ApiTestMsg(AddChannelTopic, "POST", "/content/channels/{channelId}/topics",
|
||||
assert.NoError(t, APITestMsg(AddChannelTopic, "POST", "/content/channels/{channelID}/topics",
|
||||
¶ms, subject, APP_TOKENAGENT, set.A.Token, topic, nil))
|
||||
topic = &Topic{}
|
||||
subject = &Subject{ DataType: "topicdatatype", Data: "subjectfromB" }
|
||||
assert.NoError(t, ApiTestMsg(AddChannelTopic, "POST", "/content/channels/{channelId}/topics",
|
||||
assert.NoError(t, APITestMsg(AddChannelTopic, "POST", "/content/channels/{channelID}/topics",
|
||||
¶ms, subject, APP_TOKENCONTACT, set.B.A.Token, topic, nil))
|
||||
params["topicId"] = topic.Id
|
||||
assert.NoError(t, ApiTestMsg(SetChannelTopicConfirmed, "PUT", "/content/channels/{channelId}/topics/{topicId}/confirmed",
|
||||
params["topicID"] = topic.ID
|
||||
assert.NoError(t, APITestMsg(SetChannelTopicConfirmed, "PUT", "/content/channels/{channelID}/topics/{topicID}/confirmed",
|
||||
¶ms, APP_TOPICCONFIRMED, APP_TOKENCONTACT, set.B.A.Token, nil, nil))
|
||||
topic = &Topic{}
|
||||
subject = &Subject{ DataType: "topicdatatype", Data: "subjectfromC" }
|
||||
assert.NoError(t, ApiTestMsg(AddChannelTopic, "POST", "/content/channels/{channelId}/topics",
|
||||
assert.NoError(t, APITestMsg(AddChannelTopic, "POST", "/content/channels/{channelID}/topics",
|
||||
¶ms, subject, APP_TOKENCONTACT, set.C.A.Token, topic, nil))
|
||||
|
||||
// add asset to topic
|
||||
assets := []Asset{}
|
||||
params["topicId"] = topic.Id
|
||||
params["topicID"] = topic.ID
|
||||
transforms, err := json.Marshal([]string{ "copy;photo" })
|
||||
assert.NoError(t, err)
|
||||
assert.NoError(t, ApiTestUpload(AddChannelTopicAsset, "POST", "/content/channels/{channelId}/topics/{topicId}/assets?transforms=" + url.QueryEscape(string(transforms)),
|
||||
assert.NoError(t, APITestUpload(AddChannelTopicAsset, "POST", "/content/channels/{channelID}/topics/{topicID}/assets?transforms=" + url.QueryEscape(string(transforms)),
|
||||
¶ms, img, APP_TOKENCONTACT, set.C.A.Token, &assets, nil))
|
||||
|
||||
// view topics
|
||||
topics := &[]Topic{}
|
||||
assert.NoError(t, ApiTestMsg(GetChannelTopics, "GET", "/content/channels/{channelId}/topics",
|
||||
assert.NoError(t, APITestMsg(GetChannelTopics, "GET", "/content/channels/{channelID}/topics",
|
||||
¶ms, nil, APP_TOKENAGENT, set.A.Token, topics, nil))
|
||||
|
||||
aRev = GetTestRevision(set.A.Revisions)
|
||||
@ -110,7 +110,7 @@ func TestTopicShare(t *testing.T) {
|
||||
// add a tag to topic
|
||||
tag := Tag{}
|
||||
subject = &Subject{ DataType: "tagdatatype", Data: "subjectfromA" }
|
||||
assert.NoError(t, ApiTestMsg(AddChannelTopicTag, "POST", "/content/channels/{channelId}/topics/{topicId}",
|
||||
assert.NoError(t, APITestMsg(AddChannelTopicTag, "POST", "/content/channels/{channelID}/topics/{topicID}",
|
||||
¶ms, subject, APP_TOKENAGENT, set.A.Token, &tag, nil))
|
||||
|
||||
assert.NotEqual(t, aRev.Channel, GetTestRevision(set.A.Revisions).Channel)
|
||||
@ -118,56 +118,56 @@ func TestTopicShare(t *testing.T) {
|
||||
|
||||
// get tags for topic
|
||||
tags := &[]Tag{}
|
||||
assert.NoError(t, ApiTestMsg(GetChannelTopicTags, "GET", "/content/channels/{channelId}/topics/{topicId}",
|
||||
assert.NoError(t, APITestMsg(GetChannelTopicTags, "GET", "/content/channels/{channelID}/topics/{topicID}",
|
||||
¶ms, nil, APP_TOKENCONTACT, set.C.A.Token, tags, nil))
|
||||
assert.Equal(t, 1, len(*tags))
|
||||
|
||||
// delete topic tag
|
||||
params["tagId"] = tag.Id
|
||||
assert.NoError(t, ApiTestMsg(RemoveChannelTopicTag, "DELETE", "/content/channels/{channelId}/topics/{topicId}/tags/{tagId}",
|
||||
params["tagID"] = tag.ID
|
||||
assert.NoError(t, APITestMsg(RemoveChannelTopicTag, "DELETE", "/content/channels/{channelID}/topics/{topicID}/tags/{tagID}",
|
||||
¶ms, nil, APP_TOKENAGENT, set.A.Token, nil, nil))
|
||||
|
||||
// get tags for topic
|
||||
tags = &[]Tag{}
|
||||
assert.NoError(t, ApiTestMsg(GetChannelTopicTags, "GET", "/content/channels/{channelId}/topics/{topicId}",
|
||||
assert.NoError(t, APITestMsg(GetChannelTopicTags, "GET", "/content/channels/{channelID}/topics/{topicID}",
|
||||
¶ms, nil, APP_TOKENCONTACT, set.C.A.Token, tags, nil))
|
||||
assert.Equal(t, 0, len(*tags))
|
||||
|
||||
// get list of assets
|
||||
assets = []Asset{}
|
||||
assert.NoError(t, ApiTestMsg(GetChannelTopicAssets, "GET", "/content/channels/{channelId}/topics/{topicId}",
|
||||
assert.NoError(t, APITestMsg(GetChannelTopicAssets, "GET", "/content/channels/{channelID}/topics/{topicID}",
|
||||
¶ms, nil, APP_TOKENCONTACT, set.C.A.Token, &assets, nil))
|
||||
assert.Equal(t, 2, len(assets))
|
||||
|
||||
// delete each asset
|
||||
for _, asset := range assets {
|
||||
params["assetId"] = asset.AssetId
|
||||
assert.NoError(t, ApiTestMsg(RemoveChannelTopicAsset, "DELETE", "/content/channels/{channelId}/topics/{topicId}/assets/{assetId}",
|
||||
params["assetID"] = asset.AssetID
|
||||
assert.NoError(t, APITestMsg(RemoveChannelTopicAsset, "DELETE", "/content/channels/{channelID}/topics/{topicID}/assets/{assetID}",
|
||||
¶ms, nil, APP_TOKENCONTACT, set.C.A.Token, nil, nil))
|
||||
}
|
||||
|
||||
// get list of assets
|
||||
assets = []Asset{}
|
||||
assert.NoError(t, ApiTestMsg(GetChannelTopicAssets, "GET", "/content/channels/{channelId}/topics/{topicId}",
|
||||
assert.NoError(t, APITestMsg(GetChannelTopicAssets, "GET", "/content/channels/{channelID}/topics/{topicID}",
|
||||
¶ms, nil, APP_TOKENCONTACT, set.C.A.Token, &assets, nil))
|
||||
assert.Equal(t, 0, len(assets))
|
||||
|
||||
// add asset to topic
|
||||
assets = []Asset{}
|
||||
params["topicId"] = topic.Id
|
||||
params["topicID"] = topic.ID
|
||||
transforms, err = json.Marshal([]string{ "copy;photo" })
|
||||
assert.NoError(t, err)
|
||||
assert.NoError(t, ApiTestUpload(AddChannelTopicAsset, "POST", "/content/channels/{channelId}/topics/{topicId}/assets?transforms=" + url.QueryEscape(string(transforms)),
|
||||
assert.NoError(t, APITestUpload(AddChannelTopicAsset, "POST", "/content/channels/{channelID}/topics/{topicID}/assets?transforms=" + url.QueryEscape(string(transforms)),
|
||||
¶ms, img, APP_TOKENCONTACT, set.C.A.Token, &assets, nil))
|
||||
|
||||
// add a tag to topic
|
||||
tag = Tag{}
|
||||
subject = &Subject{ DataType: "tagdatatype", Data: "subjectfromA" }
|
||||
assert.NoError(t, ApiTestMsg(AddChannelTopicTag, "POST", "/content/channels/{channelId}/topics/{topicId}",
|
||||
assert.NoError(t, APITestMsg(AddChannelTopicTag, "POST", "/content/channels/{channelID}/topics/{topicID}",
|
||||
¶ms, subject, APP_TOKENAGENT, set.A.Token, &tag, nil))
|
||||
|
||||
// remove channel
|
||||
assert.NoError(t, ApiTestMsg(RemoveChannel, "DELETE", "/content/channels/{channelId}",
|
||||
assert.NoError(t, APITestMsg(RemoveChannel, "DELETE", "/content/channels/{channelID}",
|
||||
¶ms, nil, APP_TOKENAGENT, set.A.Token, nil, nil))
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user