// Copyright 2026 Mihna123 Software // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal // in the Software without restriction, including without limitation the rights // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell // copies of the Software, and to permit persons to whom the Software is // furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE // SOFTWARE. package listing import "time" type RepositoryMock struct { listings []Listing err error } func (r *RepositoryMock) GetAll() ([]Listing, error) { if r.err != nil { return nil, r.err } return r.listings, nil } func (r *RepositoryMock) GetByCategory(c string) ([]Listing, error) { if r.err != nil { return nil, r.err } var res []Listing for _, l := range r.listings { for _, cat := range l.category { if cat == c { res = append(res, l) break } } } return res, nil } func NewRepositoryMock() *RepositoryMock { mockListings := []Listing{ { id: 0, title: "Audi a5 2.0 2015 godiste", slug: "audi-a5-2-0-2015-godiste", location: Location{city: "Novi Sad", street: "Bulevar Cara Lazara", premise: "3"}, status: PublishedStatus, category: []string{"automobile", "audi", "a5"}, price: 5000, currency: "EUR", description: "Pali odma ide lepo", images: []string{}, views: 10, createdAt: time.Now(), author: nil, isExternal: false, }, { id: 1, title: "Led lampa za glavu TJ-1608", slug: "led-lampa-za-glavu-tj-1608", location: Location{city: "Belgrade"}, status: PublishedStatus, category: []string{"hunting", "hunting-lamps"}, price: 1200, currency: "RSD", description: "Odlična lampa, svetli super", images: []string{}, views: 21, createdAt: time.Now(), author: nil, isExternal: false, }, { id: 2, title: "Školski anatomski ranac Minnie Mouse metalik", slug: "skolski-anatomski-ranac-minnie-mouse-metalik", location: Location{city: "Mladenovac"}, status: PublishedStatus, category: []string{"school", "backpacks"}, price: 3400, currency: "RSD", description: "Minnie ranac mnogo lep za devojčice", images: []string{}, views: 131, createdAt: time.Now(), author: nil, isExternal: false, }, } return &RepositoryMock{listings: mockListings} }