github.com/status-im/status-go@v1.1.0/protocol/persistence_collapsed_community_categories.go (about)

     1  package protocol
     2  
     3  func (db *sqlitePersistence) UpsertCollapsedCommunityCategory(category CollapsedCommunityCategory) error {
     4  	var err error
     5  	if category.Collapsed {
     6  		_, err = db.db.Exec("INSERT INTO collapsed_community_categories(community_id, category_id) VALUES(?,?)", category.CommunityID, category.CategoryID)
     7  	} else {
     8  		_, err = db.db.Exec("DELETE FROM collapsed_community_categories WHERE community_id = ? AND category_id = ?", category.CommunityID, category.CategoryID)
     9  	}
    10  	return err
    11  }
    12  
    13  func (db *sqlitePersistence) CollapsedCommunityCategories() ([]CollapsedCommunityCategory, error) {
    14  	var categories []CollapsedCommunityCategory
    15  
    16  	rows, err := db.db.Query(`
    17    SELECT
    18      community_id,
    19      category_id
    20    FROM
    21      collapsed_community_categories
    22    `)
    23  	if err != nil {
    24  		return nil, err
    25  	}
    26  	defer rows.Close()
    27  
    28  	for rows.Next() {
    29  		var c CollapsedCommunityCategory
    30  		err = rows.Scan(
    31  			&c.CommunityID,
    32  			&c.CategoryID,
    33  		)
    34  		if err != nil {
    35  			return nil, err
    36  		}
    37  		categories = append(categories, c)
    38  	}
    39  
    40  	return categories, nil
    41  }