Рефакторинг выгрузки товаров через API Вконтакте
Требуется доработать логику работы выгрузки по следующим пунктам, и постараться провести рефакторинг текущего кода, не дублировать код, и постараться сделать его максимально простым и понятным.
Большим плюсом будет обратная связь по моментам самой выгрузки (ее стабильности, скорости).
1. Доработать логику групп, чтобы была возможность добавлять несколько групп. (на данный момент в коде защита логику публикации только в две группы).
Также, есть смысл сделать логику плюс минус универсальную, чтобы мы в дальнейшем могли задать группу и условие, при котором она уходит на выгрузку предлагаю что нибудь на подобие такого массива:
[ID_группы => isSubUrban($arg)];
Где isSubUrban это функция которая содержит логику по определенными требованиям.
Будут разные условия, как отдельные функции в которые мы можем передавать объект и уже проверять подходит ли он по заданному условию.
Необходимые функции условий:
2. Проверяем по городу (например если Вологда то объект подходит), функция должна быть универсальной чтобы мы могли передать название города снаружи как аргумент.
3. Проверяем по району (по аналогии с городом, передаю район и проверяем соответствует ли объект ему)
Соответственно, у каждой группы есть логика добавления в товар и альбом, это нужно учесть и не дублировать код как сейчас. Должен быть один метод создания и один метод загрузки в альбом в которой мы уже подставляем нужный объект и группу в которую его отправить.
Я вижу это так, что перебираем объекты, проходясь по массиву объектов и массиву групп и условий, если объект подходит отправляем его в нужную группу и альбом.
4. В базе данных, скорее всего нужна будет отдельная таблица, для сохранения связи объекта и групп.
5. Так же нужно сделать, чтобы новостройки выгружались не только на город Вологда но и на город Сокол.
6. Тестировать логику выгрузки нужно на своих группах.